首页 文章

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

提问于
浏览
20

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

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

6 回答

  • 0

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

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

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

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

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

  • 1

    更改选项 :subject

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

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

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

    • 然后我在this link上复制了来自互联网的翻译 .

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

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

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

  • 51

    默认外语(例如日语)

    STEP 1 在config / locales /(或任何文件名)中创建'ja.yml'

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

    STEP 2 在config / environments / development.rb上

    config.i18n.default_locale = :ja
    

    STEP 3 重启服务器

相关问题