Verdicts et score
Chaque validation renvoie deux valeurs complémentaires : result, le verdict, et score, la confiance de 0 à 100. Le verdict répond à « peut-on écrire à cette adresse ? », le score nuance la réponse.
Les quatre verdicts
| Verdict | Signification |
|---|---|
| valid | L'adresse est délivrable et aucun signal de risque notable n'a été relevé. |
| risky | L'adresse est délivrable, mais risquée. |
| invalid | L'adresse ne recevra pas de courrier. |
| unknown | Le serveur de messagerie n'a pas permis de conclure. |
Comment le verdict est obtenu
Les règles s'appliquent dans cet ordre ; la première qui correspond l'emporte.
| # | Situation | Verdict |
|---|---|---|
| 1 | Syntaxe invalide | invalid |
| 2 | Domaine sans serveur de messagerie (ni MX, ni enregistrement A utilisable, ou MX nul) | invalid |
| 3 | Le serveur SMTP refuse la boîte | invalid |
| 4 | Domaine accept-all : le serveur accepte n'importe quelle adresse | unknown |
| 5 | Adresse sur la liste noire de l'organisation | invalid |
| 6 | SMTP exécuté et conclusif : boîte confirmée | valid |
| 6 bis | SMTP exécuté mais sans conclusion (greylisting, délai dépassé, serveur injoignable) | unknown |
| 7 | SMTP non exécuté (clé sans SMTP) : syntaxe et DNS corrects | valid |
Puis deux règles peuvent dégrader un valid en risky :
- le domaine est jetable, malveillant (hameçonnage, arnaque, liste noire publique) ou piège (typosquat) ;
- le score est inférieur à 70, typiquement quand plusieurs signaux de qualité se cumulent.
valid veut dire « bien formée et domaine joignable »Une clé sans SMTP ne vérifie pas l'existence de la boîte. Un valid signifie alors que l'adresse est correcte et que son domaine reçoit du courrier, pas que la boîte existe. Activez le SMTP sur la clé pour une confirmation.
Le score
Le score part de 100 et est réduit par ce qui fragilise l'adresse :
- Plafonds sur les échecs critiques : syntaxe invalide, domaine mort, boîte refusée font tomber le score très bas.
- Plafonds de prudence : domaine accept-all, domaine en mauvaise santé (configuration DNS et de messagerie faible), domaine joint seulement par son enregistrement A sans SMTP.
- Pénalités qualité, cumulables : jetable, domaine malveillant ou piège, compte générique, terme injurieux, partie locale aléatoire, faute de frappe dans le domaine. Chaque signal supplémentaire abaisse aussi le plafond.
- Confirmation SMTP : une boîte confirmée sans aucun signal de qualité obtient 100 (95 si le serveur annonce un transfert).
- Liste blanche : une adresse en liste blanche a un score d'au moins 95.
Repères de lecture :
| Score | Lecture |
|---|---|
| 90 – 100 | Adresse sûre |
| 70 – 89 | Bonne adresse avec un signal mineur |
| 40 – 69 | Plusieurs signaux de risque, ou serveur peu concluant |
| 0 – 39 | Adresse inutilisable ou très douteuse |
Le barème exact peut évoluer pour suivre la réalité des messageries. Basez vos règles métier sur result, warnings et finalDecision, et utilisez le score pour trier ou nuancer, pas comme un seuil contractuel.
Les verdicts à la loupe
risky : livrable, mais
Une adresse risky recevra le message, mais elle présente un risque pour vous : boîte temporaire qui disparaîtra, domaine qui imite un fournisseur connu pour capter le courrier, domaine signalé comme malveillant. Le champ warnings dit pourquoi :
"warnings": [
{ "code": "DISPOSABLE_EMAIL", "severity": "warning", "message": "Disposable / throwaway email provider" }
]
unknown : pas de conclusion, pas de crédit
unknown n'est pas un échec : le serveur n'a simplement pas permis de trancher. Les causes les plus courantes :
| Cause | features.smtp.reasonCode | Que faire |
|---|---|---|
| Domaine accept-all | ACCEPT_ALL_DOMAIN | L'adresse est souvent bonne mais rien ne le prouve. Acceptez, surveillez les rebonds. |
| Greylisting | GREYLISTED | Le serveur demande de réessayer plus tard. Revalidez quelques minutes après. |
| Délai dépassé, réseau | TIMEOUT, NETWORK_ERROR_ETIMEDOUT | Revalidez plus tard. |
Un verdict unknown n'est jamais facturé, même si le SMTP a été tenté.
invalid : pourquoi
La cause se lit dans la fonctionnalité en échec : features.syntax, features.dns (NO_MX_NO_A, NULL_MX…) ou features.smtp (MAILBOX_NOT_FOUND). Une adresse en liste noire porte features.listCheck.details.isBlacklisted: true.
Verdict technique et décision métier
result est un verdict technique, identique pour tous les clients. Votre décision peut être plus stricte : refuser les adresses génériques sur un formulaire B2C, accepter les accept-all sur une newsletter… Deux outils pour ça :
finalDecision(acceptedourejected) etpolicy.reasonsappliquent la politique rattachée à la clé. Voir Politiques et listes.warningsdécrit tous les signaux relevés, qu'une politique les bloque ou non.