2011-08-10 71 views
16

我正在嘗試創建自定義電子郵件標題以使用SendGrid api。如何創建自定義電子郵件標題

下面是我在做什麼 - 但它不工作:

class Mailman < ActionMailer::Base 
    default :from => "[email protected]" 

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

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

end 

任何幫助表示讚賞。

感謝, 亞當

回答

44

可以使用的ActionMailer的#headers方法,我已經編輯您的例子來說明如何:您可以

class Mailman < ActionMailer::Base 
    default :from => "[email protected]" 

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

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

    mail(:to => '[email protected]', 
    :from => email, 
    :subject => "Message from the site" 
    ) 
    end 

end 

另外,通過哈希作爲參數(該方法#headers)太:

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

我希望這可以幫助你,如果沒有你總是可以檢查鋼軌指南:http://edgeguides.rubyonrails.org/action_mailer_basics.html

+0

謝謝里卡多 - 答案在我面前。我曾試過這個,並得到它的工作。然後你發佈了確認我的解決方案。再次感謝。 – Northband

+0

不錯!感謝您的反饋。 –

+0

這不適合我。看到我的答案! –

2

標題方法需要有效的JSON。所以,李嘉圖的解決方案需要這行:

頭[「X-SMTPAPI」] =「{‘類別’:‘滴通過電子郵件將’}」

3

我使用下面的代碼和工作正常,只是轉換哈希與to_json

headers['X-SMTPAPI'] = { 
    category: "Weekly Newsletter", 
    unique_args: { user_id: user.id } 
}.to_json 
1

到JSON來使用的退訂組在抑制組功能sendgrid內,我用下面的語法,其工作。

headers['X-SMTPAPI'] = '{"asm_group_id": 1111}' 
相關問題