1

環境:

Rails アプリで送信グリッドを使用して一括メールを送信する必要があります。たぶん300人くらいの購読者にメールを送ります。を使用して達成できることを読みました

headers["X-SMTPAPI"] = { :to => array_of_recipients }.to_json

それに従ってみました。

以下は私のActionMailerです:

class NewJobMailer < ActionMailer::Base
  default from: "from@example.com"

  def new_job_post(subscribers)
    @greeting = "Hi"
    headers['X-SMTPAPI'] = { :to => subscribers.to_a }.to_json
    mail(
    :to => "this.will@be.ignored.com",
    :subject => "New Job Posted!"
    )

  end

end

このメーラーメソッドをコントローラーから呼び出します

..
   @subscribers = Subscriber.where(activated: true)
   NewJobMailer.new_job_post(@subscribers).deliver
..

send-grid の構成は config/production.rb ファイルで指定されており、正しいものです。アカウント アクティベーション メールを送信できるからです。

問題:

アプリはどこにもクラッシュすることなく正常に動作しますが、メールは送信されていません。ヘッダー構成が渡されていないと思いますか?どうすればこれを修正できますか?

アップデート:

送信グリッド ダッシュボードでメール アクティビティを確認しました。以下は、ドロップされた電子メールの 1 つのスナップショットです。 ここに画像の説明を入力

4

1 に答える 1

4

ActiveRecord オブジェクトの配列を取得しています

@subscribers = Subscriber.where(activated: true)

それをsmtpapiヘッダーに渡します。これらの ActiveRecord オブジェクトの電子メール アドレスを引き出す必要があります。

フィールドの名前に応じてemail、これを行うことができます

headers['X-SMTPAPI'] = { :to => subscribers.map(&:email) }.to_json
于 2014-11-24T02:19:09.043 に答える