はじめに
先日アサインされた案件で、メール送信機能の実装を行いました。
その際に、Mailable
or Notification
どちらの方法で行うべきか悩んでおりました。
そこで、自分なりの選定基準をまとめましたので、紹介します。
それぞれの違い
-
Mailable
は、メールを送信するためのもの -
Notification
は、メールを含む複数の通知方法を抽象化したもの
メールに限って言えば、Mailable
の方がNotification
と比較してカスタムしやすく、設定も簡単です。
→各メール毎のレイアウト変更など
対してNotification
はModelとの紐付けなど設定が必要になるが、
メールに限らず通知を送ることができるので、そういったケースで使用します。
Mailable VS Notification
某サイトでも似たような質問が存在します。
Laravel Mail or Notification? which one should use for email sending? and Why?
上記回答を翻訳すると、このようになります。
送信する各メールのレイアウトが異なる場合は、Mailable を使用する必要があります。
Mailable は、メールを送信するための非常に柔軟な方法です。また、通知よりもカスタマイズ可能です。
通知は、異なるチャネルで定義済みのレイアウトを送信する必要がある場合に役立ちます。
通知のレイアウトをカスタマイズできますが、通知の複数のレイアウトを持つことは範囲外であるため、お勧めできません。
最後に
自分なりの選定基準
- メール送信のみ行いたいなら
Mailable
を使用する - 様々なチャネルに通知したい場合は
Notification
を使用する