NDRNon-Delivery Report
An NDR (Non-Delivery Report), often just called a bounce message, is the automated email a mail server sends back when it cannot deliver your message. It is a formal Delivery Status Notification (DSN) defined in RFC 3464, and it carries a status code that tells you why delivery failed, which is the difference between a temporary hiccup and a dead address you should suppress.
- The automated bounce message returned when delivery fails
-
A
5.x.xstatus code means permanent failure;4.x.xmeans temporary - Reading the code tells you whether to suppress the address or wait
- A formal NDR is a Delivery Status Notification under RFC 3464
X.Y.Z)
5.x.x (e.g. 5.1.1)
4.x.x (e.g. 4.2.2)
What an NDR is
When a mail transfer agent accepts your message but then cannot deliver it, it generates a Non-Delivery Report and sends it back to the Return-Path address. You see it as a “message not delivered” or “mail delivery failed” email landing in the sending mailbox. Behind that plain-language note sits a structured report defined by RFC 3464.
A standards-compliant NDR is a multipart/report message with three parts: a human-readable explanation, a machine-readable message/delivery-status block carrying the status codes, and a copy of the original message or its headers. Automated systems read the machine part; people read the first part. The whole mechanism is part of the wider Delivery Status Notification family.
Reading the status code
The most useful thing in an NDR is its enhanced status code, defined by RFC 3463 in the form X.Y.Z. The first digit is the class, the second is the subject, and the third is the detail:
2.x.x: success. You rarely see these in a bounce.4.x.x: a temporary failure (a soft bounce). The server is asking you to try again later, for example4.2.2for a full mailbox.5.x.x: a permanent failure (a hard bounce). Delivery will never succeed, for example5.1.1for a non-existent mailbox.
The middle digit tells you the category: 1 is an addressing problem, 2 is mailbox status, 4 is network or routing, and 7 is a security or policy issue (the bucket that holds authentication rejections). A real NDR pairs the enhanced code with a classic three-digit SMTP reply, like the example below.
Action: failed
Status: 5.1.1
Diagnostic-Code: smtp; 550 5.1.1 The email account that you
tried to reach does not exist
What to do with an NDR
The right response depends entirely on the class. A 5.x.x permanent failure means the address is bad, blocked, or rejected on policy, so you should move it to your suppression list immediately and stop sending. A 4.x.x temporary failure means your server will retry on its own; let it, and only suppress an address that soft-bounces across several consecutive sends.
Watch the codes in aggregate, not just one at a time. A sudden wave of 5.7.x policy rejections from one provider is usually a sender-side problem, often an authentication or reputation issue, rather than thousands of bad addresses. For the full breakdown, see the guide on email bounce codes.
How an NDR is generated
4.x.x: temporary
5.x.x: permanent
Temporary vs permanent NDR
| Temporary (4.x.x) | Permanent (5.x.x) | |
|---|---|---|
| Bounce type | Soft bounce | Hard bounce |
| Typical cause | Full mailbox, throttling | No such mailbox, blocked |
| What to do | Let it retry | Suppress at once |
| Example code | 4.2.2 |
5.1.1 |
| Reputation impact | Low if occasional | High if repeated |
By the numbers
Common mistakes
4.x.x NDR is temporary; the address may well work on the next attempt. Suppressing on a single soft bounce throws away valid contacts. Act on the class, not the mere fact of a bounce.5.7.x rejections is usually a sender problem, an authentication or reputation failure, not bad addresses. Diagnose the cause rather than just suppressing the recipients.Frequently asked questions
X.Y.Z form. The first digit is the class: 4 is a temporary failure you can retry, and 5 is a permanent one to suppress. The middle digit gives the category (1 addressing, 2 mailbox, 7 security or policy), and the last adds detail. So 5.1.1 is a permanent addressing failure: the mailbox does not exist.