2013-08-24 6 views
22

Mam szyn 4 Wniosek o następującej konfiguracji mailera:ArgumentError: Adres SMTP To jest wymagany do wysłania wiadomości. Ustaw smtp_envelope_to wiadomość, do, DW lub UDW, adres

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" 
    } 

Za każdym razem staram się wysłać mail z instalacji testowanie mailera:

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 

mam ten wyjątek:

ArgumentError: An SMTP To address is required to send a message. Set the message smtp_envelope_to, to , cc, or bcc address.

to możliwe, że mogę zapomnieć coś ustawić.? i nie mogę znaleźć opcji konfiguracji „smtp_envelope_to”

Odpowiedz

26

Komunikat o błędzie nie chodzi o kopertę SMTP, ale o nadawcy:

An SMTP To address is required to send a message

reszta jest tylko komunikat rodzajowy. Coś w twoim [email protected] nie działa. Czy używasz prawdziwego, działającego adresu? Jeśli nie, spróbuj z jednym.

+3

Thx moje niepowodzenie było przesłonięcie adresu smtp, który ustawił go na zero Oo – bulleric

2

Czy jest to :to => '[email protected]', jak to jest w twoim niesprzyjającym środowisku? Jeśli nie jest to zakodowany na stałe adres e-mail, upewnij się, że zmienna zawierająca adres do niego nie jest pusta.

Bezpośrednio nie trzeba ustawiać Mail::Message#smtp_envelope_to. Może odgadnąć to od swoich odbiorców, tj. Mail::Message#destinations (do + cc + bcc), ale nie ma żadnych.

+0

Prosta sugestia i dokładnie, co naprawił mój problem. Moja wartość APP_CONFIG przekazana w moim SMTP 'default from:' zwróciła 'nil'. – skplunkerin

4

Jeśli używasz programu sidekiq + actionmailer. Bądź ostrożny, wysyłając e-mail za pomocą hasha. Robiłem coś podobnego do tego: MyWorker.perform_async ("var1", {email: "[email protected]", var2: "test1234"})

Uderzyłem głową przez kilka godzin, czemu rzuca powyższy błąd. Ponieważ w parametrze has_ ​​wykonawczym [: email] jest zero. Aby otrzymać wiadomość e-mail, musisz użyć skrótu ["email"]. Nie wiem, powód. Ale pomógł mi pozbyć się tego błędu.

+4

Może przepraszam za offtopic, ale powód, dla którego musisz używać hasha ['email'], jest zasługą procesu serializacji na redis. Sidekiq tworzy dokument JSON, automatycznie konwertuje wszystkie klucze na łańcuchy. –

Powiązane problemy