【发布时间】:2016-05-20 03:43:33
【问题描述】:
我们的电子邮件无法使用带有 Redis 队列的 Laravel 发送。
触发错误的代码是这样的:->onQueue('emails')
$job = (new SendNewEmail($sender, $recipients))->onQueue('emails');
$job_result = $this->dispatch($job);
结合这个在工作中:
use InteractsWithQueue;
我们的错误信息是:
Feb 09 17:15:57 laravel: message repeated 7947 times: [ production.ERROR: exception 'Swift_TransportException' with message 'Expected response code 354 but got code "550", with message "550 5.7.0 Requested action not taken: too many emails per second "' in /home/laravel/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:383 Stack trace: #0 /home/laravel/app/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(281):
我们的错误只发生在使用 Sendgrid 而不是 Mailtrap 时,它会欺骗电子邮件发送。我已经和 Sendgrid 谈过了,当我发生错误时,电子邮件从未接触过他们的服务器,而且他们的服务完全处于活动状态。所以,错误似乎就在我身上。
有什么想法吗?
【问题讨论】:
-
这是来自邮件服务器的响应码,所以如果你使用的是Sendgrid的服务器,错误必须来自他们
-
查看您尝试发送的电子邮件数量 (7947) 我认为您应该查看 SendGrid 的批量电子邮件选项。我们在以前的工作中遇到了同样的问题,我们最终使用 MailChimp 并使用他们的 API 来同步订阅者列表。我猜 SendGrid 可能会有相同的功能或类似的东西。
-
只有 2 封电子邮件。由于失败,它一直尝试重新发送 8000 次。
-
我正在尝试解决同样的问题。我想知道 Laravel 中是否可以启用某种速率限制,例如在 Node 中:dorelljames.com/web-development/…
-
这里有一些东西供我们探索:stackoverflow.com/questions/30568069/…
标签: php laravel smtp swiftmailer laravel-forge