Definition
Enhanced status code: A three part code in the form class.subject.detail (RFC 3463) that adds precision to an SMTP reply. In 5.1.1, the 5 means permanent failure, the 1 means an addressing problem and the final 1 means the mailbox does not exist.
How to read an enhanced status code
The class tells you whether to retry: 4 means try again later, 5 means do not. The subject narrows down the area: 1 addressing, 2 mailbox, 3 mail system, 4 network and routing, 5 the SMTP protocol itself, 6 message content and 7 security or policy.
The detail number pins down the exact condition within that subject. So 5.1.1 is a permanent addressing problem where the mailbox does not exist, and 4.2.2 is a temporary mailbox problem where the mailbox is full.
Common enhanced status codes in bounces
5.1.1 bad destination mailbox, the classic hard bounce. 5.2.1 mailbox disabled. 5.2.2 and 4.2.2 mailbox full. 5.4.1 is often used by Microsoft 365 when a recipient is rejected.
5.7.1 delivery not authorized, a policy refusal. 5.7.26 and similar codes at Gmail point at authentication failures. Any 5.7.x code is about the sender, not the recipient address.
Where to find the enhanced status code in a bounce
In a live SMTP session, it follows the three-digit reply code. In a bounce message, look for the machine-readable delivery status part: the Status field holds the enhanced code and Diagnostic-Code holds the server's full reply.
Your email platform usually shows the same reply text in its bounce log or webhook payload.
Final-Recipient: rfc822; old.employee@example.com
Action: failed
Status: 5.1.1
Remote-MTA: dns; mx1.example.com
Diagnostic-Code: smtp; 550 5.1.1 <old.employee@example.com>: Recipient address rejected: User unknown How RocketVerifier handles it
We parse the full reply, basic code, enhanced code and text, with separate rules for Google, Microsoft, Yahoo, Mimecast, Proofpoint and Barracuda, because each words its replies differently. A clear user-unknown answer such as 5.1.1 becomes undeliverable with sub_status mailbox_not_found, while 5.7.x replies about the sender are reported as blocked (unknown) and never as undeliverable. A bare 550 without a clear user-unknown meaning is treated as ambiguous.