API REST · v1

API e-mail et webhooks

Outre le SMTP, 2mail dispose d'une API REST : vous envoyez un message par un seul appel HTTPS, vous en consultez ensuite le statut, et vous laissez chaque événement — remis, rejeté, ouvert — être poussé automatiquement vers votre propre système par webhook.

Cette page décrit ce que fait l'API et comment fonctionne l'accès. La référence complète, avec tous les champs et des exemples d'appels, se trouve dans l'espace client, derrière votre login.

Ce que vous construisez avec

1

Envoyer depuis votre application

Un seul POST avec expéditeur, destinataire, objet et contenu. Vous pouvez aussi planifier un message et décider message par message si les ouvertures sont mesurées. La réponse contient immédiatement un identifiant pour retrouver le message plus tard.

2

Consulter le statut d'un message

Avec cet identifiant, vous savez si le message est en file d'attente, envoyé ou en échec — motif compris en cas d'erreur. Plus besoin de fouiller les journaux quand un client appelle au sujet d'un e-mail précis.

3

Recevoir les événements automatiquement

Enregistrez une URL et 2mail y pousse chaque événement dès qu'il se produit : remis, différé, rejeté, refusé, ouvert ou en échec. Pas d'interrogation périodique, pas de file d'attente à vider vous-même.

4

Une clé par application

Chaque application reçoit sa propre clé, révocable séparément. Une clé d'envoi peut uniquement envoyer et consulter le statut de ses propres messages — rien d'autre, pas même les autres données de votre compte.

Envoyer un message

L'appel est volontairement minimal : une clé dans l'en-tête Authorization et un corps JSON. L'adresse d'expéditeur doit appartenir à l'un de vos propres domaines.

Requête
POST https://www.2mail.eu/2mail/api/v1/messages Authorization: Bearer 2m_live_UW_SLEUTEL Content-Type: application/json { "from": "no-reply@uwdomein.be", "to": "klant@voorbeeld.be", "subject": "Uw bestelling is verzonden", "html": "<p>Bedankt voor uw bestelling.</p>" }
Réponse
202 Accepted { "id": "4f3c…", "status": "queued" }

Vous recevez un 202 avec un identifiant. Cela signifie accepté, pas remis — la remise elle-même se suit par une requête de statut ou, mieux, par un webhook.

Webhooks : suivre la remise sans rien demander

Un webhook est une URL qui vous appartient et que nous appelons dès qu'il se passe quelque chose avec votre message. C'est plus précis que d'interroger périodiquement le statut, et vous constatez un rejet en moins d'une minute au lieu du tour suivant.

Requête
POST https://uwdomein.be/webhooks/2mail X-2mail-Event: bounced X-2mail-Signature: t=1755417600,v1=<hmac-sha256> { "event": "bounced", "timestamp": "2026-08-17T10:04:11+02:00", "recipient": "klant@voorbeeld.be", "message_id": "<…>", "detail": "550 5.1.1 unknown", "code": "5.1.1" }
Vérifier la signature (PHP)
// $secret: eenmalig getoond bij aanmaak $body = file_get_contents('php://input'); parse_str(strtr($_SERVER['HTTP_X_2MAIL_SIGNATURE'], ',', '&'), $p); $ok = hash_equals( hash_hmac('sha256', $p['t'] . '.' . $body, $secret), $p['v1'] );

Chaque appel est signé

Nous joignons une signature dans l'en-tête X-2mail-Signature, calculée en HMAC-SHA256 sur l'horodatage et le corps brut, avec une clé connue de vous seul et de nous. Vérifiez cette signature avant de faire confiance au contenu : sans vérification, quiconque connaît votre URL peut inventer des événements.

Les appels échoués sont réessayés

Si votre point de terminaison ne répond pas par un 2xx, nous réessayons à intervalles croissants — après une minute, cinq minutes, une demi-heure, deux heures et six heures. Le portail affiche, pour chaque tentative, le code de réponse et le message d'erreur, de quoi diagnostiquer un endpoint défaillant sans nous contacter.

Quels événements

Remis, différé, rejeté, refusé, ouvert, accepté et en échec. Vous choisissez par webhook les types à recevoir, ou laissez vide pour tout recevoir.

delivered deferred bounced rejected opened accepted failed

Clés et accès

Une clé d'API est affichée une seule fois, puis conservée uniquement sous forme de hachage. Si vous la perdez, vous la révoquez et en créez une nouvelle — nous ne pouvons pas la réafficher.

Clé d'envoi

Rattachée à une seule boîte et autorisée à exactement deux choses : envoyer un message et consulter le statut de ses propres messages. Tout autre point de terminaison répond 403. C'est la clé que vous placez dans une boutique en ligne ou une application.

Clé d'administration

Pour qui veut créer boîtes, domaines et utilisateurs SMTP par programme — par exemple un partenaire qui déploie ses propres clients. Cette clé se crée dans le portail, pas via l'API.

Vous créez et gérez vos clés d'envoi vous-même dans l'espace client, sous Paramètres. Vous y voyez aussi la dernière utilisation de chaque clé.

La documentation complète

Chaque point de terminaison, chaque champ et chaque code d'erreur figure dans la référence interactive. Vous pouvez aussi y essayer directement : cliquez sur Authorize, collez votre clé et lancez un vrai appel.

Attention : Try it out effectue un appel réel sur votre propre compte. Utilisez une boîte de test tant que vous expérimentez.

La spécification est publique et importable dans Postman ou Insomnia, ou utilisable pour générer un client. La référence interactive demande un login.

Se lancer

L'API est incluse dans chaque formule 2mail ; il n'y a ni licence ni module distinct. Une question sur une intégration, ou envie de savoir si votre scénario tient la route ? Dites-le-nous — nous réfléchissons volontiers avec vous avant que vous ne commenciez à construire.

Voir les tarifs À propos du relais SMTP Poser une question

Questions fréquentes sur l'API

Oui. Outre le SMTP, il existe une API REST : vous envoyez un message par un seul appel HTTPS vers /api/v1/messages, avec expéditeur, destinataire, objet et contenu en JSON. Vous recevez immédiatement un identifiant pour retrouver le message plus tard.
Fonctionnellement aucune : les deux passent par le même relais, avec la même authentification et les mêmes statistiques. Le SMTP convient quand votre application ou votre framework dispose déjà d'une configuration de messagerie ; l'API convient si vous préférez HTTP et JSON, ou si vous voulez fixer par message un moment d'envoi ou un réglage de suivi.
Un webhook est une URL qui vous appartient et que nous appelons dès qu'il se passe quelque chose avec votre message — remis, rejeté, ouvert. Vous n'avez donc pas à interroger périodiquement le statut et vous constatez un rejet en moins d'une minute. L'URL s'enregistre dans l'espace client ou via l'API.
Chaque appel porte une signature dans l'en-tête X-2mail-Signature, calculée en HMAC-SHA256 sur l'horodatage et le corps brut, avec une clé connue de vous seul et de nous. Vérifiez cette signature avant de faire confiance au contenu — sans vérification, quiconque connaît votre URL peut inventer des événements.
Nous réessayons à intervalles croissants : après une minute, cinq minutes, une demi-heure, deux heures et six heures. Si cela échoue encore, la remise est marquée en échec. Le portail affiche pour chaque tentative le code de réponse et le message d'erreur.
Oui, et c'est la clé recommandée pour une application. Une clé d'envoi est rattachée à une seule boîte et peut faire exactement deux choses : envoyer un message et consulter le statut de ses propres messages. Tout autre point de terminaison répond 403, y compris pour les données de votre propre compte.
Vous en créez une nouvelle et révoquez l'ancienne. La clé n'est affichée qu'une fois puis conservée uniquement sous forme de hachage : nous ne pouvons donc pas la réafficher. Donnez pour cette raison une clé propre à chaque application — révoquer n'affecte alors jamais plus d'une intégration.
Trust Guard Security Scanned
Appelez-nous
Envoyer un e-mail