¿Hay alguna forma de especificar el correo electrónico Y el nombre de la información del remitente y del destinatario cuando se usa ActionMailer?
Normalmente harías:
@recipients = "#{user.email}"
@from = "[email protected]"
@subject = "Hi"
@content_type = "text/html"
Pero, quiero especificar nombre como bien-- MyCompany <[email protected]>
, John Doe <john.doe@mycompany>
.
¿Hay una manera de hacer eso?
ruby-on-rails
actionmailer
Grnbeagle
fuente
fuente
Respuestas:
Si está tomando la entrada del usuario para el nombre y el correo electrónico, a menos que valide con mucho cuidado o escape el nombre y el correo electrónico, puede terminar con un encabezado From no válido simplemente concatenando cadenas. He aquí una forma segura:
fuente
Mail::Address
no está claro en la documentación que leí.address.display_name
parece mutar la codificación de la cadena en algunos casos, por lo que si planea usarlaname
más adelante, por ejemplo, en las vistas del mailer de rieles, hágaloaddress.display_name = name.dup
name.dup
ya no parece necesaria. La fuente dice:@display_name = str.nil? ? nil : str.dup
config.mailer_sender = Proc.new { address = Mail::Address.new... }
fuente
En rails3 coloco lo siguiente en cada ambiente. es decir, production.rb
Colocar citas alrededor del nombre de la empresa no funcionó para mí en Rails3.
fuente
:from => "Company Name <[email protected]>"
si no tiene restricciones de entorno.en Rails 2.3.3 se introdujo un error en ActionMailer. Puede ver el boleto aquí Boleto # 2340 . Está resuelto en 2-3-estable y maestro, por lo que se solucionará en 3.xy 2.3.6.
Para solucionar el problema dentro de 2.3. * Puede usar el código provisto dentro de los comentarios del ticket:
fuente
La versión que me gusta usar de esto es
`<< son comillas invertidas.
Actualizar
También puedes cambiar eso a
Obtenga más información sobre los literales de cadena.
fuente
Otro aspecto irritante, al menos con el nuevo formato AR, es recordar que se llama "predeterminado" a nivel de clase. Hacer referencia a rutinas que son solo de instancia hace que falle silenciosamente y ceda cuando intentas usarlo:
Esto es lo que terminé usando:
fuente