SMTP Error Codes Reference
Code Classes
- 2xx – Success: Action completed successfully.
- 3xx – Intermediate: Command accepted, awaiting more information.
- 4xx – Temporary Failure: Error is transient; retry may succeed later.
- 5xx – Permanent Failure: Error is fatal; resending without changes will fail.
Success Codes
- 220 – Service ready
- 221 – Service closing transmission channel
- 250 – Requested mail action completed (OK)
- 251 – User not local; will forward
- 252 – Cannot verify user, but will accept message
Temporary Failures (Soft Bounce)
- 421 – Service not available, closing transmission channel (server busy/offline)
- 450 – Requested mail action not taken: mailbox unavailable (e.g., inbox full)
- 451 – Requested action aborted: local error in processing
- 452 – Requested action not taken: insufficient system storage
- 447 – Timeout occurred while waiting for server response
Permanent Failures (Hard Bounce)
- 500 – Syntax error, command unrecognized
- 501 – Syntax error in parameters or arguments
- 502 – Command not implemented
- 503 – Bad sequence of commands
- 504 – Command parameter not implemented
- 550 – Requested action not taken: mailbox unavailable (user not found)
- 551 – User not local; please try a different path
- 552 – Requested mail action aborted: exceeded storage allocation
- 553 – Requested action not taken: mailbox name not allowed (invalid address format)
- 554 – Transaction failed (generic permanent error)
Enhanced Status Codes (RFC 3463)
These extend basic codes with more detail, in the format x.y.z:
- 2.x.x – Success
- 4.x.x – Persistent transient failure
- 5.x.x – Permanent failure
Examples:
- 5.1.1 – Bad destination mailbox address (user doesn’t exist)
- 5.2.2 – Mailbox full
- 5.3.0 – System not accepting network messages
- 5.4.1 – No answer from host
- 5.7.1 – Delivery not authorized, message refused (often policy or spam filter)
Troubleshooting Tips
- 4xx codes: Retry later; often caused by temporary server overload or full mailbox.
- 5xx codes: Correct the issue before resending (e.g., fix invalid address, check authentication).
- 421/451: May indicate throttling or rate limits on the SMTP server.
- 550/553: Verify recipient address formatting and existence.
- 554: Check for content filters, blacklisting, or server policy blocks.
In summary: Use this list to interpret log entries when SMTP logging is enabled. Codes beginning with 4 usually resolve with retries, while codes beginning with 5 require fixing the underlying issue before resending.
Sources: