Предыстория: В нашем приложении у нас часто есть торговый представитель, который выполняет настройку для нашего клиента с помощью компьютера продавца (часто клиенты не имеют доступа к своей электронной почте на момент их настройки). Поэтому мы думаем добавить поле в форму регистрации devise для адреса электронной почты торгового представителя и иметь ссылку для подтверждения ТАКЖЕ переходите на этот адрес электронной почты.
Вопрос: Есть ли способ сообщить devise скрытой копии ( или cc) письмо с первоначальным подтверждением ( только письмо с первоначальным подтверждением ) на (необязательный) адрес электронной почты «backup_email», который также указан в форме регистрации нового пользователя?
В качестве альтернативы, есть ли способ чтобы "отключить" процесс подтверждения по электронной почте, но ТОЛЬКО при вводе определенного кода в поле регистрации?
Я знаю, как добавить еще одно поле в форму регистрации устройства, но я не вижу, как / где изменить устройство код почтовой программы, поэтому, когда электронное письмо с подтверждением отправляется на адрес "электронной почты", оно ТАКЖЕ переходит на адрес "backup_email" (если есть, иногда он пуст).
Спасибо Джонни Грассу!
Я сделал rails создать почтовую программу CustomerUserMailer
и добавил
#config/initializers/devise.rb
config.mailer = "CustomUserMailer"
, что мой пользовательский почтовый клиент выглядит так:
# app/mailers/customer_user_mailer.rb
class CustomUserMailer < Devise::Mailer
def headers_for(action)
headers = {
:subject => translate(devise_mapping, action),
:from => mailer_sender(devise_mapping),
:to => resource.email,
:cc => resource.backup_user_email(action),
:template_path => template_paths
}
end
end
Затем я переместил 3 шаблона почтовых программ ИЗ views / devise / mailer
в views / customer_user_mailer
(в противном случае электронные письма будут пустыми)
Затем я добавил в свою модель User
метод под названием backup_user_email ()
, который возвращает «резервный» адрес электронной почты (если есть) на основе данных в записи пользователя и действие. Единственная «уловка» заключается в том, что при тестировании действия
это не action == "confirm_instructions"
, а action ==: confirm_instructions
.