clement

Free tool

SMTP error codes, explained

Paste a bounce message or NDR and get the code decoded: what it means, whether it's a hard or soft bounce, which provider sent it, and whether to suppress the address or fix your setup. Or browse 36 codes from Gmail, Microsoft and Yahoo below.

Try:

Runs entirely in your browser. Nothing you paste is sent to our servers or stored.

SMTP error code list

Every code links to a full page with the provider's exact wording, causes and fixes.

How to read an SMTP error

A bounce like 550 5.7.26 This email has been blocked because the sender is unauthenticated has three parts, and each one tells you something different.

  1. The basic reply code (550). Three digits from RFC 5321, the SMTP standard. The first digit is what matters: 4 means a temporary failure your server should retry, 5 means a permanent failure. 421, 450, 451 and 452 are the common temporary ones; 550, 552, 553 and 554 the common permanent ones; 530, 534 and 535 are login failures on your own outgoing server.
  2. The enhanced status code (5.7.26). Defined in RFC 3463 as class.subject.detail. The class repeats temporary (4) or permanent (5). The subject says what area failed: x.1 addressing, x.2 mailbox, x.3 mail system, x.4 network and routing, x.5 SMTP protocol, x.6 content, x.7 security or policy. The detail narrows it down; 5.7.26 is registered as "multiple authentication checks failed."
  3. The text. The human-readable part is where providers put the actual reason, and it's often more specific than the numbers. Gmail uses 550 5.7.1 for at least a dozen different problems, from spam blocks to a missing Message-ID header. Always read it, and look for host names (gsmtp, protection.outlook.com, yahoodns.net) to see which provider rejected you.

Vendor codes outside the standard list are common. Microsoft uses its own detail numbers like 5.7.509, 5.7.606 and 5.7.708; the class and subject still follow RFC 3463, so a 5.7.xxx is always a security or policy decision.

Bounce handling rules for cold email

The 4xx/5xx split tells your mail server whether to retry. For a cold emailer the more useful question is whose problem is it: the address, or your sending setup?

  • Bad address (5.1.1, 5.1.10, 5.4.1, 5.2.1 inactive): suppress immediately and stop every queued follow-up. These hard bounces are what damage domain reputation.
  • Authentication (5.7.26, 5.7.27, 5.7.30, 5.7.509, 5.7.515, 5.7.25): keep the contact. Every recipient at that provider will bounce the same way until SPF, DKIM, DMARC or reverse DNS is fixed. Pause the campaign, fix DNS, send a test, then resend.
  • Reputation and rate limits (4.7.0, 4.7.28, 4.7.650, 5.7.1, 5.7.28, 5.7.606): keep the contact, cut volume, and fix whatever made receivers distrust you: list quality, targeting, links, or a bad shared IP.
  • Your own login (530, 534, 535): nothing was sent. Reconnect the inbox and resume.

Bounce rates move fast in cold email. If one campaign passes 2% hard bounces, pause it and re-verify the remaining contacts before sending another email. For the full pre-send routine, work through the deliverability checklist; deliverability fundamentals explains why mailbox providers react the way they do.

FAQ

What is the difference between a 4xx and a 5xx SMTP error?

A 4xx code is temporary: the receiving server couldn't take the message right now (rate limit, greylisting, full mailbox, busy server) and your server should retry. A 5xx code is permanent: sending the same message again won't work until something changes, whether that's the address, your authentication or your reputation.

What does 550 5.1.1 mean?

The recipient's mailbox doesn't exist. The domain is valid, but the part before the @ isn't. It's a hard bounce: suppress the address and never send to it again. Microsoft 365 returns the same thing as 550 5.1.10 'RecipientNotFound' or 550 5.4.1 'Recipient address rejected: Access denied'.

Is every 5xx error a reason to remove the contact?

No. Only address errors (5.1.x, inactive mailboxes) mean the contact is bad. Policy and authentication errors like 550 5.7.26, 550 5.7.509 or 550 5.7.1 are about your sending setup or reputation; the address is usually fine. Suppressing those contacts hides the real problem, which will hit every other recipient at that provider too.

What does 421 4.7.28 mean from Gmail?

Gmail detected an unusual rate of (often unsolicited) email from your IP, DKIM domain, SPF domain or a URL in your messages, and is rate limiting it. It's temporary, but it's a reputation warning: slow down, spread volume across the day, and fix targeting before it turns into a 550 5.7.28 block.

What is the enhanced status code in an SMTP error?

It's the three-part number after the basic code, such as 5.7.26 in '550 5.7.26'. Defined in RFC 3463, the first digit is the class (2 success, 4 temporary, 5 permanent), the second is the subject (1 address, 2 mailbox, 3 mail system, 4 network, 5 protocol, 6 content, 7 security or policy) and the third is the specific detail.

What bounce rate is too high for cold email?

Keep hard bounces well under 2% of sends per campaign, and treat anything above that as a reason to pause and re-verify the list. Invalid-recipient rates are one of the strongest spam signals mailbox providers use, so a single badly sourced list can damage a new domain within days.

Related tools

Try Clement free for 14 days

Clement reads the bounces that land in your Gmail and SMTP inboxes and tells dead addresses apart from policy blocks: it suppresses the first across every campaign and keeps the contact on the second, so you don't have to decode bounces by hand.

Start free trial