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 paquetlekalao/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
Configurer
Créez un jeton Lecture et écriture dans Lekalao, puis dansconfig/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.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êteX-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 uneSymfony\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.