Sometimes your emails don't get delivered, and you need to figure out why. This is where SMTP codes will come in handy.
SMTP codes are three-digit code responses from a receiving server that indicate whether or not a message has been accepted. If you are getting SMTP error codes that reveal an underlying problem with your email delivery, you can use this guide to understand what they mean and how they affect your deliverability.
SMTP stands for Simple Mail Transfer Protocol, the technical standard for sending, relaying, and receiving emails.
When you start a UniOne mailing campaign, it is transferred to our sending SMTP server, or Mail Transfer Agent (MTA). The MTA relays your emails to the receiving server of your recipient's ISP or domain owner using the SMTP protocol. The receiving server then delivers the emails to the corresponding mailboxes.
In a perfect world, the ISP would accept your email and deliver it to the intended recipient's inbox. But being an email marketer, you understand that this isn't always the case. Your emails may be delayed, filtered into the spam folder, or bounced back to you.
Let’s go over SMTP status codes and see why email bounces and other negative scenarios might be occurring.
SMTP Status Codes
1. Traditional SMTP Response Status Codes
The receiving server of an ISP or domain owner responds to the sender using a three-digit code. All SMTP response status codes are divided into five classes, with the first digit indicating the response class:
- 1xx (Informational). The request has been received and is being processed.
- 2xx (Success). The request was received, understood, and accepted successfully.
- 3xx (Redirection). Additional action must be taken to complete the request.
- 4xx (Persistent transient failure). The request has incorrect syntax or cannot be completed.
- 5xx (Permanent errors). The server did not fulfill a valid request.
The status code 250 denotes a successfully delivered e-mail (the requested mail action was completed successfully). What you would probably like to know is the meaning of codes associated with various delivery problems.
The server host determines which SMTP response status codes should be used. Their meaning may be defined somewhat differently by different ISPs, mailbox providers, or domain owners. Below we list the most common variants.
|SMTP status code||Error message|
|421||Service not available|
|431||Not enough disk space|
|432||Recipient's incoming mail queue has stopped|
|441||Account is over data quota|
|446||The maximum hop count exceeded for message|
|450||Requested mail action not taken: mailbox unavailable|
|451||Requested action aborted: local error in processing|
|452||Requested action not taken: insufficient system storage|
|471||Sender’s mail server error|
|500||Syntax error, command unrecognized|
|501||Syntax error in parameters or arguments|
|502||Command not implemented|
|503||Bad command sequence|
|504||Command parameter not implemented|
|510||Bad email address|
|511||Bad email address|
|512||Host server for the recipient’s domain name cannot be found in DNS|
|513||Address type is incorrect|
|521||does not accept mail|
|523||Email size exceeds server limits|
|541||The recipient address rejected your message|
|550||Requested action not taken: mailbox unavailable|
|551||User not local|
|552||Requested mail action aborted: exceeded storage allocation|
|553||Requested action not taken: mailbox name not allowed|
2. Enhanced Mail System Status Codes
Since the information provided by traditional codes is limited, and there is a need for more comprehensive reporting mechanisms, RFC 3463 proposed a new set of enhanced mail system status codes. These status codes are based on the SMTP theory of reply codes, and they use the same success, permanent error, and transient error semantics, along with a second value's description and classification:
- 2.X.X (Success) indicates that the DSN reports a successful delivery action. Detailed sub-codes may provide notification of required delivery transformations. The status code 2.0.0 indicates that an email was successfully delivered (success).
- 4.X.X (Persistent Transient Failure) shows that attempts to send a message are abandoned or delayed due to the persistence of a temporary condition. If this code is included with a delivery failure report, future sending attempts may succeed.
- 5.X.X (Permanent Failure) cannot be fixed by resending the message in its current state. Some changes to the email itself, system setup, or the destination are required for successful delivery.
The application of these codes also varies between ESPs. Popular bounce codes for undeliverable emails are shown below. These can be either persistent transient failures (4.X.X) or permanent failures (5.X.X).
|SMTP status code||Error message|
|X.0.0||Other undefined status|
|X.1.0||Other address status|
|X.1.1||Bad destination mailbox address|
|X.1.2||Bad destination system address|
|X.1.3||Bad destination mailbox address syntax|
|X.1.4||Destination mailbox address ambiguous|
|X.1.5||Destination address valid|
|X.1.6||Destination mailbox has moved, No forwarding address|
|X.1.7||Bad sender's mailbox address syntax|
|X.1.8||Bad sender's system address|
|X.2.0||Other or undefined mailbox status|
|X.2.1||Mailbox disabled, not accepting messages|
|X.2.3||Message length exceeds administrative limit|
|X.2.4||Mailing list expansion problem|
|X.3.0||Other or undefined mail system status|
|X.3.1||Mail system full|
|X.3.2||System not accepting network messages|
|X.3.3||System not capable of selected features|
|X.3.4||Message too big for system|
|X.3.5||System incorrectly configured|
|X.4.0||Other or undefined network or routing status|
|X.4.1||No answer from host|
|X.4.3||Directory server failure|
|X.4.4||Unable to route|
|X.4.5||Mail system congestion|
|X.4.6||Routing loop detected|
|X.4.7||Delivery time expired|
|X.5.0||Other or undefined protocol status|
|X.5.3||Too many recipients|
|X.5.4||Invalid command arguments|
|X.5.5||Wrong protocol version|
|X.6.0||Other or undefined media error|
|X.6.1||Media not supported|
|X.6.2||Conversion required and prohibited|
|X.6.3||Conversion required but not supported|
|X.6.4||Conversion with loss performed|
|X.7.0||Other or undefined security status|
|X.7.1||Delivery not authorized, message refused|
|X.7.2||Mailing list expansion prohibited|
|X.7.3||Security conversion required but not possible|
|X.7.4||Security features not supported|
|X.7.6||Cryptographic algorithm not supported|
|X.7.7||Message integrity failure|
Common Causes for SMTP Errors
SMTP failure codes can occur due to a variety of reasons. The following are the most frequent:
- Unidentified users. Permanent SMTP errors result from sending emails to non-existent or abandoned email accounts, and are treated as hard bounces.
- Spam sending suspected. Your emails may be rejected with SMTP errors categorized as soft bounces because an ISP or ESP's spam filter and/or reputation metrics have detected bad sender reputation or spam patterns based on email content or user feedback.
- Incorrect DNS configuration. SMTP errors classified as soft bounces can occur when sending from unauthenticated sender domains.
- Full mailboxes. SMTP errors are handled as soft bounces when recipient mailboxes are full.
- Tech failure. Connection or performance issues on the recipient's end are usually treated as transient errors.
Following our email deliverability best practices can significantly reduce SMTP errors and bounce issues. All common SMTP error codes and messages received by ISPs or mailbox providers are recognized by UniOne's bounce management and placed in the appropriate bounce category. We review and update them regularly to ensure that you get bounce processing that meets industry standards.
Conclusion: How Do You Fix SMTP Errors?
It can be difficult to do your own research and figure out what an error code means and how to eliminate it. As a result, most high-volume email senders collaborate with email service providers (ESPs) such as UniOne to do the heavy lifting and ensure that you have all of the tools you need to send your emails successfully.