1. ホーム
  2. ruby-on-rails

[解決済み] Railsアプリからのメール送信でNet::SMTPAuthenticationErrorが発生する (ステージング環境)

2022-12-23 21:57:44

質問

Railsアプリケーションからメールを送信しています。開発環境ではうまくいくのですが、ステージング環境では失敗します。次のようなエラーが発生します。

Net::SMTPAuthenticationError (534-5.7.14 <https://accounts.google.com/ContinueSignIn?plt=AKgnsbtdF0yjrQccTO2D_6)

私はステージング用のドメイン名を持っていないことに注意してください。

以下はstaging.rbでの私の設定です。

config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { :host => "my.ip.addr.here:80" }
config.action_mailer.smtp_settings = {
      :address => "smtp.gmail.com",
      :port => 587,
      :domain => 'my.ip.addr.here:80'
      :user_name => "[email protected]",
      :password => "my_email_password",
      :authentication => 'login'
}

お願いします、助けてください。

編集してください。

を追加した後 :tls => true オプションを追加すると

OpenSSL::SSL::SSLError (Unrecognized SSL message, plaintext connection?)

そして、ポートを25に変更したら、今度はこうなりました(30秒の遅延あり)。

Timeout::Error (execution expired)

どのように解決するのですか?

私も同じ問題を抱えていました。開発版からはメールが送信されますが、本番版からは送信されません(本番版では Net::SMTPAuthenticationError ). このことから、問題は私のアプリの構成ではなく、Google にあるという結論に至りました。

理由 : Google が不明な場所からのアクセスをブロックしていた (実稼働中のアプリ)

解決方法 : 次のページに移動します。 http://www.google.com/accounts/DisplayUnlockCaptcha にアクセスし、continue をクリックします(これにより、新しいアプリを登録するためのアクセスが10分間許可されます)。 この後、本番の私のアプリはメールを送信し始めました ;)