Envoyer un email par API REST avec votre boîte SMTP
Mis à jour le
Un envoi est un POST /v1/messages authentifié avec une clé API. Le seul champ obligatoire est mailbox_id : c’est la boîte qui envoie.
curl https://smapiz.com/v1/messages \
-H "Authorization: Bearer smz_live_..." \
-H "Content-Type: application/json" \
-d '{
"mailbox_id": "mbx_...",
"to": "Ada <[email protected]>",
"cc": ["[email protected]"],
"subject": "Votre commande",
"html": "<p>Votre commande est expédiée.</p>",
"text": "Votre commande est expédiée."
}'La réponse contient le message avec son id (msg_…) et son statut. L’envoi SMTP se fait ensuite en arrière-plan, avec de nouvelles tentatives en cas d’échec temporaire.
Les champs utiles
to,cc,bcc,reply_to: une adresse,"Nom <adresse>", ou une liste.htmlet/outext: le contenu, ou untemplate_id(voir les templates).from_name: remplace le nom d’expéditeur de la boîte pour cet envoi.headers: en-têtes personnalisés.tagsetmetadata: vos propres valeurs, renvoyées dans les webhooks (pratique pour retrouver une commande ou un client).
Pièces jointes
Le contenu est encodé en base64. Ajoutez content_id pour afficher une image dans le HTML avec cid:.
"attachments": [
{ "filename": "facture.pdf", "content": "JVBERi0xLjQK..." },
{ "filename": "logo.png", "content": "iVBORw0KGgo...", "content_id": "logo" }
],
"html": "<img src=\"cid:logo\"> <p>Votre facture est jointe.</p>"Éviter les doublons
Envoyez un en-tête Idempotency-Key (par exemple l’identifiant de la commande). Si la requête est rejouée avec la même clé, l’email n’est pas renvoyé une seconde fois.
-H "Idempotency-Key: commande-1042"
Programmer un envoi
Ajoutez send_at au format ISO 8601, jusqu’à 30 jours à l’avance. Pour annuler avant l’heure : POST /v1/messages/{id}/cancel, ou le bouton Annuler l’envoi programmé dans Messages.
"send_at": "2026-11-02T09:00:00+01:00"
Suivre le résultat
L’onglet Messages montre chaque envoi, son statut et la réponse du serveur SMTP. Côté code, abonnez un webhook à message.sent, message.failed et message.bounced (adresse inexistante, boîte pleine…).
On peut aussi envoyer à la main depuis Messages > Nouveau message, utile pour tester une boîte.