无法将邮件从控制器发送到队列

时间:2019-07-20 21:30:44

标签: laravel

我有一个问题; 我在laravel中有一个控制器,该控制器现在使用发送邮件

邮件::到($ Str2)->发送(新的Sendmail($值));

$ str2来自查询。

然后我有一个Mailable通过 build()执行以下操作:

返回$ this->降价('emails.mailbulk')

(和其他一些填充物)

现在,这将导致“每秒电子邮件过多”错误。这就是为什么我要使用qeue。

当我在控制器中将Mail :::更改为($ Str2)->队列时(新的Sendmail($值));然后我看到表格中的工作。但是在queue:work之后,没有邮件正在发送。...

我的控制器现在如何将邮件放入队列中? ->我必须在ShouldQueue中创建一个单独的类,还是可以更短一些?

1 个答案:

答案 0 :(得分:0)

我认为将其排入队列不会解决您的问题。您需要一种限制发送到Mailtrap的电子邮件数量的方法。

每封邮件后只需等待一秒钟。如果您的应用程序中没有别的东西,并且您没有太多要发送电子邮件,这就足够了。

$emailsToSend = emailsToSend();

foreach ($emailsToSend as $emailToSend) {
    Mail::to($email)->send(new Sendmail($value));
    sleep(1);
}