[Laravel5.5]メール送信できない時の対処法
現象
Laravel5.5には標準で認証機能があり、ログイン画面にパスワード忘れた時用にアカウントに登録されているメールアドレス宛に、リセット用リンクを送信してくれます。 今回はgmailアカウントで送信しようと、 laravel/.env laravel/config/mail.php 上の二つのファイルに設定を行い、tinkerで送信テストを行うと以下のエラーがでました。 エラー文
Swift_TransportException with message 'Expected response code 250 but got code "530", with message "530-5.5.1 Authentication required
色々なサイトを見ながら、設定ファイルと見比べても間違いなくね?と思い、キャッシュを消してもだめでした。
現在
実際に、設定を行っていたのが、
[.env]
MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=hogehoge@gmail.com MAIL_PASSWORD=hogehoge MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=hugahuga@gmail.com MAIL_FROM_NAME=Laravel
[config/mail.php]
'driver' => env('MAIL_DRIVER','smtp'), 'host' => env('MAIL_HOST','smtp.gmail.com'), 'port' => env('MAIL_PORT',587), 'from' => [ 'address' => env('MAIL_FROM_ADDRESS','hugahuga@gmail.com'), 'name' => env('MAIL_FROM_NAME','Laravel'), ], 'encryption' => env('MAIL_ENCRYPTION','tls'), 'username' => env('hogehoge@gmail.com'), 'password' => env('hogehoge'),
解決法
色々なサイトを見ていて、こちらのサイトを参考に見比べてみると
[config/mail.php]
'username' => env('hogehoge@gmail.com'), 'password' => env('hogehoge'), ↓ 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'),
だとわかって、修正して
#php artisan cache:clear #php artisan config:cache #php artisan tinker >>>Mail::raw('test mail',function($message) {$message->to('宛先メアド')->subject('TEST!!');}); => null
これで実際に、メールが届いてました。 おそらく、これでパスワードリセット時のメール送信もできるはずです。