Laravel 如何安排稍后发送的邮件?

How does Laravel schedule mails for later sending?

Laravel Documentation 描述了安排邮件稍后投递的能力,示例如下:

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

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

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

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

来自您链接的同一文档

This method will automatically take care of pushing a job onto the queue so the message is sent in the background. Of course, you will need to configure your queues before using this feature.

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

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