Rails,检查是否发送了电子邮件

时间:2011-10-26 13:18:56

标签: ruby-on-rails ruby-on-rails-3 email

我有一个向注册用户发送电子邮件的应用。此应用在用户使用某些功能时会向用户发送自动电子邮件。此外,在管理员屏幕上,管理员可以向所有未收到因任何原因自动发送的电子邮件的人发送电子邮件。我在数据库中存储了一个显示电子邮件是否已发送的值,因此管理员不会向已经收到电子邮件的人发送电子邮件。

问题是:我如何检查电子邮件是否已正确发送以更新此值?我不是在谈论测试,我需要在调用方法deliver之后立即检查,如果发送了电子邮件,或者发生任何问题,例如连接丢失或电子邮件无效。有没有什么方法或方法可以做到这一点?

感谢。

2 个答案:

答案 0 :(得分:5)

当您发送邮件并且没有引发错误时,您可以假设邮件已发送(至少您可以假设某个系统接受了传递邮件的责任)。

尽管如此,交货失败的原因有很多;有时您可能会在几小时甚至几天后收到错误消息。您需要有一个弹跳邮件地址并检查返回的邮件。如果您想处理弹跳,请使用phplist等弹跳处理来检查开源软件。这并不像你想象的那么简单。

另一种选择是通过我们SendGrid等专用服务发送电子邮件。此服务提供的API允许您检索有关邮件的信息。

答案 1 :(得分:1)

您还可以使用mailman gem来解析回复电子邮件中的错误电子邮件。