2019-06-29 ローカルのLaravelでメールを送るテストで失敗する例
状況
Mailhog というテスト用SMTPサーバでローカルのメール送信をテストする 手順
Mailhogをdockerで起動する
docker run -d --rm -p 1025:1025 -p 8025:8025 mailhog/mailhog
プロジェクトの.envファイルを修正し、localhost:1025をメールサーバとして指定する
code:diff
$0 diff .env.example .env 26,27c26,27
< MAIL_HOST=smtp.mailtrap.io
< MAIL_PORT=2525
---
MAIL_HOST=localhost
MAIL_PORT=1025
メールを送信するようなコードを実行する
MailhogのWeb UIに送信されたメールが表示されることを期待したが、エラーが表示された
code:error
Swift_TransportException (530)
Expected response code 250 but got code "530", with message "530 5.7.1 Authentication required "
調査
mailhog 530 5.7.1 Authentication required でGoogle検索する
回答はいずれも php ./artisan config:cache を実行せよ、というもの。
.envの内容はキャッシュされているらしい
storage/framework/cache/ 以下にあるものがそれっぽい
解消方法
code:shell
$ ./artisan config:cache
Configuration cache cleared!
Configuration cached successfully!
上記コマンド実行後に再確認すると、うまくいった。