Passer au contenu principal
Votre application Laravel garde ses Mailable et ses Mail::to(...)->send(...). Le transport les remet à l’API transactionnelle de Lekalao, qui les envoie avec le fournisseur choisi et les garde dans son journal : livraisons, rebonds, ouvertures, clics.

Installer

Le paquet lekalao/laravel-transport est livré avec Lekalao, dans packages/laravel-transport. Laravel 11, 12 ou 13, PHP 8.2 ou plus. Depuis l’application qui envoie, déclarez le dépôt puis installez :
composer.json
Le fournisseur de services est découvert tout seul. Si l’application est sur une autre machine, copiez le dossier dans le dépôt de l’application ou publiez-le sur votre dépôt Composer privé.

Configurer

Créez un jeton Lecture et écriture dans Lekalao, puis dans config/mail.php :
config/mail.php
.env
endpoint est la racine versionnée de l’API : https://api.lekalao.com/v1 sur le service Lekalao, https://votre-domaine/api/v1 sur votre propre installation.
La clé s’appelle endpoint, pas url : Laravel lit la clé url d’un mailer comme une adresse de connexion SMTP.
Pour n’utiliser Lekalao que pour certains e-mails, laissez votre MAIL_MAILER et choisissez au cas par cas :

Ce qui passe

L’identifiant de l’e-mail dans Lekalao devient le Message-ID du message envoyé, ce qui permet de le retrouver dans le journal.

Choisir le fournisseur d’envoi

Ajoutez l’en-tête X-Lekalao-Mailer avec le nom d’un fournisseur configuré dans Lekalao :

Erreurs

Un refus de Lekalao (expéditeur non autorisé, jeton révoqué, tous les destinataires dans la liste de suppression, quota épuisé) remonte comme une Symfony\Component\Mailer\Exception\TransportException qui porte le code HTTP et la raison. Envoyez vos e-mails en file (ShouldQueue) pour que Laravel réessaie tout seul. Une fois l’e-mail pris par Lekalao, send() rend la main : le fournisseur le reçoit un instant plus tard, depuis la file de Lekalao, avec de nouveaux essais pendant six heures s’il échoue. Ce qu’il est devenu se lit dans le journal transactionnel, et dans l’API par l’identifiant du message. Voir La réponse. Le délai d’attente est de 15 secondes.