Understanding SMTP return codes
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:
- Mail server has accepted the command but does not yet take any action. A confirmation message is required.
- Mail server has completed the task successfully without errors.
- Mail server has understood the request, but requires further information to complete it.
- Mail server has encountered a temporary failure. If the command is repeated without any change, it might be completed. Try again, it may help.
- 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:
- Syntax error
- Information reply, for example to HELP request
- Refers to the connection status
- 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)
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|
(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.)
|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 (.)|