web-dev-qa-db-fra.com

Laravel 5.3 Notification Vs Mailable

Je suis un peu confus quant à savoir s'il faut utiliser la classe Notification ou Mailable de Laravel. D'après ce que je comprends, Mailables sont utilisés pour envoyer uniquement des e-mails tandis que les notifications peuvent être utilisées pour envoyer des e-mails et des sms. Dans mon application, je n'ai pas l'intention d'envoyer des notifications par SMS pour l'instant, donc je ne sais pas si je devrais simplement utiliser la classe Mailable dans ce cas. Mes questions sont:

  1. Si je ne vais envoyer que des notifications par e-mail, est-il préférable pour moi d'utiliser Mailables au lieu de notifications?

  2. Si chaque e-mail a une disposition html différente, alors Mailable serait-il la meilleure option?

  3. Même si tous les e-mails sont par nature des e-mails de notification, est-il toujours judicieux de les envoyer à l'aide de Mailables au lieu de notifications?

Quelqu'un peut-il me dire la principale différence entre ces 2 et comment devrions-nous décider de la méthode à choisir lors de l'envoi d'e-mails en Laravel 5.3.

33
Neel

Oui, définitivement, si chaque mise en page de l'e-mail est différente, vous devez utiliser Mailable

Mailable est la nouvelle façon d'envoyer des e-mails, plus facilement qu'auparavant. Plus personnalisable que les notifications.

La notification est très agréable si vous souhaitez envoyer une mise en page prédéfinie dans différents canaux (Mail, SMS, Slack, etc.)

Vous pouvez personnaliser la mise en page des notifications, mais avoir 1 mise en page par notification va devenir plus difficile ... ce n'est tout simplement pas le cas d'utilisation des notifications

8
Juliatzin del Toro

Bien qu'il ne figure pas dans la documentation, à partir de Laravel 5.3.7, le canal Notifications mail peut fonctionner avec des objets Mailable en plus de la notification MailMessage objets.

Par conséquent, vous pouvez créer tous vos e-mails en tant qu'objets Mailable, et si vous décidez de les envoyer via des notifications, votre méthode toMail() renverra simplement les objets Mailable que vous 'ai déjà fait.

38
patricus