Événements Email
Les événements suivent chaque email de la soumission à l'engagement. Livrés via webhooks ou Pub/Sub en temps réel.
Configuration
Pour recevoir des événements, configurez un abonné dans le portail sous la section Abonnés aux événements de l'organisation que vous souhaitez suivre. Chaque organisation peut avoir ses propres abonnés avec des endpoints et identifiants indépendants.
Vous pouvez aussi configurer un abonné par défaut au niveau du compte (dans les Paramètres du compte). Les nouvelles organisations créées sous ce compte hériteront automatiquement de cette configuration.
Enveloppe
{
"topic": "email.events",
"eventTime": "2026-03-24T10:45:30Z",
"payload": {
"event_id": "9b1c3f2a-7e4d-4a11-8c2b-2a6f5e1d0c33",
"recipient": "user@example.com",
"event_type": "delivered",
"event_time": "2026-03-24T10:45:30Z",
"custom_id": "order-1234"
}
} Champs du payload
| Champ | Type | Description |
|---|---|---|
event_id | string (UUID) | Identifiant unique de l'événement. Sert à dédupliquer les renvois de webhook et à rapprocher les événements |
recipient | string | Adresse email du destinataire |
event_type | string | Type d'événement (voir ci-dessous) |
event_time | ISO 8601 | Moment de l'événement |
custom_id | string? | Votre identifiant, transmis à l'envoi |
recipient_status | string? | Ce que l'événement signifie pour l'adresse elle-même (voir ci-dessous) |
metadata | object? | Détails de l'événement |
Metadata
| Champ | Type | Présent sur |
|---|---|---|
reason | string | rejected, dropped, deferred |
smtp_code | integer | rejected, deferred, dropped |
smtp_message | string | rejected, deferred, dropped |
user_agent | string | opened, clicked |
url | string | clicked |
ip | string | opened, clicked |
Statut du destinataire
Quand recipient_status est présent, l'événement dit quelque chose sur l'adresse elle-même et vous devez probablement agir sur votre liste.
| Valeur | Signification | Que faire |
|---|---|---|
undeliverable | L'adresse est morte, ou a échoué assez souvent pour que nous cessions de lui envoyer | Retirez-la de votre liste |
at_risk | La livraison a échoué pour une raison qui se résout généralement, comme une boîte pleine ou inactive | Espacez les envois, gardez l'adresse |
complained | Le destinataire a signalé votre email comme spam | Retirez-la et ne la réajoutez jamais |
unsubscribed | Le destinataire s'est désabonné de vos emails | Retirez-la, sauf s'il se réinscrit |
Types d'événements
Cliquez sur un type d'événement pour voir sa description, ses champs metadata et un exemple JSON.
delivered Accepté par le serveur destinataire
Metadata : Aucune
Pas de champ reason.
{
"event_id": "01990a3b-1a01-7c11-9e00-4a1b2c3d0001",
"recipient": "user@example.com",
"event_type": "delivered",
"event_time": "2026-03-24T10:45:30Z",
"custom_id": "order-1234"
} deferred Problème temporaire, l'envoi sera réessayé
Metadata : reason, smtp_code, smtp_message
| raison | signification |
|---|---|
greylisted | Le serveur destinataire nous a demandé de réessayer bientôt |
server_busy | Le serveur destinataire était temporairement surchargé |
ip_blocked | L'IP d'envoi a été temporairement bloquée par le destinataire |
connection_issue | Impossible de joindre le serveur destinataire (timeout, reset, refus) |
{
"event_id": "01990a3b-1a02-7c11-9e00-4a1b2c3d0002",
"recipient": "user@example.com",
"event_type": "deferred",
"event_time": "2026-03-24T10:45:30Z",
"custom_id": "order-1234",
"metadata": {
"reason": "greylisted",
"smtp_code": 421,
"smtp_message": "4.7.0 Try again later"
}
} dropped Arrêté avant la livraison
Metadata : reason, smtp_code, smtp_message
| raison | signification |
|---|---|
domain_invalid | Le domaine du destinataire n'est pas un domaine mail valide |
domain_no_mx | Le domaine du destinataire n'a pas d'enregistrement MX, il ne peut donc pas recevoir de mail |
domain_typo | Le domaine du destinataire ressemble à une faute de frappe (ex. gmial.com) |
domain_disposable | Le destinataire utilise un domaine email jetable |
recipient_blocked_permanently | Destinataire supprimé : rebond permanent, ou échecs répétés sans récupération possible |
recipient_blocked_temporarily | Destinataire en période d'attente après des échecs récents, réessayé plus tard |
recipient_unsubscribed | Le destinataire s'est désabonné de vos emails |
recipient_complained | Le destinataire a déjà signalé vos emails comme spam, plus rien ne lui est envoyé |
tenant_domain_spf_not_verified | Votre domaine d'envoi n'a pas de SPF vérifié |
tenant_domain_dkim_not_verified | Votre domaine d'envoi n'a pas de DKIM vérifié |
tenant_domain_not_found | Ce domaine d'envoi n'est pas enregistré pour votre organisation |
abandoned | Abandonné après épuisement des tentatives de livraison |
virus_detected | Une pièce jointe contenait un logiciel malveillant et a été bloquée avant l'envoi |
attachment_too_large | Une pièce jointe est trop volumineuse pour être traitée, l'email ne peut donc pas être envoyé |
{
"event_id": "01990a3b-1a05-7c11-9e00-4a1b2c3d0005",
"recipient": "user@gmial.com",
"event_type": "dropped",
"event_time": "2026-03-24T10:45:29Z",
"custom_id": "reset-pwd-99",
"recipient_status": "undeliverable",
"metadata": {
"reason": "domain_typo"
}
} rejected Le serveur destinataire a refusé le message
Metadata : reason, smtp_code, smtp_message
| raison | signification |
|---|---|
recipient_unknown | L'adresse du destinataire n'existe pas |
recipient_mailbox_full | La boîte du destinataire est pleine |
recipient_inactive | La boîte du destinataire est inactive |
recipient_temporary_failure | Échec temporaire côté destinataire, adresse toujours valide |
spam_detected | Le serveur destinataire a rejeté le message comme spam |
policy_violation | Le serveur destinataire l'a rejeté pour une raison de politique |
relay_access_denied | Le serveur destinataire a refusé de relayer le message |
virus_detected | Le serveur destinataire a rejeté le message pour un logiciel malveillant dans une pièce jointe |
{
"event_id": "01990a3b-1a09-7c11-9e00-4a1b2c3d0009",
"recipient": "unknown@example.com",
"event_type": "rejected",
"event_time": "2026-03-24T10:45:31Z",
"custom_id": "welcome-42",
"recipient_status": "undeliverable",
"metadata": {
"reason": "recipient_unknown",
"smtp_code": 550,
"smtp_message": "5.1.1 User unknown"
}
} opened Le destinataire a ouvert l'email
Metadata : user_agent, ip
Pas de champ reason.
{
"event_id": "01990a3b-1a06-7c11-9e00-4a1b2c3d0006",
"recipient": "user@example.com",
"event_type": "opened",
"event_time": "2026-03-24T11:00:05Z",
"custom_id": "order-1234",
"metadata": {
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)",
"ip": "203.0.113.42"
}
} clicked Le destinataire a cliqué sur un lien
Metadata : url, user_agent, ip
Pas de champ reason.
{
"event_id": "01990a3b-1a07-7c11-9e00-4a1b2c3d0007",
"recipient": "user@example.com",
"event_type": "clicked",
"event_time": "2026-03-24T11:02:15Z",
"custom_id": "order-1234",
"metadata": {
"url": "https://yourdomain.com/orders/1234",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)",
"ip": "203.0.113.42"
}
} unsubscribed Désabonnement one-click
Metadata : Aucune
Pas de champ reason.
{
"event_id": "01990a3b-1a08-7c11-9e00-4a1b2c3d0008",
"recipient": "user@example.com",
"event_type": "unsubscribed",
"event_time": "2026-03-24T11:05:00Z",
"custom_id": "order-1234",
"recipient_status": "unsubscribed"
} spam_reported Le destinataire a signalé votre email comme spam
Metadata : Aucune
Pas de champ reason.
{
"event_id": "01990a3b-1a0a-7c11-9e00-4a1b2c3d000a",
"recipient": "user@example.com",
"event_type": "spam_reported",
"event_time": "2026-03-24T12:30:00Z",
"custom_id": "order-1234",
"recipient_status": "complained"
} Suivi d'engagement (opened, clicked)
Le suivi des ouvertures et des clics doit être activé dans le portail (paramètres de l'organisation) pour recevoir les événements opened et clicked. Une fois activé, les liens dans vos emails sont réécrits pour passer par le serveur de redirection Mailverick (https://links.mailverick.com). Pour afficher votre propre domaine (ex. links.votredomaine.com), configurez un enregistrement CNAME de tracking pour votre domaine d'envoi dans la section domaines du portail.
À propos de virus_detected : prenez cette raison très au sérieux. Elle signifie qu'un malware a été détecté dans une pièce jointe. Sur un événement dropped, notre scanner l'a détecté avant que l'email ne quitte notre plateforme ; sur un événement rejected, c'est le serveur destinataire qui l'a refusé. Enquêtez immédiatement : le système ou l'intégration qui produit ces emails est peut-être compromis. Des détections répétées déclenchent nos mesures anti-abus et peuvent mener à la suspension de votre organisation ou de votre compte.
Pour la vérification des signatures webhook, voir Sécurité webhook.