From 116ab27e081253a572b1ce7a5188b472092bbec4 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 16 Nov 2016 18:25:21 +0100 Subject: [PATCH] i18n for devise mailer too --- app/mailers/application_mailer.rb | 2 +- app/mailers/user_mailer.rb | 32 +++++++++++++++++++ .../confirmation_instructions.en.html.erb | 0 .../confirmation_instructions.en.text.erb | 0 .../password_change.en.html.erb | 0 .../password_change.en.text.erb | 0 .../reset_password_instructions.en.html.erb | 0 .../reset_password_instructions.en.text.erb | 0 config/initializers/devise.rb | 6 ++-- 9 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 app/mailers/user_mailer.rb rename app/views/{auth/mailer => user_mailer}/confirmation_instructions.en.html.erb (100%) rename app/views/{auth/mailer => user_mailer}/confirmation_instructions.en.text.erb (100%) rename app/views/{auth/mailer => user_mailer}/password_change.en.html.erb (100%) rename app/views/{auth/mailer => user_mailer}/password_change.en.text.erb (100%) rename app/views/{auth/mailer => user_mailer}/reset_password_instructions.en.html.erb (100%) rename app/views/{auth/mailer => user_mailer}/reset_password_instructions.en.text.erb (100%) diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb index 2f7dd6ee5dc..0d9f10a080e 100644 --- a/app/mailers/application_mailer.rb +++ b/app/mailers/application_mailer.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true class ApplicationMailer < ActionMailer::Base - default from: (ENV['SMTP_FROM_ADDRESS'] || 'notifications@localhost') + default from: ENV.fetch('SMTP_FROM_ADDRESS') { 'notifications@localhost' } layout 'mailer' end diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb new file mode 100644 index 00000000000..5c086768da8 --- /dev/null +++ b/app/mailers/user_mailer.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +class UserMailer < Devise::Mailer + default from: ENV.fetch('SMTP_FROM_ADDRESS') { 'notifications@localhost' } + layout 'mailer' + + def confirmation_instructions(user, token) + @resource = user + @token = token + + I18n.with_locale(@resource.locale || I18n.default_locale) do + mail to: @resource.email + end + end + + def reset_password_instructions(user, token) + @resource = user + @token = token + + I18n.with_locale(@resource.locale || I18n.default_locale) do + mail to: @resource.email + end + end + + def password_change(user) + @resource = user + + I18n.with_locale(@resource.locale || I18n.default_locale) do + mail to: @resource.email + end + end +end diff --git a/app/views/auth/mailer/confirmation_instructions.en.html.erb b/app/views/user_mailer/confirmation_instructions.en.html.erb similarity index 100% rename from app/views/auth/mailer/confirmation_instructions.en.html.erb rename to app/views/user_mailer/confirmation_instructions.en.html.erb diff --git a/app/views/auth/mailer/confirmation_instructions.en.text.erb b/app/views/user_mailer/confirmation_instructions.en.text.erb similarity index 100% rename from app/views/auth/mailer/confirmation_instructions.en.text.erb rename to app/views/user_mailer/confirmation_instructions.en.text.erb diff --git a/app/views/auth/mailer/password_change.en.html.erb b/app/views/user_mailer/password_change.en.html.erb similarity index 100% rename from app/views/auth/mailer/password_change.en.html.erb rename to app/views/user_mailer/password_change.en.html.erb diff --git a/app/views/auth/mailer/password_change.en.text.erb b/app/views/user_mailer/password_change.en.text.erb similarity index 100% rename from app/views/auth/mailer/password_change.en.text.erb rename to app/views/user_mailer/password_change.en.text.erb diff --git a/app/views/auth/mailer/reset_password_instructions.en.html.erb b/app/views/user_mailer/reset_password_instructions.en.html.erb similarity index 100% rename from app/views/auth/mailer/reset_password_instructions.en.html.erb rename to app/views/user_mailer/reset_password_instructions.en.html.erb diff --git a/app/views/auth/mailer/reset_password_instructions.en.text.erb b/app/views/user_mailer/reset_password_instructions.en.text.erb similarity index 100% rename from app/views/auth/mailer/reset_password_instructions.en.text.erb rename to app/views/user_mailer/reset_password_instructions.en.text.erb diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 4ddef45ef12..85ba1082bbb 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -12,10 +12,10 @@ Devise.setup do |config| # Configure the e-mail address which will be shown in Devise::Mailer, # note that it will be overwritten if you use your own mailer class # with default "from" parameter. - config.mailer_sender = ENV['SMTP_FROM_ADDRESS'] || 'notifications@localhost' + # config.mailer_sender = ENV['SMTP_FROM_ADDRESS'] || 'notifications@localhost' # Configure the class responsible to send e-mails. - # config.mailer = 'Devise::Mailer' + config.mailer = 'UserMailer' # ==> ORM configuration # Load and configure the ORM. Supports :active_record (default) and @@ -102,7 +102,7 @@ Devise.setup do |config| # config.pepper = '104d16705f794923e77c5e5167b52452d00646dc952a2d30b541c24086e647012c7b9625f253c51912e455981e503446772973d5f1638631196c819d7137fad4' # Send a notification email when the user's password is changed - # config.send_password_change_notification = false + config.send_password_change_notification = true # ==> Configuration for :confirmable # A period that the user is allowed to access the website even without