AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

530 Must issue a STARTTLS command first (Net::SMTPAuthenticationError)

自前運用の SMTP サーバから AWS SES に切り替える作業があったんだけど、表題のエラーが出て「!?」となっていた。

Must issue a STARTTLS command first

答えは全部ここに書いてあるんですが、ちゃんと暗号化して送信しろ、という話です。

エラー時の該当 smtp_settings がこちら。

    config.action_mailer.smtp_settings = {
      :enable_starttls_auto => false,
      :address => 'SMTP エンドポイント',
      :port => 587,
      :domain => 'SES で検証済みドメイン',
      :user_name => 'ユーザ名',
      :password => 'パスワードクレデンシャル'
    }

:enable_starttls_auto => false ハイ、そうですね。 ということで、こうする。

    config.action_mailer.smtp_settings = {
      :enable_starttls_auto => true,
      :address => 'SMTP エンドポイント',
      :port => 587,
      :domain => 'SES で検証済みドメイン',
      :user_name => 'ユーザ名',
      :password => 'パスワードクレデンシャル'
    }

これでオッケー!

送信できる暗号化の組み合わせ

調べてたら以下を見つけた。

2018-04-30-rails-and-aws-ses.md · GitHub

もし「暗号化利用できる環境なのに送信できない!」という場合は、ポート番号を 587 465 あたりで切り替えるとうまく行くかもしれません。