Skip to content

feat(e-mails): habillage HTML aux couleurs d'OTSPI - #19

Merged
PhilippeVienne merged 1 commit into
mainfrom
feat/mails-html
Sep 27, 2026
Merged

PhilippeVienne merged 1 commit into
mainfrom
feat/mails-html

Conversation

@PhilippeVienne

Copy link
Copy Markdown
Contributor

Les e-mails passent du texte brut à un HTML aux couleurs du site, avec la version texte jointe (multipart/alternative) pour les messageries qui n'affichent pas le HTML.

  • Généré automatiquement à partir des textes existants (mail_html()) : aucun des e-mails n'est réécrit, les futurs en profitent aussi.
  • Bandeau OTSPI (bleu nuit, liseré or), titre = objet, récapitulatif en tableau, liens en boutons libellés selon la page (« Confirmer ma signature », « Voir ma preuve horodatée », « Retirer ma signature » en contour…), adresse rappelée sous chaque bouton, pied de page.
  • Thème sombre, mise en page mobile, texte d'aperçu dans la boîte de réception.
  • Styles en ligne, aucune image ni ressource externe (donc aucun pixel de suivi).
  • Quoted-printable : aucune ligne au-delà de la limite de SMTP.

Vérifié : aperçus dans Chrome (clair et sombre) avec les vrais textes ; bash tests/flow.sh (bouton et récapitulatif dans le HTML ; message réel capturé via sendmail_path et relu par le module email de Python : multipart/alternative, deux parties décodables, sujet UTF-8, lignes ≤ 998 octets).

Chaque e-mail part en multipart/alternative : le texte brut de
src/texts.php et un HTML tiré automatiquement (mail_html) : bandeau
OTSPI, récapitulatif en tableau, liens en boutons libellés selon la page
(confirmer, voir la preuve, retirer…) avec l'adresse rappelée dessous,
thème sombre. Styles en ligne, sans image ni ressource externe.
Quoted-printable pour respecter la limite de ligne de SMTP.

Co-authored-by: Claude <noreply@anthropic.com>
@PhilippeVienne
PhilippeVienne merged commit 7857f9c into main Sep 27, 2026
3 checks passed
@PhilippeVienne
PhilippeVienne deleted the feat/mails-html branch September 27, 2026 09:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant