custom ruby-on-rails ruby devise mailer

ruby on rails - custom - Cómo cambiar “Devise: el asunto del correo electrónico para restablecer la contraseña”



devise gem (6)

Simplemente no puedo cambiar el asunto del correo electrónico de "instrucción de restablecimiento de contraseña". He cambiado notifer.rb en Mailer para sobrescribir el asunto del correo electrónico predeterminado de Devise. Pero no está funcionando.

Aquí en mi aplicación hay un asunto de correo electrónico predeterminado dentro del archivo .yml de Devise. Pero quiero dinamizarlo para cambiarlo extrayendo datos de DB.


Conseguí que esto funcionara al crear mi propia subclase de 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

Y luego modificando el inicializador devise.rb para usar mi correo.

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


Opción de cambio :subject :

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


Para idioma extranjero predeterminado (ejemplo japonés)

PASO 1 Cree un ''ja.yml'' en config / locales / (o cualquier nombre de archivo)

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

PASO 2 En config / environment / development.rb

config.i18n.default_locale = :ja

PASO 3 Reinicie el servidor


Puede escribir su propio método dentro de su controlador y llamar a la plantilla de correo correspondiente. Esto le ayudará .. De lo contrario, visualice las vistas, habrá una página de visualización para enviar instrucciones de restablecimiento. Cambia el contenido allí ..


Si está dispuesto a traducir sus mensajes de Devise, como era mi caso, una mejor práctica sería crear un nuevo archivo yml en config/locale y cambiar la configuración regional de su aplicación en config/application.rb

  1. Para ilustrar, tuve que crear devise.pt-BR.yml dentro de config/locale .

  2. Luego copié sus traducciones de internet, en este enlace .

  3. Finalmente, establezco la nueva configuración regional de mi aplicación en config/application.rb siguiente manera:

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

Espero que ayude a algunos de ustedes a tener el mismo problema que el mío.


puede cambiarlo en el archivo devise.en.yml en el directorio de intilizer

Y configura tu propio tema para cualquier correo.

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