Фон: В нашем приложении у нас часто есть представитель по продажам, который делает настройку для нашего клиента, используя компьютер продавца (часто клиенты не имеют доступа к своей электронной почте в то время, когда мы их настраивали). Поэтому мы собираемся добавить поле в форму регистрации для адреса электронной почты продавца и подтвердить ссылку ALSO на этот адрес электронной почты.
Вопрос: Есть ли способ сообщить разработчику bcc (или cc) адрес электронной почты с подтверждением (только адрес электронной почты с подтверждением) на (необязательный) "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 шаблона почтовой рассылки FROM views/devise/mailer
в views/customer_user_mailer
(в противном случае электронные письма пустые)
Затем я добавил метод в мою модель User
под названием backup_user_email()
, которая возвращает адрес электронной почты "резервной копии" (если таковой имеется) на основе данных в пользовательской записи и действии. Единственный "трюк" в том, что при тестировании action
он не action == "confirmation_instructions"
равен action == :confirmation_instructions
.