ActionMailer有时不发送?

我有一个问题,ActionMailer有时不发送电子邮件。 它是可重复的,并在某些时候影响某些人,虽然造成它的是一个谜。

虽然设置了config.action_mailer.raise_delivery_errors = true ,但它无声地失败。

它进入mail()例程,声称它已呈现模板:

 Rendered notifier/notify_comment.html.erb (0.9ms) 

然后跳过交付并转移到下一个交付。 下一个渲染和交付没有问题。 当电子邮件发送时,它们也会打印到控制台,所以我可以看到它。 每封电子邮件的内容都相同,只有收件人不同。

我不明白为什么这会间歇性的。

我怎么去调试呢?

邮件的每个实例只能发送1封电子邮件。

你有邮件里面的代码吗?

 @subscribers.each do |s| mail( :to => s.email, :subject => "Foo Foo", :from => "someone@example.com", :template_name => 'template_name' ).deliver end 

这似乎不起作用。 迭代邮件程序之外的订阅者,并将其调用一次:

在控制器或模型中:

 @subscribers.each do |s| Notifier.send_to_subscriber(s, @comment) end 

这是我在Rails 3.2.2中的经验。 FWIW,我认为发生的事情是邮件对象超出了范围。

这种方法可能很慢,因此请务必在单独的线程中发送电子邮件。

参考和想法: 如何使用SendGrid发送多个电子邮件?