Skip to main content

Le funzionalità email di Laravel

Le funzionalità email di Laravel sono costruite su Symfony Mailer e supportano driver come SMTP, Mailgun, Postmark, Resend, Amazon SES, sendmail.
SwiftMailer è stato dismesso. Da Laravel 9 si usa Symfony Mailer.
Configura in config/mail.php. Nel .env scegli il driver.

Creare una Mailable

Ogni email inviata è rappresentata da una classe “Mailable”.
In app/Mail/.

Configurazione della Mailable

Contiene envelope(), content(), attachments().

Mittente

Mittente globale in config/mail.php.

Corpo del messaggio

content() indica una vista Blade. Le proprietà public del costruttore sono disponibili nella vista.
Vista Blade (resources/views/mail/orders/shipped.blade.php):
Puoi passare dati esplicitamente con with (proprietà protected/private).

Invio

Con la facade Mail, usa to() e send().
CC e BCC:
Con un mailer specifico:

Invio via coda

Con le code serve la configurazione e il worker attivo.
Con delay:
Se la Mailable implementa ShouldQueue, anche send() mette in coda.

Connection e coda tramite attribute PHP

Con gli attribute PHP dichiari connection e coda a livello di classe.

Email Markdown

Con il Markdown usi i template Blade responsive di Laravel.
Template Markdown:
Componenti disponibili:
Le email Markdown generano automaticamente anche la versione text.

Anteprima delle email

Restituendo l’istanza Mailable da una route puoi visualizzare l’email nel browser.

Email in sviluppo locale

Per non inviare email reali in sviluppo, usa Mailpit.
Laragon e Laravel Herd includono Mailpit di default.
Con il driver log le email vengono scritte nel file di log: il modo più semplice per verificarle.
Ultima modifica il 13 luglio 2026