Short answer. An email bounces when the receiving server refuses to deliver it. Causes split into permanent (5xx: no such address, dead domain, reputation block, DMARC failure) and temporary (4xx: full mailbox, greylisting, throttling). To fix bounces, read the extended SMTP code, repair SPF/DKIM/DMARC authentication, and watch your own mail server's availability.
Permanent causes (5xx)
- Address does not exist —
550 5.1.1, a typo or a departed employee; - Domain accepts no mail — no MX record or the server is down;
- Reputation block —
550 5.7.1, your IP/domain is blocklisted; - Authentication failure — the message failed SPF/DKIM under a DMARC reject policy.
Temporary causes (4xx)
- Mailbox full —
452 4.2.2; - Greylisting —
450 4.2.1, a temporary refusal to filter bots; - Throttling —
421 4.7.0, sending too fast; - Network/server error —
451 4.3.0.
A bounce is not a glitch, it is a message. The server states the reason in the code; the sender's job is to read and fix it, not to retry blindly.
Decoding the codes
| Code | Class | Cause |
|---|---|---|
| 550 5.1.1 | Permanent | Recipient not found |
| 550 5.7.1 | Permanent | Rejected by policy / block |
| 554 5.7.1 | Permanent | Message flagged as spam |
| 421 4.7.0 | Temporary | Throttling / server busy |
| 450 4.2.1 | Temporary | Greylisting |
| 452 4.2.2 | Temporary | Mailbox full |
What a report looks like
Final-Recipient: rfc822; user@example.com
Action: failed
Status: 5.1.1
Diagnostic-Code: smtp; 550 5.1.1 User unknown in virtual mailbox table
How to fix
- Read the extended code (
5.1.1,5.7.1, etc.). - 5.1.1 → clean the list, remove non-existent addresses.
- 5.7.1 → check IP/domain reputation and SPF/DKIM/DMARC.
- 4.x.x → set up retries and lower the send rate.
The authentication link
A frequent invisible cause is alignment failure under a p=reject policy. The message technically reached the server but was rejected by DMARC. Verify records before launching a campaign.
Where enterno helps
/email-check parses SPF, DKIM and DMARC and shows whether your config will bounce mail with 5.7.1. MX-lookup confirms the recipient domain even has a working MX. And /monitors watches your mail server (ports 25/465/587, blacklist) and alerts via Telegram/Slack/email/webhook on outages — a classic 4xx cause. enterno does not send your mail.
FAQ
What is the difference between a bounce and the spam folder?
A bounce is an explicit refusal with a code. Landing in spam means the message was accepted but hidden from the user.
Why did a message leave but bounce an hour later?
That is an asynchronous bounce: the server accepted it, then could not deliver onward and sent a DSN.
How do I know I am blocklisted?
A 550 5.7.1 code and a blocklist mention in the diagnostic; check your IP reputation.
Can I eliminate bounces entirely?
No, but you can realistically keep hard bounces under 2% with a clean list and correct authentication.
Next: master hard vs soft bounce handling, check authentication and set up server monitoring.