Wat is de mailfunctionaliteit van Laravel
De mailfunctionaliteit van Laravel is gebouwd op Symfony Mailer en ondersteunt drivers als SMTP, Mailgun, Postmark, Resend, Amazon SES en sendmail.SwiftMailer, dat in oudere versies van Laravel werd gebruikt, is uitgefaseerd. Vanaf Laravel 9 wordt Symfony Mailer gebruikt.
config/mail.php. In het .env-bestand wissel je van driver.
Een Mailable-klasse aanmaken
In Laravel wordt elke e-mail die de applicatie verstuurt weergegeven als een “Mailable”-klasse. Je genereert de klasse met het Artisan-commandomake:mail.
app/Mail/.
De Mailable configureren
De gegenereerde Mailable-klasse heeft drie methoden:envelope(), content() en attachments().
De afzender instellen
In de methodeenvelope() geef je de afzender op.
config/mail.php een globaal afzenderadres in, dan kun je de opgave in individuele Mailables achterwege laten.
De mailinhoud instellen
In de methodecontent() geef je de Blade-template op. Data die je in de constructor aan public-properties toewijst, is automatisch beschikbaar in de template.
resources/views/mail/orders/shipped.blade.php).
with. In dat geval maak je de properties protected of private.
E-mail versturen
Met de methodeto() van de Mail-facade geef je de ontvanger op en met send() verstuur je de e-mail.
mailer().
E-mail versturen via de queue
Omdat het versturen van e-mail de responstijd beïnvloedt, wordt aanbevolen om via de queue op de achtergrond te versturen.ShouldQueue, dan gaat de e-mail altijd de queue in, ook als je send() aanroept.
De queueverbinding en queuenaam opgeven met PHP-attributen
Met PHP-attributen geef je de queueverbinding en queuenaam direct op de Mailable-klasse op. In plaats van de methodchainon()->queue() kun je dit declaratief op klasseniveau instellen.
emails-queue van de SQS-verbinding wordt gestuurd.
Markdown-mails maken
Met e-mails in Markdown-formaat profiteer je van de fraaie, responsive HTML-templates die Laravel meelevert.Een Markdown-Mailable genereren
Genereer de Mailable met de optie--markdown.
content() gebruik je de parameter markdown.
De Markdown-template schrijven
Je stelt de mailinhoud samen met de Blade-componenten die Laravel meelevert.E-mails previewen
Geef je in een route een Mailable-instantie terug, dan kun je de e-mail in de browser previewen. Handig om te controleren tijdens de ontwikkeling.E-mail tijdens lokale ontwikkeling
Om te voorkomen dat je per ongeluk e-mails in productie verstuurt, is het handig om bij lokale ontwikkeling tools als Mailpit te gebruiken.Laragon en Laravel Herd is Mailpit standaard inbegrepen.
Met de
log-driver wordt de inhoud van e-mails vastgelegd in het logbestand. Wil je alleen controleren dat er e-mail wordt verstuurd, dan is dit de eenvoudigste methode.