25

SendGrid API を使用するカスタム メール ヘッダーを作成しようとしています。

これが私がやっていることですが、うまくいきません:

class Mailman < ActionMailer::Base
  default :from => "info@sample.com"

  def send_message(name, email, message)
    @name = name
    @email = email
    @message = message

    mail(:to => 'info@sample.com',
     :from => email,
     :subject => "Message from the site",
     :headers['X-SMTPAPI'] => "category: Drip Email"
    )
  end

end

どんな助けでも感謝します。

ありがとう、アダム

4

4 に答える 4

60

ActionMailer の #headers メソッドを使用できます。例を編集して方法を示しました。

class Mailman < ActionMailer::Base
  default :from => "info@sample.com"

  def send_message(name, email, message)
    @name = name
    @email = email
    @message = message

    headers['X-SMTPAPI'] = '{"category": "Drip Email"}'

    mail(
     :to => 'info@sample.com',
     :from => email,
     :subject => "Message from the site"
    )
  end

end

または、ハッシュを引数として (メソッド #headers に) 渡すこともできます。

headers {"SPECIFIC-HEADER-1" => "value", "ANOTHER-HEADER" => "and so..."}

これがお役に立てば幸いです。そうでない場合は、いつでも Rails ガイドを確認してください: http://edgeguides.rubyonrails.org/action_mailer_basics.html

于 2011-08-10T15:00:12.313 に答える
5

以下のコードを使用しており、正常に動作します。ハッシュをjsonに変換するだけですto_json

headers['X-SMTPAPI'] = { 
  category: "Weekly Newsletter",
  unique_args: { user_id: user.id } 
}.to_json
于 2016-07-08T15:07:05.443 に答える
2

headers メソッドには、有効な JSON が必要です。したがって、Ricardo のソリューションには、代わりに次の行が必要です。

headers['X-SMTPAPI'] = '{"category": "ドリップメール"}'

于 2012-01-26T17:16:11.043 に答える