Laravel延迟消息排队



参考https://laravel.com/docs/5.2/mail#queueing-mail我该如何使邮件排队向批量用户发送电子邮件,并在每张电子邮件发送1分钟之间差距。

foreach($user as $user){
Mail::later(60,'web.mail.NotifyUserExpiring', ['user'=> $Sub->user,'ExpiryDate' => $exp], function ($message) {
        $message->to($user->email);
        $message->subject('Services Renewal Reminder');

}

laravel使用具有防叶插件的SwiftMailer。

因此,如果您想在发送邮件后等待一分钟,您可以这样做:

Mail::getSwiftMailer()->registerPlugin(new Swift_Plugins_AntiFloodPlugin(1, 1));
foreach($user as $user){
   Mail::send(new Message($user));
}

如果您想在100封电子邮件后暂停30秒,则需要将第一行的数字更改为:

$mailer->registerPlugin(new Swift_Plugins_AntiFloodPlugin(100, 30));

最新更新