我有一个问题; 我在laravel中有一个控制器,该控制器现在使用发送邮件
邮件::到($ Str2)->发送(新的Sendmail($值));
$ str2来自查询。
然后我有一个Mailable通过 build()执行以下操作:
返回$ this->降价('emails.mailbulk')
(和其他一些填充物)
现在,这将导致“每秒电子邮件过多”错误。这就是为什么我要使用qeue。
当我在控制器中将Mail :::更改为($ Str2)->队列时(新的Sendmail($值));然后我看到表格中的工作。但是在queue:work之后,没有邮件正在发送。...
我的控制器现在如何将邮件放入队列中? ->我必须在ShouldQueue中创建一个单独的类,还是可以更短一些?
答案 0 :(得分:0)
我认为将其排入队列不会解决您的问题。您需要一种限制发送到Mailtrap的电子邮件数量的方法。
每封邮件后只需等待一秒钟。如果您的应用程序中没有别的东西,并且您没有太多要发送电子邮件,这就足够了。
$emailsToSend = emailsToSend();
foreach ($emailsToSend as $emailToSend) {
Mail::to($email)->send(new Sendmail($value));
sleep(1);
}