Your mail server interacts with your recipient’s server through a sequence of predefined commands and parameters. Sometimes, these interactions lead to a successful email delivery. But other times, there could be failures due to several errors from the receiving or sending server. You can identify these errors using SMTP response codes based on your server configuration.
In this blog post, we list these reply codes and their general meanings to help you detect the status of your email delivery process. Besides the standard SMTP responses, enhanced status codes provide additional reports about email system conditions. We have also added a few general tips for handling error codes and resolving common failures.
Table of Contents
What Are SMTP Response Codes?
Simple Mail Transfer Protocol (SMTP) response codes are three-digit codes issued by a receiving mail server in response to a request from an email client. Each digit in the code contains specific encoded information to help you understand how your recipient’s mail server interacts with your SMTP service and email message.
These updates are valuable indicators that help you monitor your email delivery and understand what happens during email sending. They facilitate communication between outgoing and incoming mail servers, as the codes can tell whether the delivery action succeeded or failed. Several communication errors, however, may occur in the course of the email-sending process.
These errors may range from connectivity issues to firewall restrictions, DNS failures, incorrect SMTP settings, and other security problems.
Generally, they are specified by unique numbers that make up the SMTP code.
The standard SMTP response codes are defined in RFC 5321.
29 SMTP Response Codes and What They Mean
SMTP response codes contain three numbers that carry vital pieces of information.
The first number indicates the success or failure of the request, while the second and third digit gives more details about the nature of the response and its cause.
Although these codes have general meanings, SMTP servers may interpret each response differently. This is due to the differences in their configuration and setup procedures.
More importantly, they do not always indicate an error. They simply serve as a communication tool to help mail servers understand the nature and status of the message. Here are some of the common SMTP status codes:
1. 2xx response codes (Success)
Status codes that begin with ‘2’ indicate the server received, understood, and accepted the request. In other words, the delivery action was successful. The codes include:
|System status or system help reply
|It provides detailed server information for the user
|This response provides information to help the user understand the commands. It usually includes a link to the FAQ page.
|It shows the server is ready to receive the next command
|Service closing transmission channel
|It indicates the end of the email delivery session, connection, or process
|Authentication is successful
|It shows the SMTP authentication test was passed
|Requested email action okay, completed
|This response shows the connection was successful and email was delivered
|User not local; will forward to <forward-path>
|It means the message has been accepted, but since the recipient address is not on the server, the email will be forwarded to the right server
|Can not verify user; accepting message for attempt.
|It shows the incoming mail server cannot verify the recipient’s email address but will accept and attempt to deliver the message anyway
2. 3xx response codes (Additional information required)
The codes in this category show partial success and indicate that the mail server has understood and accepted the request but requires more information to complete the action. The codes include:
|Response to the AUTH command when the requested security mechanism is accepted
|It provides the required SMTP authentication credentials to activate the next command. Once passed, it returns the 235 OK response
|Start email input; end with <CLRF>.<CLRF>
|This shows the server has received the email header (“From” and “To” addresses) and is now waiting for the email content (“Body”)
3. 4xx response codes (Transient error)
The codes in this category indicate temporal errors that may occur during the email delivery operation, causing the server not to accept the request. Usually, this failure is from the receiving server. And since it is temporal, it can be successful if the email client sends the request again.
The codes include:
|Service not available, closing transmission channel
|This means the receiving or sending mail server is busy, overwhelmed with multiple requests, or not reachable
|Requested email action not taken: mailbox unavailable
|This indicates that the recipient’s address is either invalid or cannot receive the message. The receiving mail server can also reject this request if your IP is on a block list.
|Requested action aborted: local error in processing
|This indicates server overload, DNS issues, or problems with establishing connectivity due to incorrect configuration
|Requested action not taken: insufficient system storage
|This response means you have a low storage space. It is sent when you overload your server with too many emails at once or add too many recipients in a single email
|Server unable to accommodate the parameters
|It happens when the recipient’s server is unable to complete or process the command
4. 5xx response codes (Permanent error)
Status codes that begin with ‘5’ indicate a permanent failure in the email delivery process. Unlike the 4xx status codes, resending the request in the current form may not resolve these errors. There has to be an update or modification in email details to ensure successful delivery.
The codes include:
|Syntax error, command unrecognized
|This response indicates an error between your server and a firewall or antivirus program. It could also mean the command line is too long or isn’t recognized as valid.
|Syntax error in parameters or arguments
|This usually indicates an invalid email address or domain name. Sometimes, it could be due to an antivirus or spam filtering program.
|Command not implemented
|This means the receiving server has detected an unsupported or unrecognized SMTP command or function
|Bad sequence of commands
|The receiving mail server detects a valid command but cannot process it due to wrong sequencing. This usually occurs as a result of a failed email authentication
|Command parameter not implemented
|Similar to 502
|Server does not accept email
|This usually occurs when the receiving server is part of an email relay and does not accept or deliver the emails themselves
|Mail system full
|This response indicates the recipient’s email system is full and cannot accept more emails
|Authentication credentials are invalid
|This usually indicates that the authentication protocols are either invalid or not configured properly. Also, it could mean the connection encryption settings are incompatible with the receiving mail server
|The recipient address rejected your message
|This is based on the receiving server’s configuration, indicating that your email triggered spam filters, causing the server to flag or block your email
|Requested action not taken: mailbox unavailable
|This occurs when the recipient’s server rejects your email or cannot verify your recipient’s email address
|User not local; please try <forward-path>
|This indicates the recipient’s email address does not exist on the server. However, the message will be forwarded to another server
|Requested email action aborted: exceeded storage allocation
|This means the recipient doesn’t have enough storage to receive more emails. It could also indicate that the message size (or attachments) exceeds the maximum message limit
|Requested action not taken: mailbox name not allowed
|The receiving mail server shows this error when the email address is invalid, doesn’t exist, or cannot be verified
|This means the receiving server did not accept your message, as you may either be on a blacklist or have a poor sender reputation
Enhanced Status Codes
Unlike the general email delivery responses, the enhanced status codes cover the limitations of SMTP. It uses standard protocols to provide more detailed and specific responses to email delivery actions.
This new set of codes is based on the SMTP theory of replies. So, it follows the same protocols used to classify the first digit (2 – Success, 4 – Transient error, 5 – Permanent error). Also, the numbers are separated by a dot “.” and the second or third sub-code can contain up to three-digit numerals.
The enhanced status codes are defined in RFC 3463.
How To Read SMTP and Enhanced Status Codes
The interpretations of these codes are pretty straightforward. However, there could be a few variations that may occur as a result of different server configurations.
We have already stated that the first digits of both protocols signify the code class. Also, the last digit varies and depends on both the first and second digits to provide the necessary detail.
So, here are the general interpretations of the second digits:
1. SMTP responses
|These replies indicate syntax errors or wrong commands and parameters
|They are help messages and present information about a request or command
|They show information about the communication channels
|They indicate the status of the receiving mail server
2. Enhanced responses
|Other or Undefined Status
|It doesn’t define any available subject information
|It indicates the status of the recipient’s or destination address
|It indicates possible issues with the recipient’s mailbox
|Mail System Status
|It indicates the status of the recipient’s email system
|Network and Routing Status
|This indicates the status of the delivery system with components that include directory and routing services
|Mail Delivery Protocol Status
|It indicates several failures relating to implementation errors or an unreliable connection
|Message Content or Media Status
|It shows several failures relating to the email content (text formats, multimedia, and other attachments)
|Security or Policy Status
|This indicates errors due to several authentication or security protocols
How To Fix SMTP Error Codes
SMTP response codes can either be positive or negative, depending on the mail server status and other related factors. Generally, you are not required to do anything when you receive a 2xx or (sometimes) 3xx report – these requests are usually accepted.
However, a 4xx or 5xx response indicates possible failures with your server, recipient’s system, or the email message.
Understanding the nature of the error code is the first step to fixing the issue.
Here are some tips to help you resolve common SMTP errors:
- Ensure the recipient’s email or destination address is valid and has the permission to receive emails
- Always check to confirm your IP is not on any blocklist
- Ensure to follow proper email authentication protocols
- Avoid spam filters by optimizing your emails with engaging, appropriate, and timely content
- Review your configurations and ensure you use the correct parameters and commands specified by your SMTP server
- Avoiding adding too many attachments in your emails
- You may need to break your email list into chunks if your server cannot handle too many recipients at once
- Avoid overloading your recipients with too many emails at a time
- Contact the recipient to see if they can resolve any other issue from their end
- Use a reliable SMTP service provider
Mail servers use SMTP to improve email deliverability and relay messages between multiple email systems. The information these servers share, when they interact, can give you valuable insights and reports into your email delivery status. So, when specific errors occur in your email infrastructure, you can easily detect and fix them.
However, several SMTP relay services provide real-time email reports based on your account activity. They offer valuable resources to help you decipher these codes and practical recommendations for fixing possible errors. This enhances your email delivery process and ensures your messages reach the primary inbox.