with rails for ruby-on-rails ruby-on-rails-4 actionmailer

ruby on rails - rails - ArgumentError: se requiere una dirección SMTP To para enviar un mensaje. Establezca el mensaje smtp_envelope_to, to, cc o bcc address



sendgrid with actionmailer (3)

Obtuve una aplicación Rails 4 con la siguiente configuración de correo:

config.action_mailer.delivery_method = :smtp config.action_mailer.default_url_options = { host: ''myhost.com'' } config.action_mailer.perform_deliveries = true config.action_mailer.smtp_settings = { :enable_starttls_auto => true, :address => ''smtp.myhost.com'', :port => 587, :domain => ''myhost.com'', :authentication => :login, :enable_starttls_auto => false, :tls => false, :openssl_verify_mode => ''none'', :ssl => false, :user_name => "myusername", :password => "mypassword" }

Cada vez que intento enviar un correo con una configuración de correo de prueba:

class TestMailer < ActionMailer::Base default :from => "[email protected]" def welcome_email mail(:to => "[email protected]", :subject => "Test mail", :body => "Test mail body") end end TestMailer.welcome_email.deliver

Tengo esta excepción:

ArgumentError: se requiere una dirección SMTP To para enviar un mensaje. Establezca el mensaje smtp_envelope_to, to, cc o bcc address.

¿Es posible que olvide algo para establecer? Y no puedo encontrar una opción de configuración para "smtp_envelope_to"


El mensaje de error no se trata del sobre SMTP, sino del remitente:

Se requiere una dirección SMTP A para enviar un mensaje

el resto es solo un mensaje genérico. Algo en su [email protected] no funciona. ¿Usas una dirección real y funcional? Si no, prueba con uno.


Es :to => ''[email protected]'' ¿cómo está en su entorno de falla? Si no es una dirección de correo electrónico codificada, asegúrese de que una variable que contiene la dirección no esté en blanco.

No tiene que establecer Mail::Message#smtp_envelope_to explícitamente. Puede adivinarlo de sus destinatarios, es decir. Mail::Message#destinations (to + cc + bcc), pero parece que no tiene ninguno.


Si usa sidekiq + actionmailer. Tenga cuidado al enviar correos electrónicos usando hash. Estaba haciendo algo como esto MyWorker.perform_async ("var1", {email: ''[email protected]'', var2: ''test1234''})

Me golpeé la cabeza por un par de horas, ¿por qué está arrojando el error anterior? Porque en el hash perform_menthod [: email] es nulo. Debe usar hash ["email"] para recibir el correo electrónico. No sé la razón. Pero me ayudó a deshacerme de este error.