Laravelでメールを送信するとき、NotificationとMailable (メイラブル)という二つの機能が在ります。
「どちらを使ったらよいのだろう?」という疑問を感じますよね。
結論から言うと、次のように使い分けると良いかと思います。
- Mailableはメールを送信するためにつかう。
- Notificationはメールに加え、ショートメッセージも送信できる。
- Notificationは、新規登録時の認証メールなど、既存のメールを上書き(オーバーライド)するときにも使える。
好みもありますが、普通にメールを送るならMailableのほうが使いやすいでしょう。
Notificationsはモデルファイルと連携させたり面倒ですが、使える幅が広い。
新規登録時やパスワードリセット時の既存メールを書きかえたい時も、Notificationsを利用できます。
海外の Notifications vs Mailable 投稿を紹介
なお、海外のサイトで、この問題について取り上げたスレッドがありました。
NotificationsとMailableの使い分けを決めるうえで役立つので、翻訳しつつ、一部紹介しますね。
普通の通知メールをおくるだけなら、MailablesとNotificationsのどちらがよいの?
もし各通知メールのレイアウトが違うなら、Mailablesを使ったほうが良いのでしょうか?
もし各通知メールのレイアウトが違うなら、Mailablesを使ったほうが良いのでしょうか?
これに対する返答は、下記の通り。
Mailablesを使ったほうが、断然良いと思うよ。
Mailableは新しい方法で、Notificationsよりカスタマイズしやすい。
もしメールやSMSやSlackなど、色々なチャンネルで、決まったレイアウトで通知を送るなら、Notificationsだけど。
Mailableは新しい方法で、Notificationsよりカスタマイズしやすい。
もしメールやSMSやSlackなど、色々なチャンネルで、決まったレイアウトで通知を送るなら、Notificationsだけど。
*参照元:Stack Overflow “Laravel 5.3 Notification vs Mailable“
3年以上前の投稿で、当時のLaravelのバージョンは5.3と少し古いですが、参考にはなりますね。
NotificationsとMailableの使い分け、スッキリしたと感じていただけたら嬉しいです。
実際の使い方は、こちらの記事をどうぞ。
・Mailableで、登録情報更新時に、管理者とユーザーに自動送信メールを設定する方法を解説。
・Notificationsで、新規登録時の認証メールを日本語に変更する方法を解説。