Laravel如何安排邮件以便以后发送?

时间:2017-05-16 15:35:48

标签: php laravel laravel-queue laravel-mail

Laravel Documentation描述了安排邮件以供日后交付的功能,使用以下示例:

$when = Carbon::now()->addMinutes(10);

Mail::to($request->user())
    ->cc($moreUsers)
    ->bcc($evenMoreUsers)
    ->later($when, new OrderShipped($order));

文档中未提及进一步的配置(没有数据库表或该功能似乎需要的任何内容)。但是我想知道,这是如何工作的? Laravel在哪里存储信息以供以后检索。

此功能在较长时间内是否可靠?我想在注册后3天向用户发送邮件。可能邮件丢失了吗?例如,重新启动服务器时?

1 个答案:

答案 0 :(得分:9)

来自您链接的同一个文档

  

此方法将自动将作业推送到   队列,以便在后台发送消息。当然,你会的   在使用此功能之前需要配置队列。

Laravel使用队列来处理这个问题。您需要在您发送的mailable中启用排队。邮件延迟发送也使用相同的队列。要使用此功能,您需要设置队列设置并运行队列侦听器或工作程序来处理队列。检查队列文档以获取更多相关信息。

https://laravel.com/docs/5.4/queues