2019-06-29 ローカルのLaravelでメールを送るテストで失敗する例
#作業記録 #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検索する
https://stackoverflow.com/questions/48341078/expected-response-code-250-but-got-code-530-with-message-530-5-7-1-authentic を見つける
回答はいずれも php ./artisan config:cache を実行せよ、というもの。
.envの内容はキャッシュされているらしい
storage/framework/cache/ 以下にあるものがそれっぽい
解消方法
code:shell
$ ./artisan config:cache
Configuration cache cleared!
Configuration cached successfully!
上記コマンド実行後に再確認すると、うまくいった。