Réponse concise : En séparant le moteur qui assemble l'email des profils qui décrivent chaque marque. Le moteur ne connaît aucune marque, chaque profil tient dans un fichier, et un banc compare la sortie du moteur à une référence figée à chaque modification. Ajouter une marque, c'est écrire un profil.
Source : Sudimédia, composeur en production chez un client à plusieurs marques, et démonstrateur public à deux marques fictives dont la sortie est vérifiée sur trente-deux cas par profil.
Dans cet article
Dans beaucoup d'entreprises, la lettre d'information est un fichier que quelqu'un duplique chaque mois. Ça tient tant qu'il y a une marque et une personne. Le jour où une deuxième marque a besoin de la sienne, le fichier se dédouble, et chaque correction se fait deux fois. Nous avons construit un composeur pour lequel une marque supplémentaire est un fichier de profil, et dont la sortie se compare à un fichier de référence.
Le jour où la deuxième marque est arrivée
Le composeur est né chez un client qui exploite plusieurs marques. La première lettre avait été faite comme on les fait souvent : un gabarit HTML, des blocs que l'on copie et que l'on remplit, un aperçu dans le navigateur avant l'envoi. Quand la deuxième marque a demandé sa lettre, le client a proposé de reprendre le même gabarit en changeant les couleurs.
La réponse honnête était non. Un email n'est pas une page web, et son HTML est écrit d'une façon que les navigateurs ont abandonnée depuis vingt ans : des tableaux pour les colonnes, les styles en attributs sur chaque balise, des commentaires conditionnels pour un moteur de rendu précis, et des colonnes qui s'empilent sans requête de média parce qu'une partie des messageries n'en applique aucune. Dans cette écriture, la couleur d'un filet est répétée partout où le filet apparaît, sans endroit unique où la changer. Changer de marque en dupliquant le gabarit, c'est repartir avec deux fichiers de mille lignes à maintenir en parallèle, et la troisième marque en ferait trois.
Le premier réflexe, un éditeur de newsletter en ligne, ne répondait pas non plus. Ces outils sont conçus pour une marque et un gabarit choisis dans un catalogue. Ils ne lisent pas le back-office du client, ne retrouvent pas les images des éditions précédentes, et leur gabarit reste enfermé dans leur interface.
Séparer ce qui assemble de ce qui décrit
Le code qui assemble l'email ne doit rien savoir des marques. Tout le reste découle de cette décision. Il reçoit un document, une liste de sections avec leur contenu, et un profil. Il rend le document en appelant le profil pour chaque section. Le profil est un fichier qui décrit une marque : ses couleurs, ses polices, son en-tête, son pied, la façon dont chaque type de section se dessine, et sa politique de filets entre les sections. Le moteur, lui, apporte ce qui est vrai pour toutes les marques, l'enveloppe de l'email, l'empilement des colonnes, l'échappement des textes, la vérification des adresses de liens.
Dans le démonstrateur public, le moteur fait 202 lignes et chaque profil autour de 400. Le travail vit dans les profils, et le moteur est petit parce qu'il ne décide rien de visuel.
Une marque nouvelle est un dossier et une ligne de registre. Le moteur et le rendu des marques déjà en place restent tels quels, et le banc décrit plus bas le prouve à chaque modification. Une correction dans l'enveloppe, par exemple la façon de cacher le texte de prévisualisation, se fait une fois et vaut pour toutes les marques.
La démonstration, à manipuler
Le composeur du client lit son back-office et ne peut pas être montré. Nous avons donc mis en ligne une version publique avec le même moteur et deux marques inventées, L'Atelier Vernier et Littoral Habitat, visuels compris. La page compose une lettre section par section, et le HTML d'email produit s'affiche à côté du rendu, copiable tel quel dans un outil d'envoi. Aucun contenu ne quitte le navigateur, et rien n'est enregistré.
Ouvrez la comparaison des deux identités : les deux rendus du même document sont superposés, et une ligne se tire de gauche à droite pour découvrir l'une sous l'autre. Le contenu ne bouge pas. L'en-tête, les couleurs, les filets et le pied changent entièrement, et l'on voit passer la ligne sur des sections dont les bords ne coïncident pas, parce que les deux profils ne dessinent pas une carte de la même façon.
Un bouton « Voir le HTML » ouvre la source à côté de l'aperçu, et cette source est le vrai travail d'un email, celui que les éditeurs en ligne cachent : commentaires conditionnels, tableaux fantômes, styles en attributs. Le document par défaut de L'Atelier Vernier fait 18 113 octets, celui de Littoral Habitat 18 028, pour huit sections. Un visiteur qui veut juger la qualité de ce HTML a la source sous les yeux.
Ce qu'un moteur permet
Un éditeur visuel produit ce que son interface produit, et le seul contrôle possible est de regarder l'aperçu. Un moteur produit une chaîne de caractères à partir d'un document et d'un profil, et cette chaîne se compare à un fichier. Nous avons outillé cette comparaison.
Le composeur est accompagné d'un banc de régression : un script qui rend trente-deux cas sous chaque profil, soixante-quatre sorties, et les compare octet par octet à des références écrites le 10 septembre 2026. Les cas couvrent le document complet, la feuille du gabarit, chaque type de section seul, les galeries à une, deux, trois et quatre images, les schémas d'adresse acceptés ou rejetés dans un lien, une injection de balise dans chaque champ de chaque section, et un inventaire des largeurs de colonnes que trois réglages successifs avaient touchées sans qu'aucun contrôle le voie.
Le banc dit ce qu'un changement a touché, et la lecture dit si c'était voulu. Une modification du moteur qui fait diverger un cas de plus que prévu est un défaut à lire avant tout dépôt, et un cas de moins veut dire que le banc ne couvre pas ce qu'on croyait.
Ce qu'un composeur installé fait de plus
La version publique s'arrête là où la démonstration suffit. Chez le client, le composeur vit dans son back-office. Il retrouve les éditions précédentes avec leurs images, pour les reprendre ou les dupliquer. Il verrouille le gabarit, de sorte qu'un document composé sous une version du moteur garde son rendu quand le moteur évolue. La personne qui compose chaque mois ouvre le même écran et remplit les mêmes cartes, sans mise en page à réapprendre. Quand une marque s'ajoute, c'est nous qui écrivons le profil, en partant d'un profil existant et d'une charte.
Des deux côtés, la connaissance de ce qu'est la lettre de chaque marque a quitté un fichier que quelqu'un dupliquait pour entrer dans du code qui se relit et se compare. Quand cette personne change de poste, la suivante ouvre le même écran.
Questions fréquentes
Pourquoi ne pas utiliser un éditeur de newsletter en ligne ?
Pour une marque unique et un besoin standard, c'est souvent le bon choix. La question se pose autrement quand il y a plusieurs marques, un gabarit imposé par une charte, un back-office dont il faut lire les contenus, ou une personne qui compose chaque mois et n'a pas à réapprendre une mise en page à chaque édition.
Que se passe-t-il concrètement quand une marque s'ajoute ?
Un fichier de profil est écrit, en partant d'un profil existant et de la charte de la marque, puis déclaré au registre. Le moteur d'assemblage n'est pas modifié, et le banc de régression vérifie que le rendu des marques déjà en place n'a pas bougé.
Le HTML produit fonctionne-t-il dans toutes les messageries ?
Il est écrit selon les contraintes connues du HTML d'email, tableaux, styles en attributs, colonnes fluides sans requête de média, et la source est affichée pour que chacun la juge. Nous n'affirmons rien sur le rendu dans un logiciel nommé : un envoi de test vers une vraie boîte reste la seule mesure.
Le démonstrateur envoie-t-il quelque chose ?
Non. Le moteur, les profils et le rendu s'exécutent dans le navigateur. Aucun contenu n'est transmis, aucune image n'est téléversée, et rien n'est conservé au-delà de l'onglet. Le HTML produit se copie dans l'outil d'envoi de votre choix.
Nous construisons des composeurs branchés sur votre back-office, avec un profil par marque et un banc qui vérifie la sortie à chaque modification. À Toulouse et partout en France.
En parler avec nousRéponse par une personne, pas par un formulaire automatique.