Как отправить два разных электронных письма для разработки и подтверждения?
Оба устройства - подтверждающие (подтверждение по электронной почте, когда пользователь регистрируется) и повторно подтверждаемые (подтверждение по электронной почте, когда пользователь меняет электронную почту) - отправляют один и тот же шаблон электронной почты "translation_instructions". Как получить, чтобы другой шаблон электронной почты использовался для подтверждения?
3 ответа
Вы можете переопределить options[:template_name]
в #confirmation_instructions
метод вашего почтовика.
class AuthMailer < Devise::Mailer
helper :application
include Devise::Controllers::UrlHelpers
default template_path: 'devise/mailer'
def confirmation_instructions(record, token, options={})
# Use different e-mail templates for signup e-mail confirmation and for when a user changes e-mail address.
if record.pending_reconfirmation?
options[:template_name] = 'reconfirmation_instructions'
else
options[:template_name] = 'confirmation_instructions'
end
super
end
end
Также измените эту строку из device.rb
# config.mailer = 'Devise::Mailer'
config.mailer = 'AuthMailer'
#Devise Mailer
def confirmation_instructions(record)
@resource = record
if @resource.pending_reconfirmation?
mail(to: @resource.unconfirmed_email, subject: "Confirm new email") do |format|
format.html { render ... }
end
else
mail(to: @resource.email, subject: "Confirm new account") do |format|
format.html { render .... }
end
end
end
Просто посмотрите на документы и есть метод send_on_create_notification, который вы можете переопределить в модели. Так что просто нужно переопределить этот метод, чтобы электронное письмо с подтверждением не отправлялось, а отправлялось другое. В этом письме у меня будет ссылка для подтверждения.