SMTP Bounce Code Lookup
Paste a bounce message or enter an SMTP code such as 550 5.7.26 to see what it means at Gmail, Microsoft 365 or Yahoo, why it happens and how to fix it. Runs in your browser.
Bounce text is analysed in this browser tab: nothing is uploaded and no DNS query is made. Only a bare status code (such as 5.7.26) is put in the link; pasted text never is. Copy link to this result · Browse all bounce codes
What this checks
A bounce (non-delivery report) carries two kinds of code. The three-digit SMTP reply code (RFC 5321 §4.2) says how the receiving server answered: 4yz means a persistent transient failure, so the sender should retry later, and 5yz means a permanent failure that retrying will not fix (§4.2.1). The enhanced status code (RFC 3463 §2) has the form class.subject.detail, for example 5.7.26: class 5 is permanent, subject 7 is security or policy, and the detail names the specific reason.
The tool pulls both codes out of whatever you paste, including multi-line replies where every line starts with 550- (RFC 5321 §4.2.1), the final line of a reply with a space instead of a dash, and codes written after a # as Exchange does. It also looks for hints of the rejecting provider, such as gsmtp or gmail-smtp-in for Gmail and protection.outlook.com or RESOLVER.* tokens for Microsoft 365, and compares the message wording with the provider's published text.
The same enhanced code can mean different things at different providers. IANA registers 5.1.10 as a null MX (RFC 7505), while Microsoft 365 uses it for "recipient not found". When the provider cannot be recognised the tool lists every plausible meaning instead of guessing. If the code is unknown, you still get the class-level meaning from the RFCs, so a 4 or 5 is always explained.
Pasted text stays in your browser: it is matched against a catalogue loaded into the page, nothing is sent anywhere and no DNS query is made. Only a bare status code can appear in the shareable link, never the pasted message, because bounces contain email addresses and server names. Each catalogue entry cites the provider's own documentation or the RFC it comes from.
If it fails
- Authentication codes (5.7.1, 5.7.23 to 5.7.30, 5.7.509): check SPF, DKIM and DMARC for the domain in the From header, and make sure at least one of SPF or DKIM passes and aligns (RFC 9989 §4.10.2).
- Address codes (5.1.1, 5.1.10, 550 mailbox unavailable): the recipient address is wrong or gone. Re-type it, ask the recipient for a current address, and do not resend unchanged.
- Reputation or rate codes (421 4.7.28, 5.7.1 blocked as spam): slow down, clean your list and check whether your sending IP is on a blocklist before retrying.
- No code found: paste the line from the bounce that starts with 4xx or 5xx, or open the original message headers and read them with the email header analyzer.
FAQ
What is the difference between 550 and 5.7.26?
550 is the SMTP reply code (RFC 5321): a permanent failure for the requested action. 5.7.26 is the enhanced status code (RFC 3463) that adds the reason: class 5 permanent, subject 7 security or policy, detail 26 for failed authentication checks (RFC 7372). Servers usually send both, as in 550 5.7.26.
Should I retry after a 4xx bounce?
Yes. A 4yz reply is a persistent transient failure, and RFC 5321 §4.5.4.1 advises retrying at intervals of at least 30 minutes for at least 4 to 5 days. Your mail server does this automatically. If the same 4xx keeps coming back, fix the cause (rate, reputation or missing PTR) instead of waiting.
Why does 5.1.10 mean different things?
IANA registers 5.1.10 as "recipient address has null MX" (RFC 7505), but Microsoft 365 returns 550 5.1.10 RESOLVER.ADR.RecipientNotFound when the address does not exist. The provider named in the bounce decides which reading applies, so the tool shows both when the provider is unknown.
Is it safe to paste a bounce message here?
The text is processed in your browser tab only and is never uploaded, logged or added to the page address. You can still remove email addresses before pasting, because the status code and the server wording are all the tool needs.