3

ActionMailerがメールを送信しないことがあるという問題があります。それを引き起こしているのは謎ですが、それは再現可能であり、特定の時間に特定の人々に影響を及ぼします。

設定されていますが、サイレントに失敗しますconfig.action_mailer.raise_delivery_errors = true

mail()ルーチンに入り、テンプレートをレンダリングしたと主張します。

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

そして、配信をスキップして次の配信に移動します。次のものは問題なくレンダリングされ、配信されます。メールが配信されると、コンソールにも印刷されるので、確認できます。すべてのメールの内容は同じで、受信者だけが異なります。

なぜ断続的になるのか理解できません。

これをデバッグするにはどうすればよいですか?

4

1 に答える 1

4

メーラーの各インスタンスは、1 つの電子メールのみを送信できます。

メーラー内にこのようなコードがありますか?

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

これはうまくいかないようです。メーラーの外部でサブスクライバーを反復処理し、1 回呼び出します。

コントローラーまたはモデルで:

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

これは Rails 3.2.2 での私の経験です。FWIW、メールオブジェクトが範囲外になると思います。

このアプローチは遅くなる可能性があるため、必ず別のスレッドでメールを送信してください。

リファレンスとアイデア: SendGrid で複数のメールを送信するには?

于 2012-10-24T13:46:39.740 に答える