SMTP Error and Reply Codes, Explained

Full SMTP reply code reference – what 4xx and 5xx errors mean, the common bounce codes (550, 554, 421), enhanced status codes, and how to fix each one.

SMTP Error Codes

Last updated: July 2026

Every SMTP response starts with a three-digit code. The first digit tells you almost everything:

  • 2xx — success (250 OK = message accepted)
  • 3xx — go on (354 = “start sending the message body”)
  • 4xx — temporary failure: the sender should retry later
  • 5xx — permanent failure: don’t retry, fix the problem

The codes you’ll actually meet

CodeMeaningWhat to do
421Service not available / too many connectionsServer is throttling you — slow your sending rate, retry later
450Mailbox unavailable (temporary)Often greylisting; a legitimate server’s retry succeeds
451Local error in processingReceiving server hiccup — retry
452Insufficient storageRecipient mailbox full — retry later
550Mailbox unavailable / not foundBad address, or you’re blocked — verify the address, check blocklists
551User not localWrong server for this recipient
552Message exceeds storage allocationMessage too large for the mailbox
553Mailbox name not allowedMalformed recipient address
554Transaction failedCatch-all rejection — usually spam filtering; read the text after the code

Enhanced status codes (the x.y.z after the number)

Modern servers append a second code like 550 5.1.1 or 550 5.7.1:

  • 5.1.1 — bad destination mailbox: the address genuinely doesn’t exist
  • 5.2.2 — mailbox full
  • 5.7.1 — delivery not authorized: you were rejected as a sender — the classic SPF/DKIM/DMARC or blocklist failure

5.1.x codes mean fix the address; 5.7.x codes mean fix your sending reputation.

Debugging a 5.7.1 / 554 rejection

  1. Read the full bounce text — Gmail and Outlook include a URL explaining exactly which policy you failed.
  2. Check your DNS: SPF record includes your sending server, DKIM signing is on, DMARC exists. (SPF setup is covered in my SPF record guide.)
  3. Check your server IP against blocklists (mxtoolbox.com’s blocklist check covers the major ones).
  4. Since 2024, Gmail/Yahoo require bulk senders to authenticate and honor one-click unsubscribe — unauthenticated bulk mail gets 550 5.7.x rejections by policy.

A rule worth automating

Treat 4xx as “retry with backoff” and 5xx as “stop and alert”. Retrying 5xx bounces into oblivion is exactly how sending IPs earn a place on blocklists.

Comments

comments