Localisé par IA
Tutoriels • MARCH 4, 2026

Envoi d'e-mails avec Laravel

Apprenez à envoyer des emails dans Laravel avec le package Emailit Laravel. S'intègre comme un transport de messagerie natif et vous donne un accès complet à l'API Emailit via une Facade.
Envoi d'e-mails avec Laravel
Envoi d'e-mails avec Laravel

Laravel est livré avec un excellent support de messagerie prêt à l'emploi, mais vous avez toujours besoin d'un service de livraison fiable derrière. Le package Emailit Laravel se connecte directement au système de messagerie de Laravel en tant que transport natif. Vos Mailables, Notifications et appels Mail::send() existants fonctionnent sans aucune modification de code. En plus de cela, vous obtenez un accès complet à l'API Emailit via une Facade pratique.

L'envoi d'e-mails est l'une des tâches les plus courantes dans toute application Laravel. Les confirmations d'inscription utilisateur, les réinitialisations de mot de passe, les reçus de commande, les mises à jour d'expédition et les newsletters marketing dépendent tous d'une livraison d'e-mails fiable. Bien que Laravel fournisse une couche d'abstraction de messagerie puissante, la livraison réelle dépend toujours du transport que vous configurez. L'utilisation d'une API d'e-mail comme Emailit vous offre une haute délivrabilité, un suivi de livraison, une gestion des rebonds et des analyses détaillées, sans avoir à gérer des serveurs SMTP ou vous soucier de la réputation IP.

Dans ce guide, nous allons parcourir la configuration d'Emailit dans une application Laravel et l'envoi d'e-mails en utilisant à la fois le système de messagerie standard de Laravel et la Facade Emailit.

Prérequis

  • PHP 8.1 ou supérieur
  • Laravel 10, 11 ou 12
  • Un compte Emailit avec une clé API

Installation

Installez le package via Composer :

composer require emailit/emailit-laravel

Le package découvre automatiquement son fournisseur de services, aucune inscription manuelle n'est donc nécessaire. Il fonctionne avec Laravel 10, 11 et 12 dès l'installation.

Configuration

Ajoutez votre clé API à .env :

EMAILIT_API_KEY=votre_cle_api

Définissez Emailit comme votre mailer par défaut :

MAIL_MAILER=emailit

Ajoutez le mailer emailit à votre tableau de mailers dans config/mail.php :

'mailers' => [
    // ...

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

Optionnellement, publiez le fichier de configuration pour personnaliser l'URL de base de l'API :

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

La configuration est intentionnellement minimale. Une fois que vous avez défini votre clé API et votre mailer par défaut, Laravel acheminera automatiquement tous les e-mails sortants via Emailit. Il n'est pas nécessaire de configurer les hôtes SMTP, les ports, les paramètres de chiffrement ou les identifiants d'authentification comme vous le feriez avec une configuration de serveur de messagerie traditionnelle.

Envoi d'e-mails avec Laravel Mail

Une fois configuré, toutes les fonctionnalités de messagerie de Laravel fonctionnent immédiatement. Rien dans votre code existant n'a besoin de changer.

Utilisation d'un Mailable

Créez une classe Mailable comme vous le feriez normalement :

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 WelcomeEmail extends Mailable
{
    use Queueable, SerializesModels;

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

    public function envelope(): Envelope
    {
        return new Envelope(
            subject: 'Bienvenue dans notre application',
        );
    }

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

Puis envoyez-le :

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

Mail::to('utilisateur@exemple.com')->send(new WelcomeEmail($user));

Les e-mails en file d'attente, les Mailables Markdown et les Notifications fonctionnent exactement comme vous vous y attendez. Emailit se place de manière transparente derrière la couche de messagerie de Laravel, vous pouvez donc l'échanger contre n'importe quel transport existant comme SMTP, Mailgun ou SES sans toucher au code de votre application. Cela facilite le test d'Emailit aux côtés de votre fournisseur actuel ou la migration progressive.

Utilisation de la Facade Emailit

Pour les fonctionnalités qui vont au-delà de ce qu'offre le système de messagerie de Laravel, comme les modèles avec variables, les envois programmés ou la gestion des ressources API, utilisez la Facade Emailit. Elle vous donne un accès direct au SDK PHP Emailit complet.

Envoyer un e-mail via l'API

use Emailit\Laravel\Facades\Emailit;

$email = Emailit::emails()->send([
    'from'    => 'bonjour@votredomaine.com',
    'to'      => ['utilisateur@exemple.com'],
    'subject' => 'Bonjour depuis Emailit',
    'html'    => '<h1>Bienvenue !</h1>',
]);

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

Envoyer avec un modèle

Référencez les modèles que vous avez créés dans le tableau de bord Emailit et transmettez des variables dynamiques :

use Emailit\Laravel\Facades\Emailit;

$email = Emailit::emails()->send([
    'from'      => 'bonjour@votredomaine.com',
    'to'        => 'utilisateur@exemple.com',
    'template'  => 'email_bienvenue',
    'variables' => [
        'nom'       => 'Jean Dupont',
        'entreprise' => 'Acme Inc',
    ],
]);

L'utilisation de modèles côté serveur est un modèle puissant pour les applications Laravel. Vos designers et marketeurs peuvent mettre à jour le contenu, le style et la mise en page des e-mails dans le tableau de bord Emailit sans nécessiter de modifications de code ou de nouveaux déploiements. Le code PHP n'a qu'à transmettre les données, et le modèle gère le rendu.

Programmer un e-mail

use Emailit\Laravel\Facades\Emailit;

$email = Emailit::emails()->send([
    'from'         => 'rappels@votredomaine.com',
    'to'           => 'utilisateur@exemple.com',
    'subject'      => 'Rappel de rendez-vous',
    'html'         => '<p>Votre rendez-vous est demain à 14h.</p>',
    'scheduled_at' => '2026-04-10T09:00:00Z',
]);

Les e-mails programmés sont entièrement gérés par l'API Emailit, ce qui signifie qu'ils fonctionnent indépendamment de votre système de files d'attente Laravel. C'est idéal pour les rappels de rendez-vous, les avis de renouvellement d'abonnement et les campagnes urgentes où vous voulez une livraison garantie à un moment précis, même si votre serveur d'application subit une panne.

Envoyer avec des pièces jointes

use Emailit\Laravel\Facades\Emailit;

$email = Emailit::emails()->send([
    'from'        => 'factures@votredomaine.com',
    'to'          => 'client@exemple.com',
    'subject'     => 'Votre facture #12345',
    'html'        => '<p>Veuillez trouver votre facture en pièce jointe.</p>',
    'attachments' => [
        [
            'filename'     => 'facture.pdf',
            'content'      => base64_encode(file_get_contents('facture.pdf')),
            'content_type' => 'application/pdf',
        ],
    ],
]);

Gestion des ressources

La Facade expose tous les services de l'API Emailit, vous pouvez donc gérer toute votre infrastructure d'e-mail depuis Laravel.

Domaines

use Emailit\Laravel\Facades\Emailit;

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

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

La gestion des domaines d'envoi via l'API est utile pour les plateformes SaaS qui doivent configurer des domaines personnalisés pour chaque client. Vous pouvez automatiser l'ensemble du processus de vérification de domaine, y compris les vérifications d'enregistrements DNS, directement depuis votre application Laravel.

Contacts

use Emailit\Laravel\Facades\Emailit;

$contact = Emailit::contacts()->create([
    'email' => 'utilisateur@exemple.com',
    'first_name' => 'Jean',
    'last_name' => 'Dupont',
]);

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

Vérification d'e-mail

use Emailit\Laravel\Facades\Emailit;

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

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

La vérification des adresses e-mail au moment de l'inscription ou de la soumission de formulaire vous aide à maintenir une liste de contacts propre et protège votre réputation d'expéditeur. Des taux de rebond élevés provenant d'adresses invalides peuvent faire atterrir vos e-mails dans les dossiers de spam, la vérification est donc une bonne pratique pour toute application Laravel qui envoie des e-mails transactionnels ou marketing à grande échelle.

Injection de dépendance

Si vous préférez ne pas utiliser les Facades, vous pouvez injecter le client directement :

use Emailit\EmailitClient;

class EmailController extends Controller
{
    public function send(EmailitClient $emailit)
    {
        $email = $emailit->emails()->send([
            'from'    => 'bonjour@votredomaine.com',
            'to'      => ['utilisateur@exemple.com'],
            'subject' => 'Bonjour',
            'html'    => '<p>Salut !</p>',
        ]);

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

Le conteneur de services de Laravel résout automatiquement l'instance EmailitClient avec la clé API de votre configuration, vous obtenez donc la même commodité que la Facade avec les avantages de testabilité de l'injection de dépendance.

Gestion des erreurs

Le SDK PHP sous-jacent lance des exceptions typées, vous pouvez donc capturer des types d'erreur spécifiques :

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

try {
    Emailit::emails()->send([...]);
} catch (AuthenticationException $e) {
    // Clé API invalide (401)
} catch (RateLimitException $e) {
    // Trop de requêtes (429)
} catch (ApiErrorException $e) {
    // Toute autre erreur API
    echo $e->getHttpStatus();
}

Dans une application Laravel, vous pouvez également gérer ces exceptions globalement dans votre gestionnaire d'exceptions ou utiliser un middleware pour capturer les erreurs de limite de taux et implémenter une logique de nouvelle tentative automatique. Cela garantit que votre application reste résiliente même lors de l'envoi de gros volumes d'e-mails.

Tous les services disponibles

La Facade vous donne accès à tout dans l'API Emailit :

ServiceUtilisationDescription
E-mailsEmailit::emails()Envoyer, lister, obtenir, annuler, réessayer des e-mails
DomainesEmailit::domains()Créer, vérifier, lister, gérer les domaines d'envoi
Clés APIEmailit::apiKeys()Créer, lister, gérer les clés API
AudiencesEmailit::audiences()Créer, lister, gérer les audiences
AbonnésEmailit::subscribers()Ajouter, lister, gérer les abonnés
ModèlesEmailit::templates()Créer, lister, publier des modèles d'e-mail
SuppressionsEmailit::suppressions()Créer, lister, gérer les adresses supprimées
Vérifications d'e-mailEmailit::emailVerifications()Vérifier les adresses e-mail
Listes de vérification d'e-mailEmailit::emailVerificationLists()Vérification d'e-mail en lot
WebhooksEmailit::webhooks()Créer, lister, gérer les webhooks
ContactsEmailit::contacts()Créer, lister, gérer les contacts
ÉvénementsEmailit::events()Lister et récupérer les événements

Commencer

Installez le package et commencez à envoyer en moins d'une minute :

composer require emailit/emailit-laravel

Consultez la documentation complète du package sur GitHub, le SDK PHP Emailit pour le client sous-jacent, ou rendez-vous à la Référence API pour les détails sur chaque endpoint.

Blog

Les dernières actualités et mises à jour, directement depuis Emailit.

Restez informé des derniers articles du Blog Emailit.

Articles connexes

Dernières actualités, tutoriels et mises à jour de l'équipe Emailit

Modifications des limites de débit
Annonces
8 min de lecture

Modifications des limites de débit

Avec l'introduction de l'API v2, nous avons apporté des modifications aux limites de débit.

Oct 10, 2025
Nouvelle Documentation
Annonces
10 min de lecture

Nouvelle Documentation

Un seul endroit pour trouver toutes les informations nécessaires pour débuter avec Emailit.

Oct 12, 2025
API de vérification d'e-mails désormais disponible
Annonces
2 min de lecture

API de vérification d'e-mails désormais disponible

Vérifiez vos adresses e-mail avant l'envoi grâce à notre nouvelle API de Vérification d'E-mails. Réduisez les rebonds et préservez votre réputation d'expéditeur.

Feb 3, 2026