Mailing et suppression du code SVG

Bonjour tout le monde,
J’essaie d’envoyer un email avec du code SVG dedans, mais le code svg est systématiquement supprimé. Est-ce possible de modifier de comportement de Dolibarr pour ne pas supprimer le code svg ?

Cordialement.

Debian 13, Dolibarr 23.0.3, php 8.4.16

Bonjour @Djan,

Le SVG est effectivement strippé à deux niveaux :

Côté client — CKEditor filtre dès la saisie. Contournable via la constante FCKEDITOR_ALLOW_ANY_CONTENT

Côté serveur — dans htdocs/comm/mailing/card.php :

php

$object->body = (string) GETPOST("bodyemail", 'restricthtml');

Ce filtre passe par une whitelist de tags HTML autorisés qui n’inclut pas les tags SVG (rect, circle, path…). Pas de contournement propre sans patcher htdocs/core/lib/functions.lib.php.

Tout patch sur ces fichiers sera écrasé à la prochaine mise à jour.

A Noter: même en réglant les deux points, le SVG inline sera très probablement ignoré ou strippé par les clients mail des destinataires (Gmail, Outlook, Yahoo). Si l’objectif est d’intégrer un logo vectoriel, <img src="fichier.svg"> hébergé est la solution universelle.

Effectivement mais ce fichier sera bloqué par la plupart des clients email car vu comme un fichier externe, et si je modifie le code de Dolibarr ça saute à chaque mise à jour.
Merci pour les pistes, je vais donc me passer de logo dans mes emails.

Pour un logo ( en signature de mail certainement ?), la solution propre et universelle c’est image embarquée en base64 dans un <img> du genre:

<img src="data:image/png;base64,iVBORw0KGgo..." alt="Logo" width="200">

Et en fait si tu as ton logo en SVG tu n’as qu’à le convertir en PNG et l’astuce c’est ensuite de le glisser déposer sur la zone de l’email souhaité. CKeditor l’encodera en base64 à la volée.

2 « J'aime »

Ah merci je n’avais pas du tout pensé à cela !

1 « J'aime »

En faisant cela on risque d’avoir le problème suivant déjà évoqué


Pour préciser : CMailFile.class.php convertit nativement les src="data:image/...;base64,..." en pièce jointe MIME CID à l’envoi (activé par défaut via MAIN_MAIL_ADD_INLINE_IMAGES_IF_DATA). Le drag & drop PNG dans CKEditor est donc parfaitement propre.
Et à moins qu’il y ait un paramétrage très spécifique. .