自前運用の 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 あたりで切り替えるとうまく行くかもしれません。