Php Laravel-5排队邮件

Php Laravel-5排队邮件,php,laravel,laravel-5,Php,Laravel,Laravel 5,我正在尝试使用Laravel-5对邮件进行排队。下面是我正在使用的代码。我本以为邮件会存储在“jobs”表的数据库中,但它会立即发送 Mail::queue('emails.orderthankyou', ['first_name' => 'My Name'], function ($m) { $m->to('me@myemail.com')->subject('Test'); }); 你知道这里会出什么问题吗?你可能想改用Mail::later 延迟消息队列 如果您

我正在尝试使用Laravel-5对邮件进行排队。下面是我正在使用的代码。我本以为邮件会存储在“jobs”表的数据库中,但它会立即发送

Mail::queue('emails.orderthankyou', ['first_name' => 'My Name'], function ($m) {
    $m->to('me@myemail.com')->subject('Test');
});
你知道这里会出什么问题吗?

你可能想改用Mail::later

延迟消息队列

如果您希望延迟排队电子邮件的传递,您可以 使用后面的方法。要开始,只需传递 您希望延迟发送消息的秒数,作为 方法的第一个参数:


您可能正在config/queue.php中使用同步驱动程序。sync代表synchronous。因此,所有作业都是即时执行的。

5是以秒为单位的,因此看起来可能是即时的。。此外,您可能误解了队列。队列用于逐个处理任务。您无法为特定日期/时间安排任务。因此,这与在数据库中存储排队作业有什么区别?您是否正在运行php artisan queue:listen in background。如果您是,在浏览表之前,电子邮件可能会排队并处理作业。您是否正确设置了队列?它默认为同步驱动程序,会立即启动。我想这就是答案。同步是默认设置。
Mail::queue('emails.orderthankyou', ['first_name' => 'My Name'], function ($m) {
    $m->to('me@myemail.com')->subject('Test');
});
Mail::later(5, 'emails.welcome', $data, function ($message) {
//here 5 is the number of seconds
});