[Laravel] メールの送信ログをデータベースに保存する方法
Laravelのメールシステムを利用する際に、送信履歴をデータベースへログとして保存しておく方法を紹介します。 メールの送信処理に関わるクラスといえばクラスやクラスですが、共通して送信処理が行われた際に発火されるイベントをフックすることで送信済みのメールオブジェクトのハンドリングが可能です。 今回は公開されているパッケージを使ってみます。 shvetsgroup/laravel-email-database-logパッケージ Composerを使ってshvetsgroup/laravel-email-database-logをインストールします。 Laravelの以上を使っている場合はPackage Auto Discoveryでサービスプロバイダが読み込まれます。 それ以外の場合は下記をへ追加しましょう。 migrationを実行すると、パッケージに同封されているテーブルが作成されます。 メールを送信する通知クラスも作成しておきましょう。 作成したクラスを利用してメールを送信してみます。 今回はを使用してコマンドラインからユーザーを作成し、メールの送信を行います。 テーブルに送信ログが保存されていることを確認しましょう。