RFC 3463 : Codes d'état améliorés du système de messagerie
ELI5: Le SMTP basique vous donne un code de réponse à trois chiffres comme « 550 » qui signifie « quelque chose a échoué ». Mais pourquoi a-t-il échoué ? Mauvaise adresse ? Boîte aux lettres pleine ? Serveur surchargé ? Les codes d'état améliorés ajoutent un code plus spécifique à trois parties comme `5.1.1` (mauvaise boîte aux lettres de destination) pour que votre logiciel puisse faire la différence et prendre la bonne mesure.
Pourquoi cela existe
Les codes de réponse SMTP (RFC 5321) utilisent des nombres à trois chiffres : 250 signifie succès, 550 signifie échec permanent, 421 signifie problème temporaire. Mais ces codes sont trop généraux pour un traitement automatisé. Un « 550 » pourrait signifier :
- La boîte aux lettres n'existe pas
- Le domaine n'existe pas
- L'expéditeur est bloqué par politique
- Le contenu du message a été rejeté
Chacune de ces situations nécessite une réponse différente de la part de l'expéditeur. Les codes d'état améliorés résolvent ce problème en ajoutant un code structuré class.subject.detail qui identifie précisément le problème. Ces codes apparaissent dans les réponses SMTP (via l'extension ENHANCEDSTATUSCODES) et dans les rapports DSN (RFC 3464) dans le champ Status.
Comment ça fonctionne
Les codes d'état améliorés suivent le format X.Y.Z où chaque composant a une signification définie :
Structure du code
| Composant | Nom | Signification |
|---|---|---|
X |
Classe | Succès (2), échec temporaire (4), ou échec permanent (5) |
Y |
Sujet | Catégorie du problème (adresse, boîte aux lettres, système de messagerie, réseau, protocole, contenu, sécurité) |
Z |
Détail | Condition spécifique au sein de la catégorie |
Exemple de réponse SMTP
RCPT TO:<user@example.org> 550 5.1.1 The email account that you tried to reach does not exist ^^^^^ | | | +-- detail 1 = bad destination mailbox address +------ subject 1 = addressing status class 5 = permanent failure
Dans un rapport DSN
Final-Recipient: rfc822;user@example.org Action: failed Status: 5.1.1 Diagnostic-Code: smtp; 550 5.1.1 User unknown
Détails techniques clés
Valeurs de classe
| Classe | Signification | Action de l'expéditeur |
|---|---|---|
2.X.X |
Succès | Le message a été accepté ou livré. Aucune action requise. |
4.X.X |
Échec transitoire persistant | Réessayer plus tard. La condition peut se résoudre d'elle-même. |
5.X.X |
Échec permanent | Arrêter les tentatives. Le message ne sera jamais livré à cette adresse telle quelle. |
Valeurs de sujet
| Sujet | Catégorie | Exemples |
|---|---|---|
X.0.X |
Autre / Non défini | Non classé autrement |
X.1.X |
Adressage | Mauvaise boîte aux lettres, mauvais domaine, mauvais expéditeur |
X.2.X |
Boîte aux lettres | Boîte aux lettres pleine, désactivée, n'acceptant pas les messages |
X.3.X |
Système de messagerie | Système de messagerie plein, n'acceptant pas les messages, incapable de fonctionnalités sélectionnées |
X.4.X |
Réseau et routage | Pas de réponse de l'hôte, mauvaise connexion, erreur de routage |
X.5.X |
Protocole de livraison de courrier | Commande invalide, erreur de syntaxe du protocole |
X.6.X |
Contenu du message | Média non pris en charge, conversion échouée |
X.7.X |
Sécurité / Politique | Authentification requise, expéditeur bloqué, chiffrement nécessaire |
Codes les plus courants pour les expéditeurs de courrier
| Code | Signification | Action |
|---|---|---|
5.1.1 |
Mauvaise adresse de boîte aux lettres de destination | Supprimer de la liste (rebond définitif) |
5.1.2 |
Mauvaise adresse système de destination (domaine) | Supprimer de la liste |
5.2.1 |
Boîte aux lettres désactivée, n'acceptant pas les messages | Supprimer de la liste |
4.2.2 |
Boîte aux lettres pleine | Réessayer plus tard ; supprimer après des échecs répétés |
5.7.1 |
Livraison non autorisée, message refusé | Vérifier l'authentification et la réputation de l'expéditeur |
4.7.1 |
Échec temporaire de l'authentification | Réessayer ; vérifier les enregistrements SPF/DKIM/DMARC |
5.7.26 |
Violation de politique DMARC | Corriger l'alignement DMARC (SPF ou DKIM doit réussir avec le domaine aligné) |
5.7.27 |
L'adresse de l'expéditeur a un MX nul | Ajouter un enregistrement MX ou A valide pour votre domaine d'envoi |
4.4.1 |
Délai d'expiration de la connexion | Réessayer ; vérifier la connectivité DNS et réseau |
5.3.4 |
Message trop volumineux pour le système | Réduire la taille du message ou des pièces jointes |
Erreurs courantes
-
Vérifier uniquement le code de réponse SMTP, ignorer le code amélioré. Un « 550 » vous indique que c'est permanent, mais
5.1.1(utilisateur inconnu) et5.7.1(blocage par politique) nécessitent des réponses très différentes. Analysez toujours le code amélioré. -
Traiter tous les codes 5.X.X comme « supprimer de la liste ». Le code
5.7.1signifie souvent un blocage politique temporaire (filtrage de spam, limitation de débit), pas une adresse invalide. Supprimer aveuglément les adresses à chaque échec permanent cause une réduction inutile de la liste. -
Ignorer le chiffre de classe. Le premier chiffre est le plus important.
4.2.2(boîte aux lettres pleine, transitoire) et5.2.2(boîte aux lettres pleine, permanent) nécessitent un traitement différent. Certains fournisseurs utilisent 4.X.X pour les problèmes de quota qui se résolvent, et 5.X.X uniquement après une plénitude prolongée. - Coder en dur des codes spécifiques. Le registre des codes d'état améliorés (RFC 5248) est extensible. De nouveaux codes sont ajoutés au fil du temps. Analysez la classe et le sujet pour les décisions de routage, et consignez le code complet pour les diagnostics.
-
Confondre les codes de réponse SMTP et les codes d'état améliorés. Le code SMTP à trois chiffres (550) et le code amélioré (5.1.1) sont séparés. Le code amélioré apparaît après le code SMTP dans la ligne de réponse, ou dans le champ
Statusd'un DSN.
Impact sur la délivrabilité
- Précision de la classification des rebonds. Les codes d'état améliorés sont l'entrée principale du traitement automatisé des rebonds. Une classification correcte des rebonds définitifs (supprimer) par rapport aux rebonds souples (réessayer) par rapport aux blocages politiques (investiguer) affecte directement votre réputation d'expéditeur et la qualité de votre liste.
-
Logique de réessai consciente de la réputation. Une réponse
4.7.1(échec d'authentification temporaire) doit déclencher une vérification de vos enregistrements SPF/DKIM/DMARC, pas juste un simple réessai. Un4.2.2(boîte aux lettres pleine) est un problème entièrement différent. -
Diagnostics et débogage. Lorsque la délivrabilité chute, les codes d'état améliorés dans vos journaux de rebonds vous indiquent exactement ce qui se passe. Une augmentation des réponses
5.7.1suggère un problème de réputation ; une augmentation des5.1.1suggère des données de liste incorrectes. -
Comportement spécifique au fournisseur. Gmail, Microsoft et Yahoo utilisent tous des codes d'état améliorés, mais peuvent assigner des codes légèrement différents à la même condition. Utilisez les codes comme guide et corrélation avec le texte
Diagnostic-Codepour un contexte complet.