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 

Ustawiłem domyślne ustawienie: z, więc nie rozumiem, dlaczego otrzymuję tę wiadomość, jestem również próbuje ustawić go za pomocą nagłówków bezskutecznie.Otrzymuj Nadawca (zwrotna ścieżka, nadawca lub odbiorca) wymagany do wysłania wiadomości

oto moje ustawienia

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 
} 

po prostu nazwać to jak tak, SupportMailer.support_response(@message).deliver

Jak mogę rozwiązać ten problem?

+0

Nagłówki zdecydowanie nie są potrzebne; kod wygląda poprawnie, aw twoim przypadku 'default: from' jest nadpisywany przez wartość w wywołaniu metody' mail'. Szukałbym upstream, gdzie dostarczyć! wywoływana jest metoda, a może w plikach środowiska. Błąd pochodzi z jednego z pierwszych testów po dostarczeniu! metoda w module smtp. –

+0

Sprawdziłem w moim kontrolerze. wygląda dobrze. i moje konfiguracje wyglądają dobrze. opublikuję je –

+0

Dodałem tę linię metody 'nagłówki" return-path "=>" [email protected] "' i teraz narzeka na 'Co najmniej jednego odbiorcę (Do, DW lub UDW) jest wymagane, aby wysłać wiadomość ", wygląda na to, że' mail (...) 'nie odbiera parametrów. –

Odpowiedz

3

Zauważam, że nie masz domyślnego przypadku dla instrukcji case. Jeśli nigdy nie zakończysz wywoływania metody "mail" w swoich metodach w klasie Mailer, dostaniesz ten błąd. Spróbuj przenieść oświadczenie sprawy do miejsca, w którym dzwonisz do SupportMailer, może masz metody dla każdego przypadku. W ten sposób nigdy nie zadzwonisz do SupportMailera, chyba że już ustaliłeś prawidłową grę biletową.

+3

To jest poprawne, najlepiej wyciągnij logikę z programu pocztowego. Jeśli nie chcesz, zawsze możesz: 'self.message.perform_deliveries = false', jeśli zdecydujesz się przerwać dostawę, nie wywołuj zwrotu, ponieważ będzie kontynuować wykonywanie i wygeneruje ten sam błąd. – brupm

Powiązane problemy