新人社内SEのメモ書き

琵琶湖生まれ琵琶湖育ち。京都の産業用機器メーカの社内SE。自身の体験した事や勉強したことなど記事にしてます。自作PCとドライブが大好き。

[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

これで実際に、メールが届いてました。 おそらく、これでパスワードリセット時のメール送信もできるはずです。