veilletech.fr
25 sept. Feed du jour
#06 SYMFONY Article

Symfony 8.2 : le suivi d'e-mail, message par message

Le consentement se règle au message, pas au compte.

Symfony 8.2 ajoute RemoteTemplateEmail, qui envoie un modèle conçu dans l'éditeur du fournisseur au lieu d'un gabarit Twig, et TrackingHeader, qui règle le suivi des ouvertures et des clics e-mail par e-mail. Une option tracking coupe le suivi par défaut, utile quand il dépend du consentement de chaque destinataire.

2 min de lectureintermédiairevidéo 1:26
Partager
Sommaire5 sections
  1. Ce qui se passe
  2. Les modèles hébergés : RemoteTemplateEmail
  3. Le suivi par message : TrackingHeader
  4. Comment s'y prendre
  5. À retenir

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é :

  1. activer la nouvelle option tracking pour couper le suivi par défaut ;
  2. ajouter TrackingHeader aux 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.