2013-08-24 4 views
22

私は、次のメーラーの設定とレール4アプリケーションました:ArgumentError:メッセージを送信するには、SMTP Toアドレスが必要です。 ccで、に、メッセージsmtp_envelope_toを設定し、またはBCCアドレス

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

私はテストメーラーの設定でメールを送信しようとするたびに:

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 

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

それは私が何かを設定するのを忘れていることは可能です:

私はこの例外が発生しましたか。? と私は

答えて

26

を「smtp_envelope_to」の設定オプションを見つけることができないエラーメッセージがSMTPエンベロープについてではなく、送信者について:

An SMTP To address is required to send a message

残りはちょうど一般的なメッセージです。 [email protected]の何かが機能していません。 実アドレスを使用していますか?そうでない場合は、試してみてください。

+3

Thx私の失敗はsmtpアドレスのオーバーライドであり、これは0に設定されていますOo – bulleric

2

:to => '[email protected]'どのように障害のある環境にあるのですか?ハードコードされた電子メールアドレスでない場合は、宛先アドレスを含む変数が空でないことを確認してください。

Mail::Message#smtp_envelope_toを明示的に設定する必要はありません。それは受信者からそれを推測することができます。 Mail::Message#destinations(to + cc + bcc)ですが、何も持っていないようです。

+0

シンプルな提案と私の問題を修正したもの。 SMTPの 'default from:'に渡されたAPP_CONFIGの値が 'nil'を返していました。 – skplunkerin

4

sidekiq + actionmailerを使用している場合。ハッシュを使用して電子メールを送信する際は注意してください。それが投げている理由は、私は、時間のカップルのための私の頭を打ちました

({「test1234」:「[email protected]」、var2の電子メール}「VAR1」、)私はこの MyWorker.perform_asyncような何かをしていました上記のエラー。 perform_menthodのhash [:email]がnilであるためです。電子メールを受け取るには、ハッシュ["email"]を使用する必要があります。理由はわかりません。しかし、このエラーを取り除くのに役立ちました。

+4

多分、offtopicのために申し訳ありませんが、ハッシュ['email']を使わなければならない理由は、逐次化プロセスのおかげです。 SidekiqはJSONドキュメントを作成し、自動的にすべてのキーを文字列に変換します。 –

関連する問題