【发布时间】:2013-06-04 21:01:17
【问题描述】:
我在 Rails 3 应用程序中使用 Devise 创建帐户。我有不同类型的用户,所以我想根据用户类型发送自定义密码恢复电子邮件。
我能够发送自定义电子邮件,但我还没有找到在该电子邮件上设置自定义标题的方法。我对设置电子邮件的主题特别感兴趣。
我做了以下事情:
- 创建了一个自定义设计邮件程序,其中包含自定义方法。此方法使用参数调用 devise_mail。在这种情况下,自定义邮件程序称为“reset_partner_instructions”。我可以调用这个邮件程序并成功地从我的用户模型发送一封电子邮件。
- 创建了一个自定义电子邮件视图模板,该模板已成功从
devise_mail调用。
我的自定义邮件如下所示:
class AccountMailer < Devise::Mailer
helper :application # gives access to all helpers defined within application_helper.
def reset_partner_instructions(record, opts={})
devise_mail(record, :reset_partner_instructions, opts)
end
end
问题在于电子邮件的主题始终是“重置合作伙伴说明”。我相信 Devise 是根据邮件模板的名称生成此标题。
在本教程https://github.com/plataformatec/devise/wiki/How-To:-Use-custom-mailer中,他们调用了以下代码:
def confirmation_instructions(record, opts={})
headers["Custom-header"] = "Bar"
super
end
由于我直接调用“devise_mail”,我没有看到如何将标头传递到邮件程序。有没有简单的设置或方法可以用来设置邮件主题?
【问题讨论】:
标签: ruby-on-rails devise