Localizzato tramite IA
Tutorial • MARCH 4, 2026

Invio di Email con Laravel

Scopri come inviare email in Laravel utilizzando il pacchetto Emailit Laravel. Si integra come trasporto di posta nativo e ti offre accesso completo all'API Emailit tramite una Facade.
Invio di Email con Laravel
Invio di Email con Laravel

Laravel include un eccellente supporto per l'invio di email già integrato, ma hai comunque bisogno di un servizio di consegna affidabile alle spalle. Il pacchetto Emailit Laravel si integra direttamente nel sistema mail di Laravel come transport nativo. I tuoi Mailable, Notification e chiamate Mail::send() esistenti funzionano senza alcuna modifica al codice. Inoltre, ottieni accesso completo all'API Emailit attraverso una comoda Facade.

L'invio di email è una delle attività più comuni in qualsiasi applicazione Laravel. Conferme di registrazione utente, reset delle password, ricevute d'ordine, aggiornamenti di spedizione e newsletter di marketing dipendono tutti da una consegna email affidabile. Mentre Laravel fornisce un potente livello di astrazione per le email, la consegna effettiva dipende ancora dal transport che configuri. Utilizzare un'API email come Emailit ti offre alta deliverability, tracciamento delle consegne, gestione dei rimbalzi e analisi dettagliate, senza dover gestire server SMTP o preoccuparti della reputazione IP.

In questa guida ti mostreremo come configurare Emailit in un'applicazione Laravel e inviare email utilizzando sia il sistema mail standard di Laravel che la Facade di Emailit.

Requisiti

  • PHP 8.1 o superiore
  • Laravel 10, 11 o 12
  • Un account Emailit con una chiave API

Installazione

Installa il pacchetto tramite Composer:

composer require emailit/emailit-laravel

Il pacchetto si auto-registra come service provider, quindi non è necessaria alcuna registrazione manuale. Funziona con Laravel 10, 11 e 12 immediatamente.

Configurazione

Aggiungi la tua chiave API al file .env:

EMAILIT_API_KEY=la_tua_chiave_api

Imposta Emailit come mailer predefinito:

MAIL_MAILER=emailit

Aggiungi il mailer emailit all'array mailers del tuo config/mail.php:

'mailers' => [
    // ...

    'emailit' => [
        'transport' => 'emailit',
    ],
],

Opzionalmente, pubblica il file di configurazione per personalizzare l'URL base dell'API:

php artisan vendor:publish --tag=emailit-config

La configurazione è intenzionalmente minimale. Una volta impostata la chiave API e il mailer predefinito, Laravel instraderà automaticamente tutta la posta in uscita attraverso Emailit. Non è necessario configurare host SMTP, porte, impostazioni di crittografia o credenziali di autenticazione come faresti con una configurazione server mail tradizionale.

Invio di email con Laravel Mail

Una volta configurato, tutte le funzionalità mail di Laravel funzionano immediatamente. Nulla nel tuo codice esistente deve cambiare.

Utilizzando un Mailable

Crea una classe Mailable come faresti normalmente:

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;

class EmailBenvenuto extends Mailable
{
    use Queueable, SerializesModels;

    public function __construct(
        public readonly User $user,
    ) {}

    public function envelope(): Envelope
    {
        return new Envelope(
            subject: 'Benvenuto nella nostra App',
        );
    }

    public function content(): Content
    {
        return new Content(
            view: 'emails.benvenuto',
        );
    }
}

Poi inviala:

use Illuminate\Support\Facades\Mail;
use App\Mail\EmailBenvenuto;

Mail::to('utente@esempio.com')->send(new EmailBenvenuto($user));

Mail in coda, Mailable Markdown e Notification funzionano esattamente come ti aspetteresti. Emailit si posiziona in modo trasparente dietro il livello mail di Laravel, così puoi sostituirlo a qualsiasi transport esistente come SMTP, Mailgun o SES senza toccare il codice della tua applicazione. Questo rende facile testare Emailit insieme al tuo provider attuale o migrare gradualmente.

Utilizzo della Facade Emailit

Per funzionalità che vanno oltre quello che offre il sistema mail di Laravel, come template con variabili, invii programmati o gestione delle risorse API, utilizza la Facade Emailit. Ti dà accesso diretto al completo SDK PHP di Emailit.

Invia un'email tramite API

use Emailit\Laravel\Facades\Emailit;

$email = Emailit::emails()->send([
    'from'    => 'ciao@tuodominio.com',
    'to'      => ['utente@esempio.com'],
    'subject' => 'Ciao da Emailit',
    'html'    => '<h1>Benvenuto!</h1>',
]);

echo $email->id;
echo $email->status;

Invia con un template

Fai riferimento ai template che hai creato nella dashboard di Emailit e passa variabili dinamiche:

use Emailit\Laravel\Facades\Emailit;

$email = Emailit::emails()->send([
    'from'      => 'ciao@tuodominio.com',
    'to'        => 'utente@esempio.com',
    'template'  => 'email_benvenuto',
    'variables' => [
        'nome'    => 'Mario Rossi',
        'azienda' => 'Acme S.r.l.',
    ],
]);

Utilizzare template lato server è un pattern potente per le applicazioni Laravel. I tuoi designer e marketer possono aggiornare contenuto, stile e layout delle email nella dashboard di Emailit senza richiedere modifiche al codice o nuovi deployment. Il codice PHP deve solo passare i dati, e il template gestisce il rendering.

Programma un'email

use Emailit\Laravel\Facades\Emailit;

$email = Emailit::emails()->send([
    'from'         => 'promemoria@tuodominio.com',
    'to'           => 'utente@esempio.com',
    'subject'      => 'Promemoria Appuntamento',
    'html'         => '<p>Il tuo appuntamento è domani alle 14:00.</p>',
    'scheduled_at' => '2026-04-10T09:00:00Z',
]);

Le email programmate sono gestite interamente dall'API Emailit, il che significa che funzionano indipendentemente dal sistema di code di Laravel. Questo è ideale per promemoria di appuntamenti, avvisi di rinnovo abbonamenti e campagne sensibili al tempo dove vuoi una consegna garantita a un orario specifico, anche se il server della tua applicazione subisce interruzioni.

Invia con allegati

use Emailit\Laravel\Facades\Emailit;

$email = Emailit::emails()->send([
    'from'        => 'fatture@tuodominio.com',
    'to'          => 'cliente@esempio.com',
    'subject'     => 'La tua Fattura #12345',
    'html'        => '<p>Trovi la tua fattura in allegato.</p>',
    'attachments' => [
        [
            'filename'     => 'fattura.pdf',
            'content'      => base64_encode(file_get_contents('fattura.pdf')),
            'content_type' => 'application/pdf',
        ],
    ],
]);

Gestione delle risorse

La Facade espone ogni servizio dell'API Emailit, così puoi gestire l'intera infrastruttura email da Laravel.

Domini

use Emailit\Laravel\Facades\Emailit;

$dominio = Emailit::domains()->create([
    'name' => 'esempio.com',
    'track_loads' => true,
    'track_clicks' => true,
]);

$dominio = Emailit::domains()->verify('sd_123');

Gestire i domini di invio attraverso l'API è utile per piattaforme SaaS che devono configurare domini personalizzati per ogni cliente. Puoi automatizzare l'intero workflow di verifica del dominio, inclusi i controlli dei record DNS, direttamente dalla tua applicazione Laravel.

Contatti

use Emailit\Laravel\Facades\Emailit;

$contatto = Emailit::contacts()->create([
    'email' => 'utente@esempio.com',
    'first_name' => 'Mario',
    'last_name' => 'Rossi',
]);

$contatti = Emailit::contacts()->list();

Verifica email

use Emailit\Laravel\Facades\Emailit;

$risultato = Emailit::emailVerifications()->verify([
    'email' => 'test@esempio.com',
]);

echo $risultato->status; // valid
echo $risultato->risk;   // low

Verificare gli indirizzi email al momento della registrazione o dell'invio di moduli ti aiuta a mantenere una lista contatti pulita e protegge la tua reputazione di mittente. Alti tassi di rimbalzo da indirizzi non validi possono causare che le tue email finiscano nelle cartelle spam, quindi la verifica è una best practice per qualsiasi applicazione Laravel che invia email transazionali o di marketing su larga scala.

Dependency injection

Se preferisci non utilizzare le Facade, puoi iniettare il client direttamente:

use Emailit\EmailitClient;

class EmailController extends Controller
{
    public function send(EmailitClient $emailit)
    {
        $email = $emailit->emails()->send([
            'from'    => 'ciao@tuodominio.com',
            'to'      => ['utente@esempio.com'],
            'subject' => 'Ciao',
            'html'    => '<p>Ciao!</p>',
        ]);

        return response()->json(['id' => $email->id]);
    }
}

Il service container di Laravel risolve automaticamente l'istanza EmailitClient con la chiave API dalla tua configurazione, così ottieni la stessa comodità della Facade con i vantaggi di testabilità della dependency injection.

Gestione degli errori

L'SDK PHP sottostante lancia eccezioni tipizzate, così puoi catturare tipi di errore specifici:

use Emailit\Exceptions\AuthenticationException;
use Emailit\Exceptions\RateLimitException;
use Emailit\Exceptions\ApiErrorException;
use Emailit\Laravel\Facades\Emailit;

try {
    Emailit::emails()->send([...]);
} catch (AuthenticationException $e) {
    // Chiave API non valida (401)
} catch (RateLimitException $e) {
    // Troppe richieste (429)
} catch (ApiErrorException $e) {
    // Qualsiasi altro errore API
    echo $e->getHttpStatus();
}

In un'applicazione Laravel, puoi anche gestire queste eccezioni globalmente nel tuo exception handler o utilizzare middleware per catturare errori di rate limit e implementare logica di retry automatico. Questo assicura che la tua applicazione rimanga resiliente anche quando invia grandi volumi di email.

Tutti i servizi disponibili

La Facade ti dà accesso a tutto nell'API Emailit:

ServizioUtilizzoDescrizione
EmailEmailit::emails()Invia, elenca, ottieni, cancella, riprova email
DominiEmailit::domains()Crea, verifica, elenca, gestisci domini di invio
Chiavi APIEmailit::apiKeys()Crea, elenca, gestisci chiavi API
AudienceEmailit::audiences()Crea, elenca, gestisci audience
IscrittiEmailit::subscribers()Aggiungi, elenca, gestisci iscritti
TemplateEmailit::templates()Crea, elenca, pubblica template email
SoppressioniEmailit::suppressions()Crea, elenca, gestisci indirizzi soppressi
Verifiche EmailEmailit::emailVerifications()Verifica indirizzi email
Liste Verifiche EmailEmailit::emailVerificationLists()Verifica email in blocco
WebhookEmailit::webhooks()Crea, elenca, gestisci webhook
ContattiEmailit::contacts()Crea, elenca, gestisci contatti
EventiEmailit::events()Elenca e recupera eventi

Inizia subito

Installa il pacchetto e inizia a inviare in meno di un minuto:

composer require emailit/emailit-laravel

Consulta la documentazione completa del pacchetto su GitHub, l'SDK PHP di Emailit per il client sottostante, o vai al Riferimento API per i dettagli su ogni endpoint.

Blog

Le ultime novità e aggiornamenti, direttamente da Emailit.

Rimani aggiornato con gli ultimi articoli del Blog di Emailit.

Articoli Correlati

Ultime novità, guide pratiche e aggiornamenti dal team di Emailit

Modifiche ai Limiti di Velocità
Annunci
8 min di lettura

Modifiche ai Limiti di Velocità

Con l'introduzione dell'API v2, abbiamo apportato alcune modifiche ai limiti di velocità.

Oct 10, 2025
Nuova Documentazione
Annunci
10 min di lettura

Nuova Documentazione

Un unico posto dove trovare tutte le informazioni necessarie per iniziare con Emailit.

Oct 12, 2025
API di Verifica Email Ora Disponibile
Annunci
2 min di lettura

API di Verifica Email Ora Disponibile

Verifica gli indirizzi email prima dell'invio con la nostra nuova API di Verifica Email. Riduci i rimbalzi e proteggi la reputazione del tuo mittente.

Feb 3, 2026