2010-11-14 107 views
0

我在Rails 3中使用ActionMailer发送定期的电子邮件。我需要知道电子邮件是否正确发送(只要可以这样做)。如何使用ActionMailer测试邮件是否成功发送?

@lists.each do |list| 
    email = Reminder.deadline_reminder(list) 
    email.deliver 
    end 

有(从邮件库类的Mail ::消息)电子邮件对象的属性,它会告诉我的发送是否都是正确的(无连接的问题,验证问题等)?我已经浏览了Github上的课程,但一直没能弄清楚什么。

回答

3

这一切都取决于你认为成功。

您可以测试以查看您的代码是否发送了消息。您经常可以检查日志,以查看邮件转发主机是否收到它并将其移到目的地。

但是,只有专有邮件系统支持交货收据。由于隐私问题以及邮件客户端供应商无法就如何实现这一目标达成一致,因此SMTP并不会或可能永远不会。所以,即使它一直传送到预定的目的地,也无法知道该人是否阅读它。

最好的办法是在消息中放入一个链接,用户单击它可以在服务器上使用对该消息唯一的令牌发出应用程序。当应用程序看到令牌时,它会设置一个标志,让您知道他们已收到消息,并至少阅读有关单击该链接的部分。然后,如果在给定时间内必须有响应,那么您还要跟踪消息何时发送,如果令牌没有在时间限制内收回,则升级。

+0

好主意。您可以通过在电子邮件中添加一个非常小的图形来跟踪打开。当他们打开电子邮件时,它将从您的服务器下载,并且您会知道他们打开了您的电子邮件。这是MailChimp跟踪打开的方式。如果图像未启用,则不起作用。 http://kb.mailchimp.com/article/how-open-tracking-works – corbin 2013-06-11 22:12:30

+0

正确,如果邮件客户端不显示图形,或者用户指示它不加载图像(如许多移动和基于网络的客户。 – 2013-06-12 03:04:25

相关问题