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

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

在我的应用程序中,Devise .yml文件中有默认的电子邮件主题。 但我希望通过从数据库中提取数据来使其动态化。

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

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

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

我通过创建自己的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' 

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

更改选项:subject

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

如果你愿意翻译你的Devise消息,这是我的情况,更好的做法是在config/locale创建一个新的yml文件,并在config/application.rb更改你的应用程序的语言环境。

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

  2. 然后我在这个链接上复制了来自互联网的翻译。

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

     config.i18n.default_locale = :'pt-BR' 

希望它可以帮助你们中的一些人和我一样有同样的问题。

默认外语(例如日语)

步骤1在config / locales /(或任何文件名)中创建’ja.yml’

 ja: devise: mailer: confirmation_instructions: subject: '仮会員登録完了のお知らせ' reset_password_instructions: subject: 'パスワード再設定手順のお知らせ' 

第2步在config / environments / development.rb上

 config.i18n.default_locale = :ja 

步骤3重启服务器