6
class SupportMailer < ActionMailer::Base 
    default :from => "[email protected]" 

    def welcome_email(ticket) 
    case ticket.game 
    when "gameone" 
     @ticket = ticket 
     headers["Reply-to"] = "email1+#{ticket.token}@gmail.com" 
     headers["Return-Path"] = "email1+#{ticket.token}@gmail.com" 
     mail(:from => "[email protected]", :to => ticket.email, :subject => "Welcome to 1 Support Ticket") 
    when "gametwo" 
     @ticket = ticket 
     headers["Reply-to"] = "email2+#{ticket.token}@gmail.com" 
     headers["Return-Path"] = "email2+#{ticket.token}@gmail.com" 
     mail(:from => "[email protected]", :to => ticket.email, :subject => "Welcome to 2 Support Ticket") 
    when "gamethree" 
     @ticket = ticket 
     headers["Reply-to"] = "email3+#{ticket.token}@gmail.com" 
     header["Return-Path"] = "email3+#{ticket.token}@gmail.com" 
     mail(:from => "[email protected]", :to => ticket.email, :subject => "Welcome to 3 Support Ticket") 
    end 
    end 
end 

He configurado mi valor predeterminado: from, así que no entiendo por qué sigo recibiendo este mensaje, también estoy tratando de establecerlo a través de encabezados en vano.Seguir obteniendo Un remitente (Return-Path, Sender or From) requerido para enviar un mensaje

aquí están mis ajustes

ActionMailer::Base.smtp_settings = { 
    :address    => "smtp.gmail.com", 
    :port     => 587, 
    :domain    => "gmail.com", 
    :user_name   => "[email protected]", 
    :password    => "password", 
    :authentication  => "plain", 
    :enable_starttls_auto => true 
} 

Acabo de llamar como tal, SupportMailer.support_response(@message).deliver

¿cómo puedo solucionar esto?

+0

Los encabezados definitivamente no son necesarios; el código parece correcto, y en su caso el valor predeterminado en la llamada al método 'mail' anula el' predeterminado: from'. Me gustaría mirar hacia arriba donde el entregar! método se llama, o tal vez en los archivos de entorno. ¡El error proviene de una de las primeras pruebas después de la entrega! método en el módulo smtp. –

+0

he buscado en mi controlador. se ve bien y mis configuraciones se ven bien Los publicaré –

+0

Agregué esta línea a los métodos 'encabezados' return-path "=>" [email protected] "' y ahora se queja de 'Al menos un destinatario (A, Cc o Bcc) se requiere para enviar un mensaje', parece que 'mail (...)' no está recogiendo sus parámetros. –

Respuesta

3

Me doy cuenta de que no tiene un caso predeterminado para el enunciado del caso. Si nunca termina llamando al método "mail" dentro de sus métodos en la clase Mailer, obtendrá ese error. Intente trasladar su estado de cuenta a donde llama a SupportMailer, tal vez tenga métodos para cada caso. De esta forma, nunca llamará al SupportMailer a menos que ya haya determinado el juego de entradas correcto.

+3

Esto es correcto. Idealmente extraiga la lógica del programa publicitario. Si no lo desea, siempre puede hacerlo: 'self.message.perform_deliveryies = false' si decide abortar la entrega, no llame a return, ya que continuará la ejecución y lanzará el mismo error. – brupm

Cuestiones relacionadas