Skip to content
Commencez avec 100 crédits de vérification gratuits
Qualisend
Tous les articles
Ingénierie / 18 février 2026

Les codes de réponse SMTP expliqués aux expéditeurs d'e-mails

8 minutes read

Qualisend team
Codes de réponse SMTP regroupés en trois classes : 2xx acceptés, 4xx à réessayer et 5xx rejetés

La réponse en bref#

Chaque fois qu'un serveur de messagerie dialogue avec un autre, il répond à chaque commande par un code à trois chiffres. Le premier chiffre indique la catégorie — 2xx succès, 4xx échec temporaire, 5xx échec permanent — et ce premier chiffre résume à lui seul presque tout l'enjeu de la délivrabilité. Un vérificateur d'e-mails lit ces mêmes codes pendant sa sonde, sans jamais envoyer de message, pour déterminer si une boîte aux lettres est délivrable, non délivrable ou indéterminable. Voici le guide de terrain des codes que vous rencontrerez réellement, et du verdict que chacun produit.

Comment lire un code de réponse#

Les codes SMTP obéissent à une grammaire cohérente. Le premier chiffre indique la classe du résultat :

  • 2xx — succès. La commande a fonctionné. 250 (« action demandée effectuée ») est celui que vous voulez voir.
  • 4xx — échec transitoire. Quelque chose s'est mal passé, mais cela pourrait fonctionner si vous réessayez plus tard. Il s'agit d'un report, pas d'un rejet.
  • 5xx — échec permanent. Le serveur refuse, et réessayer n'y changera rien.

De nombreux serveurs envoient aussi un code de statut étendu — un second nombre pointé comme 5.1.1 — défini par la RFC 3463. Son chiffre du milieu précise la raison : x.1.x concerne l'adresse, x.2.x la boîte aux lettres, x.7.x la sécurité ou les règles internes. Cette classe x.7.x est ce qui permet à un vérificateur de distinguer un blocage de réputation (« c'est vous que nous refusons ») d'une simple boîte aux lettres inexistante, même lorsque le texte lisible par un humain reste vague.

Pour la vérification, la correspondance est d'une simplicité rafraîchissante :

Réponse au RCPT TOSignificationVerdict Qualisend
250 / 251Destinataire acceptédeliverable / accepted_email
4xxReport temporaire (greylisting, limitation de débit)réessayer, puis unknown / timeout
452 / 552Boîte aux lettres pleine (quota dépassé)risky / low_deliverability
classe 550Rejet permanent, aucun utilisateur de ce nomundeliverable / rejected_email
Délai dépassé / aucune réponseLe serveur n'a jamais répondu de façon concluanteunknown / unavailable_smtp

Les codes que vous verrez réellement#

250 — OK#

Le destinataire a été accepté. Dans une sonde de vérification, c'est le signal positif le plus fort — mais lisez-le dans son contexte : sur un domaine catch-all, le serveur renvoie 250 pour chaque adresse, réelle ou non, de sorte qu'un 250 n'y a de sens que si une sonde parallèle d'une adresse fantaisiste est rejetée.

421 — Service non disponible#

Le serveur ferme la connexion, souvent parce qu'il est surchargé ou qu'il vous limite. De classe transitoire — un vérificateur le traite comme un report et réessaie, puis signale unknown s'il persiste.

450 / 451 — Boîte aux lettres indisponible / erreur locale, réessayez#

Les réponses classiques du greylisting. Le serveur refuse temporairement un expéditeur qu'il ne connaît pas et invite à réessayer. Un vrai serveur de messagerie réessaie automatiquement ; un vérificateur réessaie dans les limites de son budget temps et se rabat sur unknown si le report se prolonge au-delà. Le 451 s'accompagne souvent du texte « greylisted, please try again later ».

452 — Stockage système insuffisant / trop de destinataires#

Signifie souvent que la boîte aux lettres est pleine. La boîte aux lettres existe — c'est pourquoi Qualisend traite un signal de boîte pleine comme risky (low_deliverability) plutôt que non délivrable : le courrier peut rebondir maintenant, mais l'adresse n'est pas morte, et les boîtes pleines se libèrent fréquemment.

550 — Boîte aux lettres indisponible / utilisateur inconnu#

Le rejet de référence. L'adresse n'existe pas, ou le serveur refuse la livraison de façon permanente. Verdict : undeliverable / rejected_email. Si le code étendu est 5.1.1, il s'agit précisément d'une « boîte aux lettres de destination invalide » — un « aucun utilisateur de ce nom » net et sans ambiguïté.

551 / 553 — Utilisateur non local / nom de boîte aux lettres non autorisé#

Des rejets permanents moins courants — le serveur refuse de relayer pour ce destinataire, ou la forme de l'adresse est inacceptable. Les deux sont undeliverable.

554 — Transaction échouée#

Un échec permanent fourre-tout, fréquemment utilisé pour les blocages liés aux règles internes : « transaction failed », « message refused » ou un rejet anti-spam. Associé à un code étendu 5.7.x ou à des mots-clés de liste de blocage, il signale que le serveur refuse votre expéditeur, sans juger la boîte aux lettres — une distinction qu'un bon vérificateur consigne à part, afin qu'un problème de réputation ne soit pas confondu avec une adresse morte.

Le reste de la conversation#

La réponse au RCPT TO porte le verdict, mais une sonde de vérification lit plusieurs autres codes en chemin, et savoir les reconnaître aide lorsque vous scrutez un journal SMTP brut ou un message de rebond :

  • 220 — service prêt. Le message d'accueil que le serveur envoie lorsque vous vous connectez. Pas de 220 signifie que vous n'avez jamais passé la porte — souvent un blocage au niveau de la connexion, qu'un vérificateur consigne comme unavailable_smtp.
  • 250 après HELO/EHLO et MAIL FROM. Chaque étape de la poignée de main reçoit son propre 250. Un rejet avant le RCPT TO — au MAIL FROM, par exemple — signifie généralement que le serveur refuse votre expéditeur, sans juger le destinataire.
  • 354 — début de saisie du message. Le serveur vous invite à envoyer le corps du message. Un vérificateur n'arrive jamais ici volontairement : il s'arrête au RCPT et se déconnecte, de sorte que le message n'est jamais transmis.
  • 221 — fermeture de la connexion. Le poli au revoir après le QUIT.
  • 501/502/503 — erreurs de syntaxe ou de séquence. Les commandes sont arrivées mal formées ou dans le désordre. Elles portent sur la conversation, pas sur l'adresse, et un vérificateur robuste les gère sans les prendre à tort pour un verdict sur la boîte aux lettres.

Le point pratique : tout code différent de 250 n'est pas une boîte aux lettres morte. Un rejet à la mauvaise étape de la conversation concerne généralement votre expéditeur ou la connexion, et lire quelle étape a échoué est la façon dont un vérificateur évite de blâmer le destinataire pour l'humeur du serveur.

Permanent, transitoire, et l'honnête « inconnu »#

La décision la plus lourde de conséquences que prend un vérificateur est la manière dont il traite le 4xx. Un 5xx permanent est simple : l'adresse est mauvaise, supprimez-la. Un 250 est simple : elle est délivrable (réserves sur le catch-all mises à part). Mais un 4xx est le serveur qui refuse explicitement de répondre pour l'instant — et la réponse honnête est de réessayer, puis de signaler unknown si le report persiste, jamais de deviner.

C'est aussi pourquoi une même adresse peut renvoyer des verdicts différents d'une exécution à l'autre sans qu'aucun outil ne mente : la boîte aux lettres est déterministe, mais le code qu'elle produit dépend de l'humeur du serveur — greylisting à la première tentative, 250 au réessai. Les codes sont une conversation en direct, pas une consultation de base de données.

Où la vérification lit ces codes#

Dans le pipeline de vérification, les codes de réponse sont la matière première de l'étape 6, la sonde SMTP de la boîte aux lettres. Le vérificateur déroule la conversation de livraison — HELO, MAIL FROM, RCPT TO — lit le code du RCPT, et se déconnecte avant le DATA, de sorte que le titulaire de la boîte aux lettres ne reçoit jamais rien. Tout ce qui précède explique comment ce seul code du RCPT devient un statut sur lequel vous pouvez agir.

Foire aux questions#

Quelle est la différence entre un rebond 4xx et un rebond 5xx ?#

Le 4xx est temporaire — le serveur diffère et une nouvelle tentative peut aboutir, si bien que l'infrastructure d'envoi continue d'essayer pendant un certain temps (un « soft bounce »). Le 5xx est permanent — le serveur refuse catégoriquement, si bien que le message est un « hard bounce » et que les tentatives ultérieures échoueront de la même façon. Pour l'hygiène de votre liste, les adresses 5xx devraient être supprimées ; les adresses 4xx devraient être réessayées ou marquées comme inconnues — construire un classificateur de rebonds consiste précisément à traduire cette règle en code.

Un 550 signifie-t-il toujours que l'adresse est invalide ?#

Presque toujours, cela signifie « aucun utilisateur de ce nom », mais le 550 sert aussi aux rejets liés à des règles internes — le serveur bloquant votre expéditeur plutôt que jugeant la boîte aux lettres. Le code de statut étendu lève l'ambiguïté : 5.1.1 correspond à une boîte aux lettres réellement invalide, tandis que 5.7.x signale un blocage de sécurité ou de réputation. Un vérificateur qui lit le code étendu ne classera pas à tort un problème de réputation comme une adresse morte.

Qu'est-ce qu'un code de statut étendu ?#

C'est le second nombre facultatif d'une réponse, comme 5.1.1 ou 4.7.1, défini par la RFC 3463. Les trois champs sont la classe (2/4/5, correspondant au code de base), le sujet (ce sur quoi porte le code — adresse, boîte aux lettres, réseau, règle) et le détail. Ils offrent une précision lisible par machine que le message en texte libre n'a souvent pas.

Puis-je me fier totalement à un 250 ?#

Seulement si le domaine n'est pas catch-all. Un 250 provenant d'un serveur normal qui rejette les destinataires inconnus est un signal positif fort ; un 250 provenant d'un domaine catch-all n'a aucune valeur, car ce serveur renvoie 250 pour toute adresse imaginable. C'est exactement pour cette raison que la vérification sonde une adresse fantaisiste en parallèle.

Your reputation, protected.

Clean your first list in minutes. 100 free credits, no card required.

Get started