我正在尝试创建自定义电子邮件标头以使用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
任何帮助赞赏。
谢谢,亚当
你可以使用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。
我正在使用下面的代码并且工作正常,只需使用to_json
将哈希转换为json
headers['X-SMTPAPI'] = {
category: "Weekly Newsletter",
unique_args: { user_id: user.id }
}.to_json
headers方法需要有效的JSON。所以里卡多的解决方案需要这条线:
headers ['X-SMTPAPI'] ='{“category”:“Drip Email”}'
要在sendgrid中使用抑制组功能中的取消订阅组,我使用了以下语法。
headers['X-SMTPAPI'] = '{"asm_group_id": 1111}'