Understanding SMTP return codes

Jali Posts: 1,769 F-Secure Employee

Applies to: Messaging Security Gateway 8.x


Simple Mail Transfer Protocol (SMTP) is responsible for sending out email messages. Therefore, if you get an SMTP error message, it means that for some reason your emails were not sent. It is very important to understand why this has happened so that you can fix the problem. All SMTP codes consist of three digits, e.g. 550, 221, 354, etc. However, not all of them indicate an error. To understand how these codes work, you have to know that each digit (the first, the second and the third) have a specific meaning of their own.


SMTP return codes


The first digit indicates whether your command was accepted and processed. It can have one of the following five values:

  1. Mail server has accepted the command but does not yet take any action. A confirmation message is required.
  2. Mail server has completed the task successfully without errors.
  3. Mail server has understood the request, but requires further information to complete it.
  4. Mail server has encountered a temporary failure. If the command is repeated without any change, it might be completed. Try again, it may help.
  5. Mail server has encountered a fatal error. Your request cannot be processed.

As you can see, the codes that start with values 4 and 5 are the ones that indicate that your message will not be sent until you find and fix the problem.


The second digit can have one of the following values:

  1. Syntax error
  2. Information reply, for example to HELP request
  3. Refers to the connection status
  4. Refers to the status of the mail server

Values 3 and 4 are not used.


The third (last) digit of the code indicates the details of the mail transferring status. The following lists the most important SMTP error codes:

421 Service not available, closing transmission channel
(This may be a reply to any command if the service knows it must shut down.)
450 Requested mail action not taken: mailbox unavailable
(E.g. mailbox busy)
451 Requested action aborted: local error in processing
452 Requested action not taken: insufficient system storage
500 Syntax error, command unrecognized
(This may include errors, such as 'command line too long')
501 Syntax error in parameters or arguments
502 Command not implemented
503 Bad sequence of commands
504 Command parameter not implemented
550 Requested action not taken: mailbox unavailable
(E.g. mailbox not found, no access)
551 User not local; please try
552 Requested mail action aborted: exceeded storage allocation
553 Requested action not taken: mailbox name not allowed
(E.g. mailbox syntax incorrect)
554 Transaction failed


Other codes that provide you with helpful information about what is happening with the email messages are as follows:

211 System status, or system help reply
214 Help message
(Information on how to use the receiver or the meaning of a particular non-standard command. This reply is useful only to a human user.)
220 Service ready
221 Service closing transmission channel
250 Requested mail action okay, completed
251 User not local; will forward to
354 Start mail input; end with a dot (.)