rails 3 + devise: как изменить метод рассылки для электронных писем с подтверждением, чтобы добавить второй адрес электронной почты пользователя

Предыстория: В нашем приложении у нас часто есть торговый представитель, который выполняет настройку для нашего клиента с помощью компьютера продавца (часто клиенты не имеют доступа к своей электронной почте на момент их настройки). Поэтому мы думаем добавить поле в форму регистрации 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 .

15
задан JJD 11 November 2013 в 15:17
поделиться