参考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');
}
答案 0 :(得分:0)
Laravel使用具有Swiftmailer的AntiFlood Plugin。
因此,如果您想在邮件发送后等待一分钟,可以这样做:
\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));