SMTP Status Codes and Their Meanings
SMTP Status Codes and Their Meanings
SMTP response codes are three-digit numbers that indicate the status of an email transaction. The first digit defines the response category:
- 1xx – Informational (not commonly used in SMTP)
- 2xx – Success (The request was successfully processed)
- 3xx – Redirection (Additional action required)
- 4xx – Temporary failure (The request failed, but retry may succeed)
- 5xx – Permanent failure (The request failed, do not retry)
Here’s a breakdown of common SMTP status codes:
2xx – Success Codes
These indicate that the email transaction was successfully processed.
- 200 – Nonstandard success response (rarely used).
- 211 – System status or help reply (provides server info).
- 214 – Help message (returns helpful information).
- 220 – SMTP server ready (indicates the server is ready to process requests).
- 221 – SMTP server closing connection (indicates the session is ending).
- 250 – Requested action completed successfully (most common success response).
- 251 – Recipient not local, will forward (email will be relayed to another domain).
3xx – Intermediate/Redirection Codes
These codes indicate that the server expects further input from the client before completing the request.
- 334 – Server response to an authentication request (challenges the client for credentials).
- 354 – Start mail input (indicates the server is ready to receive the email body).
4xx – Temporary Failures
These errors indicate a transient issue that may resolve itself. The sender should retry later.
- 400 – Generic temporary error.
- 421 – Service not available (server is shutting down or overloaded).
- 450 – Requested action not taken because the recipient’s mailbox is unavailable (e.g., mailbox full).
- 451 – Requested action aborted due to a server error (e.g., system overload).
- 452 – Insufficient system storage (server cannot process the email due to lack of resources).
5xx – Permanent Failures
These indicate a permanent error, meaning the request cannot be fulfilled. The sender should not retry.
- 500 – Syntax error (server did not recognize the command).
- 501 – Syntax error in parameters (invalid email address or malformed command).
- 502 – Command not implemented (server does not support the requested command).
- 503 – Bad sequence of commands (commands sent in the wrong order).
- 504 – Command parameter not implemented (server does not recognize a specific parameter).
- 550 – Mailbox unavailable (e.g., recipient does not exist).
- 551 – User not local (server cannot relay the message).
- 552 – Mailbox full (message storage limit exceeded).
- 553 – Invalid recipient address (email address incorrect or malformed).
- 554 – Transaction failed (email rejected, often due to spam filters or security policies).
Example SMTP Transaction with Status Codes
plaintext
CopyEdit
S: 220 mail.example.com SMTP server ready
C: HELO client.example.com
S: 250 mail.example.com Hello client.example.com
C: MAIL FROM:<
S: 250 OK
C: RCPT TO:<
S: 250 OK
C: DATA
S: 354 Start mail input
C: (Message content)
C: .
S: 250 OK, message accepted for delivery
C: QUIT
S: 221 Goodbye