Ce qui se passe
Symfony 8.2 apporte deux nouveautés au Mailer : l'envoi de modèles hébergés chez le fournisseur, et le réglage du suivi des ouvertures et des clics pour chaque message.
Les modèles hébergés : RemoteTemplateEmail
Brevo, Mailgun, Mailjet et d'autres proposent un éditeur visuel où le marketing
ou le support modifient leurs e-mails sans passer par un développeur. Jusqu'ici,
s'en servir depuis Symfony demandait des en-têtes propres à chaque pont :
templateid chez Brevo, X-MJ-TemplateID chez Mailjet.
La classe RemoteTemplateEmail remplace le corps du message par une référence
au modèle et par les variables qu'il attend. La référence est toujours une
chaîne (identifiant, UUID, nom ou alias selon le fournisseur) que chaque
transport convertit pour son API. Destinataires, pièces jointes, tags et
métadonnées se règlent comme sur un Email. Un sujet défini dans le code
remplace celui du modèle, sauf avec Amazon SES, Mailtrap et Postmark.
Transports API pris en charge : Amazon SES, Brevo, MailerSend, Mailgun, Mailjet, Mailtrap, Mandrill, Postmark, Resend, SendGrid. Contribution de Florent Blaison et Nicolas Grekas.
Le suivi par message : TrackingHeader
Le suivi des ouvertures et des clics est d'ordinaire un réglage global du
compte. Or les règles de protection de la vie privée peuvent exiger le
consentement de chaque destinataire. TrackingHeader surcharge ce réglage pour
un seul message. Ses deux arguments, l'un pour les ouvertures, l'autre pour les
clics, sont facultatifs : null laisse la main au fournisseur.
Fournisseurs pris en charge : AhaSend, Azure, Brevo, Infobip, Mailchimp,
MailerSend, Mailgun, Mailjet, Postmark, SendGrid. Ailleurs, l'en-tête part comme
un simple X-Track et reste sans effet. Contribution de Starfox64 et Nicolas
Grekas.
Comment s'y prendre
Un e-mail envoyé par un bundle tiers ne porte pas cet en-tête, et c'est alors le réglage du compte qui s'applique. D'où l'ordre conseillé :
- activer la nouvelle option
trackingpour couper le suivi par défaut ; - ajouter
TrackingHeaderaux seuls messages dont le destinataire a consenti, l'en-tête d'un message l'emportant toujours sur l'option.
La syntaxe exacte et le comportement de chaque fournisseur sont dans la documentation du Mailer 8.2.
Source : New in Symfony 8.2: Provider-Hosted Email Templates and Tracking Control, Symfony, 24 septembre 2026.