Rails 动作邮件程序 raise_delivery_errors,它是如何工作的?如何检测反弹?

Rails action Mailer raise_delivery_errors, how does it works? How to detect bounces?

我有一个发送大量邮件的 Rails 4.2.0 应用程序,它是一个在线学习平台。

目前我遇到退回问题,很多邮件因为邮件地址无效而退回。

一种方法是手动解决问题,开始从数据库中删除它们。但这不合适,因为大约有 10000 个用户注册。

现在我的问题是

config.action_mailer.raise_delivery_errors = true 

是吗?它有什么作用?我如何从中得到回应?

mail() 方法是否有一个 return 值,我可以在其中查看邮件是否已发送?

是否有方法或最佳实践来检测邮件是否已送达?

如果设置为 false,邮件将静默捕获并忽略通过尝试发送电子邮件引发的任何异常。 Reference.

在生产环境中,最好将其设置为 false,否则发送失败的电子邮件将向您的最终用户抛出错误。

在开发中肯定设置为true

看看this gem

在其他功能中,有一种方法专门用于检查 if mail was bounced

根据我的经验,最好在生产环境中将其设置为 true,因为您应该在后台作业中发送电子邮件,如果出现错误,将重试发送电子邮件。

  # Ignore bad email addresses and do not raise email delivery errors.
  # Set this to true and configure the email server for immediate delivery to raise delivery errors.
  # config.action_mailer.raise_delivery_errors = false

并在开发中将其设置为 false,正如初始 rails 设置所说,您 Don't care if the mailer can't send.

  # Don't care if the mailer can't send.
  config.action_mailer.raise_delivery_errors = false

rails new bRails 7.0.2.3