如何更改“设计:密码重置指令电子邮件的主题”

时间:2013-01-30 09:08:38

标签: ruby-on-rails ruby devise mailer

我无法更改“密码重置说明”电子邮件的主题。我在Mailer中更改了notifer.rb以覆盖Devise默认电子邮件主题。但它不起作用。

在我的应用程序中,Devise .yml文件中有默认的电子邮件主题。但是我希望通过从数据库中提取数据来改变它。

5 个答案:

答案 0 :(得分:52)

您可以在intilizer目录中的devise.en.yml文件中更改它

为任何邮件程序设置自己的主题

                   mailer:
                     confirmation_instructions:
                       subject: 'Confirmation instructions'
                     reset_password_instructions:
                       subject: 'Reset password instructions'
                     unlock_instructions:
                       subject: 'Unlock Instructions'

答案 1 :(得分:14)

我通过创建自己的Devise :: Mailer子类来实现这一目的。

class DeviseMailer < Devise::Mailer
  def reset_password_instructions(record, token, opts={})
    mail = super
    # your custom logic
    mail.subject = "[SOME DB DATA]"
    mail
  end
end

然后修改devise.rb初始化程序以使用我的邮件程序。

# Configure the class responsible to send e-mails.
config.mailer = 'DeviseMailer'

答案 2 :(得分:1)

您可以在控制器中编写自己的方法并调用相应的邮件程序模板。这将有助于你..除了设计视图,还会有一个视图页面发送重置指令。改变那里的内容..

答案 3 :(得分:1)

更改选项:subject

class DeviseMailer < Devise::Mailer
  def reset_password_instructions(record, token, opts={})
    opts[:subject] = 'SOME DB DATA'
    super
  end
end

答案 4 :(得分:0)

如果您愿意翻译您的Devise消息,这是我的情况,更好的做法是在config/locale中创建一个新的yml文件,并在{{1}更改您的应用程序的区域设置}}

  1. 为了说明,我必须在config/application.rb内创建devise.pt-BR.yml

  2. 然后我在this link上复制了互联网的翻译。

  3. 最后,我在config/locale设置我的应用程序的新语言环境,如下所示:

    config/application.rb
  4. 希望它可以帮助你们中的一些人遇到与我相同的问题。