About SMTP error messages

You can find out why an email wasn't transmitted successfully by reviewing the Simple Mail Transport Protocol (SMTP) error messages. SMTP is a protocol for email format and transmission on the Internet, and the error messages generated by email services are helpful tools for diagnosing and troubleshooting email problems.

If your inbound or outbound messages are bouncing back to their senders, inspect the bounced messages for SMTP reply codes generated by the message security service (see below) and apply the troubleshooting principles described below.

Sample SMTP error message

The example below shows an error message from a mail server. The code and status code is meant to be read by machines and the text message is meant for human consumption.

The message tells us why the error occurred and what actions we can take to resolve the error. 

SMTP reply codes

The SMTP reply codes refer to specific to components of the service, and can indicate things like:

  • The intended recipient was not registered with the service

  • The message was identified as spam or virus infected.

  • The sender’s domain was identified as a source of spam.

  • The message violated some aspect of your company’s email policy, for example, by including credit-card numbers or prohibited language.

Error code structure

Although the error codes are primarily intended to be read by machines, it helps to understand what the codes and status-codes refer to when you are troubleshooting failed email transmissions.

All SMTP error messages follow this basic format with each digit in the error codes and status-codes denoting a different level of detail:

Reply code Status code Reply text
xyz x.y.z text string

Reply code

Email transition error replies are all prefixed by either a 4yz or a 5yz code that denotes the type of error:

  • 4yz = transient negative completion—no action is necessary; the sender will retry

  • 5yz = permanent negative completion—action is required.

The second digit in the code denotes the response category:

  • x0z = syntax errors

  • x1z = replies to information requests

  • x2z = transmission channel errors

  • x3z = unspecified

  • x4z = unspecified

  • x5z = mail system status

The third digit in the code gives a finer gradation of meaning in each category specified by the second digit.

Status code

The status codes provide additional information. Each digit in these codes carry their own precise meaning: the first digit denotes the code class, the second digit indicates the subject, and the third digit provides more detail.

  • x.0.z = unidentified

  • x.1.z = addressing status

  • x.2.x = mailbox status

  • x.3.x = mail system status

  • x.4.x = network and routing status

  • x.5.x = mail delivery protocol status

  • x.6.x = message content or media status

  • x.7.x = security or policy status

Text string

The last field contains a text string that describes the error in human readable text, unlike the codes, which are meant to be used by programs.

Example
421, "4.4.5", Server busy, try again later

Reply code 421 indicates this is a transient error pertaining to the transmission channel that contains an informational request.

Status code 4.4.5 indicates that this is a transient network and routing issue affecting the mail delivery protocol status.

 

To learn more about SMTP reply and status codes, take a look at RFC 5321 and RFC 1893, and review the SMTP error reference.

Was this article helpful?
How can we improve it?