Laravelのローカル環境でメール送信をログにする方法。
Laravelのメールドライバの設定
Laravelの提供するメールドライバは複数あるが、ログ出力する場合は以下のように設定する。
.envファイルの設定
MAIL_DRIVER = log
上記のように設定すれば、Laravelのログファイル上にメール内容が出力されるようになる。
エラーが出る場合
ログ出力に変更したのに、ログに出力されずエラーが出るような場合、以下を確認する。
- Cannot send message without a sender address
- Address in mailbox given [] does not comply with RFC 2822, 3.6.2.
上記のようなエラーだった場合、メール送信時に、メールアドレスが設定されていない状態。
メール処理部分のコードを確認して、メールアドレスがちゃんとセットされているかを確認する。
.envファイルやconfig周りに問題ないか、env()関数で取得できなかった場合の初期値は入っているかなど。
設定キャッシュのクリア
コード上、正しくセットされてそうなのに上手くいかない場合は、以下のコマンドで設定キャッシュをクリアする。
$ php artisan config:clear
これで大体いけると思う。