LaravelでSMTP認証(SMTP-AUTH)メール送信エラーの対応方法
■はじめに
レンタルサーバーのSMTP認証(SMTP-AUTH)のメール送信をすると
Swift_TransportException: Expected response code 220 but got code “500”, with message “500 Unknown Command: “STARTTLS”
が発生して、メール送信が出来なかった。
いくら調べてもGmailの設定例ばかりでその通りにやってもダメ
とりあえず、SMTPSでは送信出来ることは確認した。
そりゃ、認証してないんだから出来て当たり前と思いつつモヤモヤしていたので
色々調べていたら解決できたので備忘録として残しておきます。
■環境情報
Laravel 5.5
PHP 7.1
■LaravelでSMTP認証メール(SMTP-AUTH)送信エラーの対応方法
.envに下記を設定
1 2 3 4 5 6 7 8 |
MAIL_DRIVER=smtp MAIL_HOST=ホスト名 MAIL_PORT=587 MAIL_USERNAME=ユーザーID MAIL_PASSWORD=パスワード MAIL_ENCRYPTION= MAIL_FROM_ADDRESS=送信元メールアドレス MAIL_FROM_NAME=送信元名前 |
動作確認したレンタルサーバー:xserver(エックスサーバー)、heteml(ヘテムル)
ポート587のMAIL_ENCRYPTIONはtlsとどこ見てもそう紹介していたけど
MAIL_ENCRYPTION=に何も設定しないが正解でした。
原因が違う方は下記が参考になるかもしれまん。
https://www.ravness.com/2018/07/laravelmail/#.W_zm7ZP7SUk
■LaravelでSMTPSでメール送信
参考までにSMTPSでの送信.env設定例
1 2 3 4 5 6 7 8 |
MAIL_DRIVER=smtp MAIL_HOST=ホスト名 MAIL_PORT=465 MAIL_USERNAME=ユーザーID MAIL_PASSWORD=パスワード MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS=送信元メールアドレス MAIL_FROM_NAME=送信元名前 |
■終わりに
たったこれだけのことを24時間以上かけて調べてしまったので
この情報が少しでも役立つと嬉しいです