Was ist die E-Mail-Funktion von Laravel
Die E-Mail-Funktion von Laravel basiert auf dem Symfony Mailer und unterstützt Treiber wie SMTP, Mailgun, Postmark, Resend, Amazon SES und sendmail.Der früher in Laravel eingesetzte SwiftMailer ist veraltet. Seit Laravel 9 wird der Symfony Mailer verwendet.
config/mail.php verwaltet. Über die .env-Datei können Sie den verwendeten Treiber wechseln.
Eine Mailable-Klasse erstellen
In Laravel wird jede E-Mail, die die Anwendung versendet, als „Mailable“-Klasse dargestellt. Mit dem Artisan-Befehlmake:mail erzeugen Sie eine solche Klasse.
app/Mail/ abgelegt.
Mailable konfigurieren
Die generierte Mailable-Klasse besitzt die drei Methodenenvelope(), content() und attachments().
Absender konfigurieren
Über die Methodeenvelope() können Sie den Absender angeben.
config/mail.php eine globale Absenderadresse hinterlegen, können Sie die Angabe in jeder einzelnen Mailable weglassen.
E-Mail-Inhalt konfigurieren
Über die Methodecontent() geben Sie das Blade-Template an. Daten, die Sie im Konstruktor als public-Eigenschaft setzen, stehen automatisch im Template zur Verfügung.
resources/views/mail/orders/shipped.blade.php).
with übergeben. In diesem Fall sollten die Eigenschaften protected oder private sein.
E-Mails versenden
Geben Sie den Empfänger mit derto()-Methode der Mail-Fassade an und versenden Sie die Mail mit send().
mailer().
E-Mail-Versand über Queues
Da der E-Mail-Versand die Antwortzeit beeinflusst, empfiehlt es sich, ihn über eine Queue im Hintergrund abzuwickeln.ShouldQueue implementieren, wird die Mail auch bei einem Aufruf von send() immer in die Queue eingereiht.
Queue-Verbindung und Queue-Name per PHP-Attribut angeben
Mit PHP-Attributen können Sie Queue-Verbindung und Queue-Name direkt an der Mailable-Klasse festlegen. Statt der Methoden-Ketteon()->queue() konfigurieren Sie diese Werte deklarativ auf Klassenebene.
emails auf der SQS-Verbindung übergeben wird.
Markdown-Mails erstellen
Mit Markdown-Mails können Sie die von Laravel bereitgestellten, schönen und responsiven HTML-Templates nutzen.Markdown-Mailable erzeugen
Erzeugen Sie das Mailable mit der Option--markdown.
content() den Parameter markdown.
Markdown-Templates schreiben
Verfassen Sie den E-Mail-Text mithilfe der von Laravel bereitgestellten Blade-Komponenten.E-Mails in der Vorschau anzeigen
Wenn Sie in einer Route eine Mailable-Instanz zurückgeben, können Sie die Mail im Browser als Vorschau ansehen. Das ist während der Entwicklung sehr praktisch.E-Mails in der lokalen Entwicklung
Damit in der Produktionsumgebung keine Mails versehentlich versendet werden, ist es hilfreich, für die lokale Entwicklung Tools wie Mailpit einzusetzen.Laragon oder Laravel Herd ist Mailpit standardmäßig enthalten.
Mit dem Treiber
log wird der Inhalt der E-Mail in die Logdatei geschrieben. Wenn Sie nur den Versand prüfen möchten, ist dies die einfachste Variante.