Antecedentes: En nuestra aplicación, a menudo tenemos un representante de ventas para configurar a nuestro cliente usando la computadora del vendedor (a menudo clientes no tenemos acceso a su correo electrónico en el momento en que los configuramos). Así que estamos pensando en agregar un campo al formulario de registro de la dirección de correo electrónico del representante de ventas y hacer que el enlace de confirmación TAMBIÉN vaya a esa dirección de correo electrónico.rails 3 + idear: cómo modificar el método de envío de correos electrónicos de confirmación para agregar la segunda dirección de correo electrónico del usuario
Pregunta: ¿Hay una manera de decirle a diseñar a CCO (o cc) el correo electrónico de confirmación inicial (sólo el correo electrónico de confirmación inicial) a una (opcional) "backup_email" dirección de correo electrónico que también se proporciona en el nuevo formulario de registro de usuario?
Por otra parte, ¿hay alguna manera al proceso de correo electrónico de confirmación 'desactivar' pero sólo cuando se introduce un cierto código en el campo de registro?
Sé cómo agregar otro campo al formulario de registro de diseño, pero no veo cómo/dónde modificar el código del remitente, así que cuando se envía un correo electrónico de confirmación a la dirección de "correo electrónico" TAMBIÉN va al la dirección "backup_email" (si corresponde, a veces está en blanco).
Gracias a Johnny Grass!
lo hice rails generate mailer CustomerUserMailer
y ha añadido
#config/initializers/devise.rb
config.mailer = "CustomUserMailer"
mi programa de correo personalizada se parece a:
# 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
Luego se trasladaron las 3 plantillas Mailer DE views/devise/mailer
a views/customer_user_mailer
(de otro modo los mensajes de correo electrónico están vacíos)
Luego agregué un método a mi modelo User
llamado backup_user_email()
que devuelve la dirección de correo electrónico de "copia de seguridad" (si corresponde) en función de los datos en el registro del usuario y la acción. El único "truco" es que al probar el action
no es action == "confirmation_instructions"
es action == :confirmation_instructions
.
Una pregunta ... ¿dónde puedo guardar el archivo nuevo? Esa es una información muy útil. El correo electrónico de respaldo proviene de los datos en el formulario de registro de cada usuario, con suerte podemos usar algo como: bcc => resource.backup_email. – jpwynn
En realidad, tendría que hacer un anuncio publicitario, seguir [esta guía] (http://guides.rubyonrails.org/action_mailer_basics.html) pero convertirlo en una subclase de 'Devise :: Mailer'. – David
GRACIAS PERFECTAMENTE. Documenté los cambios al final de mi pregunta original, ya que también necesitaba mover las plantillas erb de mailer a la nueva vista – jpwynn