我目前遇到了从ActionMailer发送电子邮件的问题。我试图在我的系统发送的每封电子邮件上附加一个自定义标题,无论它来自哪个邮件程序。标题包含有关哪个人正在接收电子邮件的信息,因此无法在邮件的默认设置中设置,但我希望避免在每个邮件中设置此标题。
这是我目前设置的内容:
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
的{{1}}哈希上设置密钥似乎没有任何改变。
我确实找到了一种通过手动设置header属性来设置标头的方法,如下所示:
Mail::Message
但说实话,这感觉有点黑客。有谁知道一个更好的模式来实现这个目标?
答案 0 :(得分:0)
您可以使用默认标题
创建一个扩展ActionMailer :: Base的类 初始化程序目录中的添加一个看起来像
的加载文件<强> mailer_defaults.rb 强>
class ActionMailer::Base
def defaults
# header HERE
end
end
这会带你走正确的方向