如果为真,它将向用户发送一条错误消息。 如果虚假交付错误不会被注意到。
推荐的处理方法是什么?
最佳答案
我们刚刚将一个应用程序投入生产,当我们尝试发送邮件时,我们的 ISP 的邮件服务器经常返回“451 spool busy”错误。
这两个答案都对我们不利:如果我们向用户返回一个错误,我们就把我们的基础架构问题传递给了他们;如果我们不这样做,他们就不会收到邀请/确认/通知/任何其他信息,而且没人知道为什么。
相反,我们决定设置 delayed_job,并始终通过它发送邮件;它会自动重试,我们可以(从数据库中的作业队列表中)看到消息是否正在堆积。 (它的设置也非常简单 - 最难的部分是确保工作线程正在运行,这是对我们的 Monit 配置的简单补充。)
(奖励:这是我为延迟生产中的邮件而编写的初始化程序,但仍会在开发和测试中直接发送它:http://gist.github.com/178125)
关于ruby-on-rails - ActionMailer raise_delivery_errors 在生产中应该是真还是假?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1325340/