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发送多个电子邮件?