Published on 2019-11-07· Updated on 2024-01-25
The author voluntarily contributed this tutorial as a part of Pepipost Write to Contribute program.
SMTP (Simple Mail Transfer Protocol) is used to send emails across the network with the help of a MTA (Mail Transfer Agent). When emails are sent, the response from the client’s SMTP server may return a particular error code. Such response codes might be from one of the five standard classes.
SMTP response codes are updates sent by an SMTP server during the mail delivery process. They are sent in response to commands issued by an SMTP client using a 3-digit format. These numerical codes indicate a status or error pertaining to a message transmission, allowing senders to troubleshoot sending issues.
Status code is differentiated into five categories as follows:
Here’s what the second digit identifies:
The third digit provides more detail and depends on the class and the subject.
This is a success status, which indicates that there is a positive response from the server. This might have more information when the response has its respective subcodes (2XX X.X.X) and response.
This should be treated as a positive remark for delivery. The status code response represents that the email address you are trying to reach is valid.
This status code response is received from the server if there is an issue with authentication. It can be an incorrect username or password or you might be trying to connect to the wrong mail server. You can check if your SMTP access is enabled or not for sending email from your email id or try changing the authentication method.
If you are confident with your username and password and still getting the error, try using SSL/TLS.
This can be considered as a positive response because this status code indicates recipient's MX has successfully received your email but has reverted with null response.
The email has been accepted for delivery but the delivery priority was changed.
This is a success status, which indicates your email has been successfully delivered at recipient's end.
This status code is a temporary blockage for your email delivery. It retries sending those emails automatically. Such blockages might be due to unusual traffic patterns from the sending server IP addresses, emails having characteristics of spam, or recipient’s MX being busy accepting emails.
.
This occurs when a user raises complaints for the emails which have been sent from your mail server.
This occurs when a user raises complaints for the emails which have been sent from your mail servers on a shared IP.
This status code indicates that a high volume of mails has been sent from your IP. i.e., bulk emailing. Stop sending email if you are receiving this status code. Check your email subscription list and make sure you are sending emails to only users who have subscribed.
This status code response indicates your emails are postponed due to low connectivity to MTA, bad tokens within the message, or unusual traffic of emails having PDF files in it.
The recipient's MX is too busy. Try to resend those emails after a few minutes.
This status code is due to excessive traffic or IP data query failure.
Error/Status Code
Description
5.0.0 Address does not exist
Email id is invalid, or it does not exist
5.1.0 Other address status
A problem occurred during the delivery of the message to an email address.
5.1.1 Bad destination mailbox address
The specified ‘from’ address or domain mailbox does not exist (anything after '@').
5.1.2 Bad destination system address
Address does not exist or it is not able to accept mails
5.1.3 Bad destination mailbox address syntax
Invalid or corrupted character in email address
5.1.4 Destination mailbox address ambiguous
Check the spelling of your email address and resend
5.1.5 Destination mailbox address invalid
Mail address may be invalid or it may have spelling mistakes.
5.1.6 Mailbox has moved
Mailbox may be moved to a new location
5.1.7 Bad sender’s mailbox address syntax
Sender's address is invalid syntactically
5.1.8 Bad sender’s system address
Sender's system in the address does not exist or is incapable of accepting messages.
5.2.1 Mailbox disabled, not accepting messages
The mailbox exists, but is not accepting messages
5.2.2 Mailbox full
Try increasing your mailbox space capacity
5.2.3 Attachment is large
The message could not be delivered because it had larger attachment than the recipient's email system allows
5.2.4 Mailing list expansion problem
There is a problem saving the email address.
5.3.0 Other or undefined mail system status
The destination system exists and normally accepts mail, but something about the system has caused the bounce back
5.3.1 Mail system full
The clients’ mail system is not able to accept emails
5.3.2 System not accepting network messages
You need to whitelist the email address through your administrator as it has been blocked.
5.3.3 System not capable of selected features
Selected features specified for the message are not supported by the destination system
5.3.4 Message too big for system
Message character limit has exceeded
5.4.0 Other or undefined network or routing status
Contact the sender's email or network support team as there was a network issue, possibly with the sender's email server
5.4.1 No answer from the host
Configuration issue at recipient's server. You can send again once the issue is resolved at the recipient's end
5.4.2 Bad connection
Unable to connect or delay in connection
5.4.3 Routing server failure
Error is generated by the sender's server and you need to contact your ISP/ESP.
5.4.4 Unable to route
When email id or hosts provided is invalid.
5.4.5 Network congestion
Multiple connections on a single channel.
5.4.6 Routing loop detected
Send a message to the same PMTA you have sent.
5.4.7 Delivery time expired
Mail is queued for 2-3 days and thereafter it’s removed by returning the message “ Delivery time expired”
5.5.0 Other or undefined protocol status
The message could not be delivered because the mailbox is unavailable
5.5.1 Invalid command
Out of sequence or unsupported command used while sending mail
5.5.2 Syntax error
Unable to interpret the command due to wrong syntax or it is unrecognized.
5.5.3 Too many recipients
Number of recipients is greater than the set limit.
5.5.4 Invalid command arguments
The arguments were out of range or represented unrecognized features
5.5.5 Wrong protocol version
Sending and receiving email systems are incompatible
5.6.1 Media not supported
Media is not supported by protocol or the system that is forwarding the mail.
5.6.2 Conversion required and prohibited
Message should be converted before it is sent or else it will not be delivered.
5.6.3 Conversion required but not supported
The message content must be converted in order to be forwarded but such conversion is not possible or is not practical by a host in the forwarding path. (This condition may result when an ESMTP gateway supports 8bit transport but is not able to downgrade the message to 7 bit as required for the next hop)
Below is a simple example for sending email using telnet. You can check the response code after every command.
[vikram.sahu@Nl587_wifi ~]$ telnet smtp.pepipost.com 587
Trying 138.197.56.58...
#-----------CONNECTION ESTABLISHMENT---------
Connected to smtp.pepipost.com.
Escape character is '^]'.
220 ESMTP SMTPNY-LB2 Ready
#-----------EHLO or HELO---------------
EHLO pepipost.com
250-smtpbny-lb2.pepipost.com
250-PIPELINING
250-SIZE 50000000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
#------------MAIL-----------------
mail from: [email protected]
250 2.1.0 Ok [success output]
#------------RCPT-----------------
# rcpt to: [email protected]
250 2.1.5 Ok [success output]
#------------DATA-----------------
# data # type this to pass input of email body
354 End data with <CR><LF>.<CR><LF> [success output ]
This is test mail from your local host server #mail body
. # dot(.) for completing the mail body
#------------NOOP-----------------
250 2.0.0 Ok: queued as E2R572042D75 [success output]
quit # quit from the telnet command prompt
#-----------QUIT------------------
221 2.0.0 Bye
Connection closed by foreign host.
The above example is further detailed below to easily understand the status code.
CONNECTION ESTABLISHMENT
S: 220
E: 554
EHLO or HELO
S: 250
E: 504, 550
S: 250
E: 552, 451, 452, 550, 553, 503
RCPT
S: 250, 251 (but see section 3.4 for discussion of 251 and 551)
E: 550, 551, 552, 553, 450, 451, 452, 503, 550
DATA
I: 354 -> data -> S: 250
E: 552, 554, 451, 452
E: 451, 554, 503
RSET
S: 250
VRFY
S: 250, 251, 252
E: 550, 551, 553, 502, 504
EXPN
S: 250, 252
E: 550, 500, 502, 504
HELP
S: 211, 214
E: 502, 504
NOOP
S: 250
QUIT
S: 221
Hope this tutorial helped you!
We are a community of email enthusiasts. If you have further queries, drop an email to [email protected] and we would be happy to help you.
Excited about the latest in Bulk Email Marketing! Check out this insightful blog on Gmail and Yahoo updates in the email marketing landscape.
Explore the Blog - Here
Stay ahead of the game with valuable insights on optimizing your email campaigns! 📬
Code | Description |
---|---|
101 | Unable to connect to server |
111 | Connection refused |
Code | Description |
---|---|
200 | System status message |
214 | A response to the HELP command |
220 | The server is ready |
221 | The mail communication channel is getting closed |
250 | Requested mail action okay completed |
251 | mail will be forwarded because server was not able to find user on local |
252 | Cannot verify the user, but it will try to deliver the message anyway |
Code | Description |
---|---|
354 | Start adding mail input |
420 | Timeout connection problem |
---|---|
421 | Service is unavailable due to a connection problem |
422 | The recipient’s mailbox has exceeded its storage limit |
431 | Not enough space on the disk |
432 | Recipient’s incoming mail queue has been stopped |
441 | The recipient’s server is not responding |
442 | The connection was dropped during the transmission |
446 | The maximum hop count was exceeded for the message |
447 | Message timed out because of issues concerning the incoming server |
449 | Routing error |
450 | User’s mailbox is unavailable |
451 | Aborted – Local error in processing |
452 | Too many emails sent or too many recipients |
471 | An error of your mail server |
Code | Description |
---|---|
500 | Syntax error |
501 | Syntax error in parameters or arguments |
503 | Bad sequence of commands, or requires authentication |
504 | Command parameter is not implemented |
510 / 511 | Bad email address |
512 | Host server for the recipient’s domain name cannot be found in DNS |
513 | Address type is incorrect |
523 | Size of your mail exceeds the server limits |
530 | Authentication problem |
541 | The recipient address rejected your message |
550 | Non-existent email address |
551 | User not local or invalid address – relay denied |
552 | Exceeded storage allocation |
553 | Mailbox name invalid |
554 | Transaction has failed |
This is Success status which indicates that there is a positive response from the server which might have more information when the response has it respected subcodes (2XX X.X.X) and response.
This should be treated as a positive remark for delivery. Since the status code response represents that the email address you are trying to reach is valid.
If there is an issue with authentication this status code response is received from the server. it can be an incorrect password or username or you might be trying the connect to the wrong mail server. you can check your SMTP access is enabled or not for sending email from your email id or try changing the authentication method.
If you are confident with your username and password and still getting the error try using SSL/TLS.
This can be considered as a positive response because this status code response indicates recipient's MX as successfully received your email but has reverted with null response.
The email has been accepted for delivery but the delivery priority was changed. the new priroty will available after the status code besides the response.
This is success status which indicates your email has been successfully delivered at recipient's end without any issue.
This status code are temporary blockage for your emails delivery which should retry sending those emails automatically. This blockage might be due to unusual traffic patterns from sending server IP address, emails having characteristics of spam or recipients MX is too busy accepting emails.
This status code errors when user raises complaints for the emails which has been sent from our mail server.
This status code errors when user raises complaints for the emails which has been sent from our mail servers on a shared IP.
This status code indicates that high volume of mails has been sent from your IP. ie, bulk emailing. Don't send email if you are receiving this status code
check for email subscription list and make sure you are sending emails to user who as subsribed.
This status code response indicates your emails are postponed due to low connectivity percentage to MTA, Bad tokens within the message or unusal traffic of emails having PDF files in it.
The recipient's MX is too busy. Try to resend those emails after few mintues
This Status code is due to excessive traffic or IP data query failure.
Error/Status Code | Description |
---|---|
5.0.0 Address does not exist | Email id invalid or does not exists |
5.1.0 Other address status | A problem occurred during the delivery of this message to this email address. |
5.1.1 Bad destination mailbox address | Specified from address or domain mailbox does not exists (anything after '@'). |
5.1.2 Bad destination system address | Address does not exists or not able to accept mails |
5.1.3 Bad destination mailbox address syntax | Invalid or corrupted character in email address |
5.1.4 Destination mailbox address ambiguous | Check your spelling of email address and resend |
5.1.5 Destination mailbox address invalid | Mail address may be invailid or may have spelling mistakes. |
5.1.6 Mailbox has moved | Mailbox may be moved to new location |
5.1.7 Bad sender’s mailbox address syntax | Sender's address is invalid syntactically |
5.1.8 Bad sender’s system address | Sender's system in the address does not exist or is incapable of accepting. |
5.2.0 Other or undefined mailbox status | This error is usually return for which it has class (ie. 1xx,2xx,3xx,4xx,5xx). |
5.2.1 Mailbox disabled, not accepting messages | Some changes need to made mandatory for resending mail |
5.2.2 Mailbox full | Try increasing your emailbox space capacity |
5.2.3 Message length exceeds administrative limit. | The Size of your email has exceeded its limit try removing unwanted text. |
5.2.4 Mailing list expansion problem | mailbox saves your email address to whom you are sending or receiving emails, there is problem saving that email addresses. |
5.3.0 Other or undefined mail system status | Mail has been accepted normally |
5.3.1 Mail system full | mail system at client's is not able accept emails |
5.3.2 System not accepting network messages | you need to whitelist the email address through your administrator it has been blocked. |
5.3.3 System not capable of selected features |
|
5.3.4 Message too big for system | Message character limit has exceeded |
5.4.0 Other or undefined network or routing status | Mail accepted routing status is not available |
5.4.1 No answer from host | Configuration issue at recipient's server. you can send again once the issue is resolved at recipient's end |
5.4.2 Bad connection | unable to connected or delay in connection |
5.4.3 Routing server failure | Error is generated by the sender's server, you need to contact your ISP/ESP. |
5.4.4 Unable to route | When emailid or hosts provided is invalid. |
5.4.5 Network congestion | Multiple connection on single channel. |
5.4.6 Routing loop detected | Sending message to same PMTA from you have sent. |
5.4.7 Delivery time expired | Mail is queued for 2-3 days after that it is removed by returning above messagae |
5.5.0 Other or undefined protocol status | Something went wrong with protocol while delivering mail which can be well expressed with other status code. |
5.5.1 Invalid command | out of sequence or unsupported command used while sending mail |
5.5.2 Syntax error | unable to interprete the command due wrong syntax or it is unrecognized. |
5.5.3 Too many recipients | Number of recipient is greater than the amount of recipient deliver by protocol |
5.5.4 Invalid command arguments | the arguments were out of range or represented unrecognized features |
5.5.5 Wrong protocol version | protocol version is mis-match which can't be solved at one go. |
5.6.0 Other or undefined media error | Issue with content of the message which cannot be delivered. |
5.6.1 Media not supported | Media is not supported by protocol or the system who is going to formard the mail. |
5.6.2 Conversion required and prohibited | Message should be converted before it is send/delivery else it will be not delivered. |
5.6.3 Conversion required but not supported | Message must be converted in order to be forwared but partically it is not possible. |
5.6.4 Conversion with loss performed | This is Warning to the sender that While conversion data may be lost. |
5.6.5 Conversion failed | Message conversion was unsuccessful |
5.7.0 Other or undefined security status | Something went wrong while validating authentication which can be expressed with other status code. |
5.7.1 Delivery not authorized, message refused | Authentication was not successful due to which email was not sent. |
5.7.2 Mailing list expansion prohibited | Sending mail is not allowed to particular recipient. |
5.7.3 Security conversion required but not possible | Conversion was required to send mail securely which is not possible. |
5.7.4 Security features not supported | Authentication not supported at delivery end. |
5.7.5 Cryptographic failure | Unable to decrypt the message because the key was wrong or invalid. |
5.7.6 Cryptographic algorithm not supported | Unable to decrypt the message because alogrithm was not supported. |
5.7.7 Message integrity failure | The message is corrupted or altered |
Below is an simple example for sending email using telnet and you can check the response code after every command.
[vikram.sahu@Nl587_wifi ~]$ telnet smtp.pepipost.com 587 Trying 138.197.56.58... #-----------CONNECTION ESTABLISHMENT--------- Connected to smtp.pepipost.com. Escape character is '^]'. 220 ESMTP SMTPNY-LB2 Ready #-----------EHLO or HELO--------------- EHLO pepipost.com 250-smtpbny-lb2.pepipost.com 250-PIPELINING 250-SIZE 50000000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN #------------MAIL----------------- mail from: [email protected] 250 2.1.0 Ok [success output] #------------RCPT----------------- # rcpt to: [email protected] 250 2.1.5 Ok [success output] #------------DATA----------------- # data # type this to pass input of email body 354 End data with <CR><LF>.<CR><LF> [success output ] This is test mail from your local host server #mail body . # dot(.) for completing the mail body #------------NOOP----------------- 250 2.0.0 Ok: queued as E2R572042D75 [success output] quit # quit from the telnet command prompt #-----------QUIT------------------ 221 2.0.0 Bye Connection closed by foreign host.
I have segregated the above example in below structure where you can easily understand the status code.
CONNECTION ESTABLISHMENT S: 220 E: 554 EHLO or HELO S: 250 E: 504, 550 MAIL S: 250 E: 552, 451, 452, 550, 553, 503 RCPT S: 250, 251 (but see section 3.4 for discussion of 251 and 551) E: 550, 551, 552, 553, 450, 451, 452, 503, 550 DATA I: 354 -> data -> S: 250 E: 552, 554, 451, 452 E: 451, 554, 503 RSET S: 250 VRFY S: 250, 251, 252 E: 550, 551, 553, 502, 504 EXPN S: 250, 252 E: 550, 500, 502, 504 HELP S: 211, 214 E: 502, 504 NOOP S: 250 QUIT S: 221
Netcorecloud's toolkit is the solution to all your email problems.
Netcore connects & unifies your data across all sources, connects to your marketing channels and provides you with control over AI Powered automation and personalization.
Vikram Sahu 🦉
Developer Evangelist, Pepipost
💻 Senior Software engineer → 🥑 Developer Relations guy → 🤓 Building Community for Email Geeks 🎟 → Speaker 🎙