【问题标题】:Rails 5 retry sending email if exception is raised during the send email action如果在发送电子邮件操作期间引发异常,Rails 5 会重试发送电子邮件
【发布时间】:2019-10-18 01:12:29
【问题描述】:
Rails 5 应用程序在发送电子邮件期间引发异常时重试发送电子邮件的标准方式或配置选项是什么?
我希望有一些选项可以重试发送多次,但找不到类似的东西。
更多详情:
我在发送重要电子邮件时收到this error,几个月以来只发生过一次,但这是一封重要的电子邮件,所以我想通过在发生某些异常时重试来提高发送电子邮件的可靠性(例如网络问题或我的smtp 提供商无法收到我的电子邮件或任何类似原因)
451 身份验证失败:无法进行身份验证
【问题讨论】:
标签:
ruby-on-rails
actionmailer
【解决方案1】:
我建议使用delayed_job gem。
当您想发送电子邮件时,您需要调用delay 方法。
Mailer.delay.your_method
它将在数据库中创建一条记录,该记录将在后台执行。
如果后台作业失败,将为该行保存错误。您可以为延迟作业服务器配置 MAX_ATTEMPTS 数量。如果发送时没有错误 - 记录将从delayed_jobs 表中删除。