5
我目前遇到了從ActionMailer發送電子郵件的問題。我試圖將自定義頭附加到從我的系統發送的每封電子郵件中,而不管它來自哪個郵件程序。標題包含有關哪個人正在接收電子郵件的信息,因此它不能在郵件程序的默認設置中進行設置,但我希望避免在每個郵件程序中設置此標題。修改由ActionMailer返回的Mail :: Message的標頭
以下是我已經設置了當前:
candidates.each do |c|
mail = mailer_class.send(action.to_sym, c, params)
recip = email_recipients.create!(:contact => c, :subject => mail.subject)
mail.headers['X-SMTPAPI'] = {:unique_args => {:email_recipient_id => recip.id, :database => Apartment::Database.current_database },
:category => "#{mailer}-#{action}" }.to_json
mail.deliver
end
的問題是,設置在headers
哈希Mail::Message
的關鍵似乎並沒有改變任何東西。
我沒有找到一個方式通過手動設置標頭屬性,像這樣設置一個標題:
m.header = m.header.to_s + "\nBlah: Blah"
但說實話,這種感覺有點哈克。有誰知道有更好的模式來完成這個嗎?
你是否通過smtp頭髮送json? – farnoy 2012-03-02 15:32:35
是的。有點奇怪,但這是由我使用的提供商支配的。 – 2012-03-02 15:36:09