Справочная информация: В нашем приложении у нас часто есть торговый представитель, выполняющий настройку для нашего клиента с помощью компьютера продавца (часто клиенты не имеют доступа к своей электронной почте во время их настройки) , Поэтому мы подумываем добавить в форму регистрации устройства поле для адреса электронной почты торгового представителя и добавить ссылку подтверждения ТАКЖЕ на этот адрес электронной почты.
Вопрос: Есть ли способ сообщить devise к bcc (или cc) начальное электронное письмо с подтверждением ( только начальное электронное письмо с подтверждением ) на (необязательный) email «backup_email» адрес, который также указан в форме регистрации нового пользователя?
В качестве альтернативы, есть ли способ «отключить» процесс подтверждения электронной почты, но ТОЛЬКО при вводе определенного кода в поле регистрации?
Я знаю, как добавить еще одно поле в регистрационную форму устройства, но я не вижу, как / где изменить код устройства электронной почты, поэтому, когда электронное письмо с подтверждением отправляется на «адрес электронной почты», оно ТАКЖЕ переходит на backup_email "адрес (если есть, иногда пустой).
Спасибо Джонни Грассу!
Я сделал rails generate mailer 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
это не action == "confirmation_instructions"
, а action == :confirmation_instructions
.