Mail Sender docs Retour à l'application →

Sujet, corps et format

Composer le message : ce que contiennent subject et body, et comment choisir entre texte brut et HTML.

Les trois champs du message

ParamètreObligatoireRôle
subject oui Objet du message. Les accents et emojis sont encodés automatiquement (RFC 2047).
body oui Corps du message, interprété selon format.
format non text (défaut) ou html.

Choisir le format

Le paramètre format détermine le type MIME du corps. Il n'y a que deux valeurs, et elles se comportent différemment :

formatType MIME produitQuand l'utiliser
text
valeur par défaut
text/plain; charset=UTF-8 Notifications, alertes techniques, codes de vérification. Léger, lisible partout, jamais bloqué par un client mail.
html multipart/alternative
(text/plain + text/html)
Confirmations de commande, newsletters, tout message avec mise en forme ou liens cliquables.

Envoi en texte brut

bash
curl -X POST "https://mailer.echange.online/api/send.php" \
  -H "X-API-Key: VOTRE_CLE_API" \
  -d "to=client@example.com" \
  -d "from=support@mondomaine.com" \
  -d "subject=Votre code de connexion" \
  -d "format=text" \
  --data-urlencode "body=Votre code est 481920.

Il expire dans 10 minutes.
L'équipe support"

À savoir

Utilisez --data-urlencode (et non -d) dès que la valeur contient des sauts de ligne, des accents, des & ou des = : cURL encode alors correctement la valeur au lieu de la tronquer.

Envoi en HTML

bash
curl -X POST "https://mailer.echange.online/api/send.php" \
  -H "X-API-Key: VOTRE_CLE_API" \
  -d "to=client@example.com" \
  -d "from=contact@mondomaine.com" \
  -d "subject=Votre commande est confirmée" \
  -d "format=html" \
  --data-urlencode 'body=<h1>Merci !</h1><p>Votre commande <strong>CMD-1042</strong> est confirmée.</p><p><a href="https://mondomaine.com/commandes/1042">Suivre ma commande</a></p>'

En format=html, le message part en multipart/alternative : le client mail affiche la version HTML, et les lecteurs en mode texte (ou les filtres anti-spam) reçoivent une version texte générée automatiquement à partir de votre HTML.

Fournir vous-même la version texte

La conversion automatique reste sommaire. Pour un message soigné, envoyez votre propre version texte avec text_body :

json corps de la requête
{
  "to": "client@example.com",
  "from": "contact@mondomaine.com",
  "subject": "Votre commande est confirmée",
  "format": "html",
  "body": "<h1>Merci !</h1><p>Votre commande <strong>CMD-1042</strong> est confirmée.</p>",
  "text_body": "Merci ! Votre commande CMD-1042 est confirmée."
}

À savoir

Un message HTML sans partie texte est un signal négatif classique pour les filtres anti-spam. Le service en génère toujours une, mais une version rédigée par vos soins est meilleure — et c'est ce que verront les destinataires qui bloquent le HTML.

Compatibilité avec le paramètre html

Les intégrations écrites avant l'ajout de format utilisaient html=1. Ce paramètre reste accepté et équivaut à format=html ; html=0 équivaut à format=text. Si les deux sont fournis, format l'emporte. Pour tout nouveau code, utilisez format.

Écrire un HTML qui s'affiche correctement

Les clients mail ne sont pas des navigateurs. Quelques règles qui évitent la majorité des mauvaises surprises :

  • CSS en ligne (style="…") plutôt qu'une feuille de style : les balises <style> sont souvent supprimées.
  • Mise en page en tableaux pour les structures complexes : flex et grid restent mal supportés.
  • Largeur maximale de 600 px, pour le rendu sur mobile et dans les volets de prévisualisation.
  • Images en URL absolue (https://…) et toujours un attribut alt : beaucoup de clients bloquent les images par défaut.
  • Pas de JavaScript : il est systématiquement supprimé, et sa présence dégrade le score anti-spam.

Objet du message

  • Visez 50 caractères environ : au-delà, l'objet est tronqué sur mobile.
  • Les accents et emojis fonctionnent (l'objet est encodé en UTF-8 base64 si nécessaire).
  • Évitez les majuscules intégrales et les séries de points d'exclamation, pénalisées par les filtres.
  • Un objet qui varie par destinataire ? Utilisez un template avec variables.

Sauts de ligne et encodage

Le corps est transmis tel quel, en UTF-8 : écrivez vos accents directement, sans les échapper. En texte brut, les sauts de ligne de votre chaîne sont conservés. En HTML, ils sont ignorés par le rendu : utilisez <br> ou <p>.