https://www.hypertextcandy.com/laravel-tutorial-authentication-part-2/
こちらの記事を参考に、Laravel(ver.5.7)でメールの送信機能を実装しようとしたらはまりました。
何度コードの記載をし直しても認証できませんとのエラーが、パスワードの再設定のボタンを押すと出されてしまう。
Swift_TransportException in AbstractSmtpTransport.php line 383:
Expected response code 250 but got code "530", with message "530 5.7.1 Authentication required"
結論から言うと、.envを変更した際にキャッシュをクリア(php artisan config:cache)していないのが原因でした。config/mail.phpの設定も一部変更する必要があった模様。
これらの合わせわざではまりました。
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=ここに Username を記載する
MAIL_PASSWORD=ここに Password を記載する
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=todoapp@email.com
# ここに自分の持っているメールアドレスを記載することで、自分のメールアドレスからパスワードの再発行を申請した人に新しいメールアドレスが送られます。
MAIL_FROM_NAME="ToDo App"
# ここはなんでもOKです。
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=ここのデータをコピーする
MAIL_PASSWORD=ここのデータをコピーする。
MAIL_ENCRYPTION=tls
カリキュラムだとMAIL_DRIVERの定数の定義が微妙に違いました。
MAIL_DRIVER=smtp
MAIL_MAILER=smtp
とりあえずmailtrapの記載に合わせて「MAIL_MAILER=smtp」と.envに記載しました。
その後、キャッシュをクリアしてみてもエラーがでる。。。
config/mail.phpを確認してみる。
絶対に必要かはわからないが、config/mail.phpをみると確実らしい。
'driver' => env('MAIL_DRIVER', 'smtp'),
これだ!
'driver' => env('MAIL_MAILER', 'smtp'),
記載を変更した時は、忘れ図にキャッシュをクリア!
$php artisan config:cache
Configuration cache cleared!
Configuration cached successfully!
記載しなおしてキャッシュをクリアしたら元に戻りました。
ちゃんとメールも届いてる。