SMTP error codes are one of the fastest ways to troubleshoot a delivery problem. When an email doesn’t reach the recipient, the receiving mail server sends back a numbered response code that explains what went wrong.
The trouble is that these codes look cryptic if you don’t read them every day. A line like “550 5.1.1 User unknown” tells you a lot once you know how to decode it, and not much before that.
I’ve spent plenty of time reading bounce messages, so this guide breaks it down. You’ll learn what the codes mean, how to read the number and the enhanced code next to it, the most common errors and how to fix them, and where to find the codes in the first place.
What Is an SMTP Error Code?
An SMTP error message explains why an email wasn’t delivered. Part of that message is a three-digit code that tells you the type of delivery problem.
Not every SMTP response is an error. Servers also send codes to confirm a message was accepted or to ask for the next command.
The response code is three digits, and the first digit tells you the category:
- 2xx: Success. The server accepted the command or the message.
- 3xx: The server understood the request but needs more information to finish.
- 4xx: A temporary failure. The server will usually try again on its own.
- 5xx: A permanent failure. You need to fix something before it will send.
Reading and fixing SMTP errors can get tricky, especially if technical details aren’t your thing. That’s where an SMTP service like SendLayer helps. It improves your deliverability and authenticates your email to cut down on server errors. If one does come up, you’ve got a dedicated support team to help you sort it out.
How to Read an SMTP Reply
A full SMTP reply often has three parts. Here’s a typical bounce:
550 5.1.1 The email account that you tried to reach does not exist
550is the basic reply code. The first digit (5) means a permanent failure.5.1.1is the enhanced status code. It gives a more precise reason (more on these below).- The text is a human-readable explanation from the server.
The basic code tells you the category. The enhanced code and the text tell you the specific cause. Read all three together and most bounces stop being mysterious.
Common SMTP Error Codes and What They Mean
Most SMTP codes you’ll run into start with 4 or 5. Codes starting with 4 are temporary. They usually point to a problem on the receiving server, and the issue often clears itself when the server retries. Codes starting with 5 are permanent and need action from you.
Before the errors, here are the success and intermediate codes you’ll see when things go right.
SMTP 200 and 300 Success Codes
These codes mean the conversation is going as it should. You don’t need to act on them.
| Code | Meaning |
|---|---|
| 220 | The service is ready and the connection is open. |
| 221 | The server is closing the connection after a successful session. |
| 235 | Authentication was successful. |
| 250 | The requested action was completed. This is the “OK” you want to see. |
| 251 | The user isn’t local, but the server will forward the message. |
| 354 | The server is ready to receive the message body. Send the content, then a period on its own line. |
Common SMTP 400 Error Codes
See the table below for an explanation of some common temporary error codes. You can click the hyperlinked codes for a more detailed walkthrough.
| Error Code | Error Explanation |
|---|---|
| 420 | The connection to the server timed out or was unavailable. This may be due to a hardware or firewall problem at the receiving server end. |
| 421 | The receiving mail service is unavailable. The server will try to send the message again later. |
| 422 | The recipient’s mailbox is full. |
| 431 | Not enough space on the disk or out of memory. This error can sometimes be triggered if you bulk mail a lot of emails on the same domain name. |
| 432 | An error code used by Microsoft Exchange server, triggered by a connection problem. |
| 441 | The recipient email account server is not responding. The outgoing mail server will try again later. |
| 442 | The connection dropped while the message was being sent. This may be because of a problem with your local network or internet connection. |
| 446 | The message has passed through too many mail servers to reach its destination. Contact your SMTP provider for help with resolving this error. |
| 447 | The email is being sent to too many recipients. The limit for this number is set by your SMTP service. Reduce the number of email addresses you are including in the CC and BCC fields. |
| 449 | An email routing error related to Microsoft Exchange servers. |
| 450 | The user’s mailbox was unavailable. This error can also be triggered if your email was flagged as spam or your sending IP address is greylisted. See more advice on resolving error 450. |
| 451 | The message wasn’t sent because of a server error. This error can also be triggered by spam filters. |
| 452 | The server is overloaded. This error can be triggered if you send too many emails at once. If you need to send more emails, consider using a service like SendLayer. |
| 455 | The server can’t process the command right now. You can retry later |
| 471 | This error is usually triggered by a spam filter or antivirus software installed on the mail system. |
Common SMTP 500 Error Codes
SMTP error codes starting with a 5 are classed as permanent errors and total mail failures. You will usually need to take action to resolve these errors and resending your email without changing anything means it is highly likely to fail again.
| Error Code | Error Explanation | Action to resolve it |
|---|---|---|
| 500 | There was a syntax error in the command. | Check the SMTP command is correct and not too long. This error may also be caused by antivirus or anti-spam software. |
| 501 | A syntax error was found in the command parameters. | This error is usually caused by an invalid email address but it can also be triggered by antivirus software. See more advice on fixing Error 501. |
| 502 | The command was not implemented. | Contact your SMTP provider for advice. |
| 503 | Bad sequence of commands | This can be caused by an authentication error on the client side. Make sure the email client is correctly set up for SMTP authentication. |
| 521 | The server will not accept the email | This error is usually seen in email relays and may not mean the delivery has failed entirely. Check if the email has been delivered before investigating further. |
| 541 | The message was rejected by the recipient | Your email has been flagged as spam. Avoid including spam trigger words in your emails and ask the recipient to add your email address to the whitelist. |
| 550 | This is the most common SMTP error code and is a generic failure to deliver the message. This is usually because the user’s mailbox was unavailable or the message was rejected as spam. Some mail servers will return a further explanation along with the code. | Check the recipient’s email addresses for typos. |
| 551 | This can be a “soft bounce” error caused by a full mailbox or a “hard bounce” error that indicates the recipient mailbox isn’t available on the receiving server. It can also be caused by improperly authenticated email. | Check the recipient’s address is correct. Ensure your emails are authenticated correctly by adding SPF, DKIM, and DMARC records to your DNS records. |
| 552 | The recipient mailbox doesn’t have enough storage | Avoid sending emails with large attachments. |
| 553 | The mailbox name doesn’t exist | Check recipient’s email addresses for typos. |
| 554 | The transaction failed and there are no further details. | Your email may have been rejected because your sending IP is blacklisted. Check public spam records and make sure your sending domain is set up to authenticate emails via SPF, DKIM, and DMARC. |
Enhanced SMTP Status Codes (the X.X.X Codes)
Alongside the basic three-digit code, many servers send an enhanced status code defined by RFC 3463. It looks like 5.1.1 and gives a more specific reason for the result.
Enhanced codes have three parts: class.subject.detail. The first number is the class, and it lines up with the basic code:
| Class | Meaning |
|---|---|
| 2.X.X | Success |
| 4.X.X | Temporary (transient) failure |
| 5.X.X | Permanent failure |
Here are some of the enhanced codes you’ll see most often:
| Enhanced code | What it means |
|---|---|
| 4.7.0 | The message was greylisted or hit a policy limit. It should retry. |
| 5.1.1 | The recipient’s mailbox doesn’t exist. Check the address for typos. |
| 5.1.2 | The recipient’s domain doesn’t exist or can’t be found. |
| 5.2.2 | The recipient’s mailbox is full. |
| 5.7.1 | The message was blocked, often for spam, policy, or authentication reasons. |
When you pair the enhanced code with the basic code, you get a clear picture. A 550 5.1.1, for example, is a permanent failure caused by a mailbox that doesn’t exist.
How to Fix SMTP Server Errors
Most SMTP errors trace back to a handful of causes: emails flagged as spam, a blacklisted domain or IP, incorrect authentication, or a simple typo in the recipient’s address.
Here’s a practical order to work through:
- Check the recipient’s address: A surprising number of 550 and 553 errors are just typos.
- Confirm your authentication: Missing or broken SPF, DKIM, and DMARC records trigger a lot of 550 and 554 rejections.
- Check whether you’re blacklisted: A 554 often means your sending IP is on a spam list.
- Slow down your sending: Errors like 452 and 421 can fire when you send too much at once.
- Read the enhanced code and text: They usually name the exact problem.
If you’re seeing bounced and failed emails often, it’s worth moving to a dedicated SMTP delivery service like SendLayer to handle your outgoing mail. SendLayer is built to be fast, reliable, and scalable, so your emails reach the inbox instead of bouncing. Professional support is on hand to help you resolve any errors that do come up.
Where to See SMTP Error Codes
You’ll find SMTP response codes in your SMTP logs. If you use SendLayer, you can open your email logs and click a failed email to see its error code and message.
If you’re a SendLayer customer and need help understanding an error or fixing it, contact support for advice.
Frequently Asked Questions About SMTP Errors
What is the most common SMTP error?
Error 550 is the most common. It’s a generic delivery failure, usually because the recipient’s mailbox doesn’t exist or the message was rejected as spam. Check the address for typos and make sure your email is authenticated.
What is the difference between 4xx and 5xx SMTP errors?
A 4xx code is a temporary failure, so the server will usually retry on its own. A 5xx code is a permanent failure that needs you to fix something before the email will send.
What is SMTP error 421?
Error 421 means the receiving service is unavailable, often because it’s busy or throttling your connection. The server will normally try again later. If it keeps happening, slow down your sending rate.
What does SMTP error 550 mean?
It’s a permanent failure to deliver the message. The mailbox may not exist, or the message was rejected as spam. Check the recipient’s address and confirm your SPF, DKIM, and DMARC records are set up correctly.
What are enhanced SMTP status codes?
They’re the X.X.X codes (like 5.1.1) defined by RFC 3463. They sit next to the basic three-digit code and give a more specific reason for the result.
How do I fix an SMTP error?
Start with the recipient’s address, then check your email authentication. After that, confirm your sending IP isn’t blacklisted. Reading the enhanced status code and the message text will usually point you to the exact cause.
That’s it! Now you know what SMTP error codes mean.
Next, would you like to learn more about HTTP and API errors? Check out our error library for more information.