The three digits of the reply each have a special significance. The
first digit denotes whether the response is good, bad or incomplete.
An unsophisticated sender-SMTP will be able to determine its next
action (proceed as planned, redo, retrench, etc.) by simply examining
this first digit. A sender-SMTP that wants to know approximately what
kind of error occurred (e.g., mail system error, command syntax error)
may examine the second digit, reserving the third digit for the finest
gradation of information.
There are five values for the first digit of the reply code:
1yz Positive Preliminary reply
The command has been accepted, but the requested action is being held
in abeyance, pending confirmation of the information in this reply.
The sender-SMTP should send another command specifying whether to
continue or abort the action.
(Note: SMTP does not have any commands that allow this type of reply,
and so does not have the continue or abort commands.)
2yz Positive Completion reply
The requested action has been successfully completed. A new request
may be initiated.
3yz Positive Intermediate reply
The command has been accepted, but the requested action is being held
in abeyance, pending receipt of further information. The sender-SMTP
should send another command specifying this information. This reply is
used in command sequence groups.
4yz Transient Negative Completion reply
The command was not accepted and the requested action did not occur.
However, the error condition is temporary and the action may be
requested again. The sender should return to the beginning of the
command sequence (if any). It is difficult to assign a meaning to
"transient" when two different sites (receiver- and sender- SMTPs)
must agree on the interpretation. Each reply in this category might
have a different time value, but the sender-SMTP is encouraged to try
again. A rule of thumb to determine if a reply fits into the 4yz or
the 5yz category (see below) is that replies are 4yz if they can be
repeated without any change in command form or in properties of the
sender or receiver. (E.g., the command is repeated identically and
the receiver does not put up a new implementation.)
5yz Permanent Negative Completion reply
The command was not accepted and the requested action did not occur.
The sender-SMTP is discouraged from repeating the exact request (in
the same sequence). Even some "permanent" error conditions can be
corrected, so the human user may want to direct the sender-SMTP to
reinitiate the command sequence by direct action at some point in the
future (e.g., after the spelling has been changed, or the user has
altered the account status).
The second digit encodes responses in specific categories:
x0z Syntax
These replies refer to syntax errors, syntactically correct commands
that don't fit any functional category, and unimplemented or
superfluous commands.
x1z Information
These are replies to requests for information, such as status or help.
x2z Connections
These are replies referring to the transmission channel.
x3z
Unspecified as yet.
x4z
Unspecified as yet.
x5z Mail system
These replies indicate the status of the receiver mail system
vis-a-vis the requested transfer or other mail system action.
The third digit gives a finer gradation of meaning in each category
specified by the second digit. The list of replies illustrates this.
Each reply text is recommended rather than mandatory, and may even
change according to the command with which it is associated. On the
other hand, the reply codes must strictly follow the specifications
in this section. Receiver implementations should not invent new codes
for slightly different situations from the ones described here, but
rather adapt codes already defined.
For example, a command such as NOOP whose successful execution does
not offer the sender-SMTP any new information will return a 250 reply.
The response is 502 when the command requests an unimplemented
on-site-specific action. A refinement of that is the 504 reply for a
command that is implemented, but that requests an unimplemented
parameter.
The reply text may be longer than a single line; in these cases the
complete text must be marked so the sender-SMTP knows when it can
stop reading the reply. This requires a special format to indicate a
multiple line reply.
The format for multiline replies requires that every line, except the
last, begin with the reply code, followed immediately by a hyphen, "-"
(also known as minus), followed by text. The last line will begin with
the reply code, followed immediately by (SP), optionally some text,
and (CRLF).
For example:
123-First line
123-Second line
123-234 text beginning with numbers
123 The last line
In many cases the sender-SMTP then simply needs to search for the
reply code followed by (SP) at the beginning of a line, and ignore
all preceding lines. In a few cases, there is important data for
the sender in the reply "text". The sender will know these cases
from the current context.
Also see RFC 1893 (Q256321) for Enhanced Status Codes for Delivery
Status Notification (DSN) messages.