From c647c90078a7a3c7e88d4edc8726a14957887ca9 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 14 Jul 2026 08:24:07 +0000 Subject: [PATCH] Bouton d'inscription compatible Outlook dans l'email (bulletproof button) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Outlook (moteur de rendu Word) ignore padding et display:inline-block sur les liens : le bouton d'inscription s'affichait en simple texte rouge au lieu d'un bouton plein. Ajout d'un « bulletproof button » : un VML roundrect pour Outlook et le lien stylé (largeur fixe + line-height plutôt que padding) pour les autres clients, les deux aux mêmes dimensions pour un rendu identique à l'aperçu. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01Fkg15RCxNgUys4ru73He2o --- server/src/emailTemplate.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/server/src/emailTemplate.js b/server/src/emailTemplate.js index 21e4d13..aa158d7 100644 --- a/server/src/emailTemplate.js +++ b/server/src/emailTemplate.js @@ -66,6 +66,22 @@ export function buildInvitationEmail({ rencontre, baseUrl, texts = {} }) { ? `
${escML(text)}
` : ''; + // "Bulletproof" CTA button. Outlook (Word engine) ignores padding and + // display:inline-block on , collapsing the button to a plain link, so + // it needs a VML roundrect. Other clients get the styled , sized with + // a fixed width + line-height (not padding) so both paths match. The + // conditional comments are inert HTML comments in normal renderers. + const ctaButton = (url, label) => ` + + + ${label} + `; + const html = ` @@ -114,7 +130,7 @@ export function buildInvitationEmail({ rencontre, baseUrl, texts = {} }) {
- Je m'inscris à la rencontre + ${ctaButton(inscriptionUrl, "Je m'inscris à la rencontre")}
Réservé aux membres à jour de leur adhésion pour la saison en cours.