SMTP
Click on the red underlined text to get to the source
...
The objective of the Simple Mail Transfer Protocol (SMTP) is to
transfer mail reliably and efficiently.
...
...
SMTP is independent of the particular transmission subsystem and
requires only a reliable ordered data stream channel ...
... transport mail
across networks, usually referred to as "SMTP mail relaying" (see
section 3.8). A network consists of the mutually-TCP ...
... TCP transport-level protocol. Using
SMTP, a process can transfer mail to another process on the same
network or to some other network ...
... The SMTP Model ...
...
The SMTP design can be pictured as:
...
... +----------+ +----------+
+------+ | | | |
| User |<-->| | SMTP | |
+------+ | Client- |Commands/Replies| Server- |
...
... +------+ | Client- |Commands/Replies| Server- |
+------+ | SMTP |<-------------->| SMTP | +------+
| File |<-->| | and Mail | |<-->| File |
...
... Client- |Commands/Replies| Server- |
+------+ | SMTP |<-------------->| SMTP | +------+
| File |<-->| | and Mail | |<-->| File |
|System| | | | | |System|
...
... |System| | | | | |System|
+------+ +----------+ +----------+ +------+
SMTP client SMTP server
...
...
When an SMTP client has a message to transmit, it establishes a two-
way transmission channel ...
... client has a message to transmit, it establishes a two-
way transmission channel to an SMTP server. The responsibility of an
SMTP client ...
... channel to an SMTP server. The responsibility of an
SMTP client is to transfer mail messages to one or more SMTP servers ...
... SMTP client is to transfer mail messages to one or more SMTP servers,
or report its failure to do so.
...
... document. In some cases, the domain name(s) transferred to, or
determined by, an SMTP client will identify the final destination(s)
...
... destination(s)
of the mail message. In other cases, common with SMTP clients
associated with implementations of the POP ...
... IMAP [6]
protocols, or when the SMTP client is inside an isolated transport
service environment, the domain name ...
... destination through which all mail messages are to be
relayed. SMTP clients that transfer all traffic, regardless of the
...
... initially cannot be completed, may otherwise conform to this
specification but are not considered fully-capable. Fully-capable
SMTP implementations, including the relays used by these less capable
ones, and their destinations, are expected to support all of the
...
... domain name, determines the identity of an SMTP server to which a
copy of a message is to be transferred, and then performs that
transfer, is covered by this document. To effect a mail transfer to
...
... copy of a message is to be transferred, and then performs that
transfer, is covered by this document. To effect a mail transfer to
an SMTP server, an SMTP client establishes a two-way transmission
...
... transfer, is covered by this document. To effect a mail transfer to
an SMTP server, an SMTP client establishes a two-way transmission
channel ...
... client establishes a two-way transmission
channel to that SMTP server. An SMTP client determines the address ...
... address
of an appropriate host running an SMTP server by resolving a
destination domain name ...
...
An SMTP server may be either the ultimate destination or an
intermediate "relay" (that is, it may assume the role ...
... destination or an
intermediate "relay" (that is, it may assume the role of an SMTP
client after receiving ...
... gateway" (that is, it may
transport the message further using some protocol other than SMTP).
SMTP commands are generated by the SMTP ...
... transport the message further using some protocol other than SMTP).
SMTP commands are generated by the SMTP client and sent to the SMTP
server ...
... SMTP commands are generated by the SMTP client and sent to the SMTP
server. SMTP replies are sent from the SMTP server to the SMTP ...
... SMTP client and sent to the SMTP
server. SMTP replies are sent from the SMTP server to the SMTP
...
... client and sent to the SMTP
server. SMTP replies are sent from the SMTP server to the SMTP
client ...
... SMTP
server. SMTP replies are sent from the SMTP server to the SMTP
client in response to the commands.
...
... In other words, message transfer can occur in a single connection
between the original SMTP-sender and the final SMTP-recipient, or can
...
... between the original SMTP-sender and the final SMTP-recipient, or can
occur in a series of hops through intermediary systems. In either
case, a formal handoff ...
... Once the transmission channel is established and initial handshaking
completed, the SMTP client normally initiates a mail transaction.
...
... Commands specifying the sender or recipients may include server-
permitted SMTP service extension requests as discussed in section
2.2. The dialog is purposely lock-step, one-at-a-time, although this
can be modified by mutually-agreed extension requests such as command
pipelining ...
... connection be shut down or may initiate other mail
transactions. In addition, an SMTP client may use a connection to an
...
... client may use a connection to an
SMTP server for ancillary services such as verification of email
addresses ...
... not connected to the same transport service, transmission occurs via
one or more relay SMTP servers. An intermediate host that acts as
either an SMTP ...
... SMTP servers. An intermediate host that acts as
either an SMTP relay or as a gateway into some other transmission
environment is usually selected through the use of the domain name
service ...
... extensions" model that permits the client and server to agree to
utilize shared functionality beyond the original SMTP requirements.
The SMTP ...
... SMTP requirements.
The SMTP extension mechanism defines a means whereby an extended SMTP
client and server ...
... requirements.
The SMTP extension mechanism defines a means whereby an extended SMTP
client and server may recognize each other, and the server can inform
...
...
Contemporary SMTP implementations MUST support the basic extension
mechanisms. For instance, servers MUST support the EHLO command even
...
... EHLO rather than HELO. (However, for
compatibility with older conforming implementations, SMTP clients and
servers MUST support the original HELO mechanisms as a fallback.)
Unless the different characteristics of HELO must be identified for
...
...
SMTP is widely deployed and high-quality implementations have proven
to be very robust. However, the Internet community now considers
...
... a registry of SMTP service extensions,
...
... additional parameters to the SMTP MAIL and RCPT commands, and
...
...
SMTP's strength comes primarily from its simplicity. Experience with
many protocols has shown that protocols with few options tend towards
ubiquity, whereas protocols with many options tend towards obscurity.
...
... and interoperability costs. In many cases, the cost of extending the
SMTP service will likely outweigh the benefit.
...
... The IANA maintains a registry of SMTP service extensions. A
corresponding EHLO keyword value is associated with each extension.
...
... the textual name of the SMTP service extension;
...
... any additional SMTP verbs associated with the extension
(additional verbs will usually be, but are not required to be, the
same as the EHLO keyword ...
... a description of how support for the extension affects the
behavior of a server and client SMTP; and,
...
... EHLO keyword value starting with an upper or lower
case "X" refers to a local SMTP service extension used exclusively
through bilateral agreement. Keywords beginning with "X" MUST NOT be
...
... IESG-approved
experimental SMTP service extension registered with IANA. A
conforming server MUST NOT offer non-"X"-prefixed keyword values that
...
...
SMTP transports a mail object. A mail object contains an envelope
and content.
...
...
The SMTP envelope is sent as a series of SMTP protocol units
(described in section 3). It consists of an originator address ...
...
The SMTP envelope is sent as a series of SMTP protocol units
(described in section 3). It consists of an originator address (to
...
...
The SMTP content is sent in the SMTP DATA protocol unit and has two
parts: the headers and the body. If the content conforms to other
...
... In RFC 821std10(-> 2821prop), the two hosts participating in an SMTP transaction were
described as the "SMTP ...
... described as the "SMTP-sender" and "SMTP-receiver". This document
has been changed to reflect current industry terminology and hence
...
... receiver". This document
has been changed to reflect current industry terminology and hence
refers to them as the "SMTP client" (or sometimes just "the client")
...
... client" (or sometimes just "the client")
and "SMTP server" (or just "the server"), respectively. Since a
given host may act both as server and client ...
... 821std10(-> 2821prop) was
published and, where convenient, is used in this specification. In
particular, SMTP servers and clients provide a mail transport service
...
... DNS terminology [22]) are
restricted for SMTP purposes to consist of a sequence of letters,
digits, and hyphens drawn from the ASCII character set [1 ...
...
SMTP sessions are stateful, with both parties carefully maintaining a
common view of the current state ...
...
SMTP commands and, unless altered by a service extension, message
data, are transmitted in "lines". Lines consist of zero or more data
...
... problems in mail implementations and applications that use the mail
system as a tool. SMTP client implementations MUST NOT transmit
these characters except when they are intended as line terminators
...
...
This specification makes a distinction among four types of SMTP
systems, based on the role those systems play in transmitting ...
... transmitting
electronic mail. An "originating" system (sometimes called an SMTP
originator) introduces mail into the Internet or, more generally,
...
... into a transport service environment. A "delivery" SMTP system is
one that receives mail from a transport service environment and
...
... which a mail user agent is expected to subsequently access. A
"relay" SMTP system (usually referred to just as a "relay") receives
mail from an SMTP client ...
... "relay" SMTP system (usually referred to just as a "relay") receives
mail from an SMTP client and transmits it, without modification to
the message data ...
... the message data other than adding trace information, to another SMTP
server for further relaying or for delivery.
...
...
A "gateway" SMTP system (usually referred to just as a "gateway")
receives mail from a client system ...
... gateway
system perform transformations to the message that are not permitted
to SMTP relay systems. For the purposes of this specification,
firewalls that rewrite addresses ...
... addresses should be considered as gateways,
even if SMTP is used on both sides of them (see [11]).
...
...
SMTP commands and replies have a rigid syntax. All commands begin
with a command verb. All Replies begin with a three digit numeric
code. In some commands and replies, arguments MUST follow the verb
...
... and extension name keywords) are not case sensitive, with the sole
exception in this specification of a mailbox local-part (SMTP
Extensions may explicitly specify case-sensitive elements). That is,
a command verb, an argument value other than a mailbox ...
... mailbox local-part. The local-part of a mailbox
MUST BE treated as case sensitive. Therefore, SMTP implementations
MUST take care to preserve the case of mailbox local-parts. Mailbox ...
...
A few SMTP servers, in violation of this specification (and RFC 821std10(-> 2821prop))
require that command verbs be encoded by clients ...
... right justified in an octet with the high order bit cleared to zero.
More specifically, the unextended SMTP service provides seven bit
transport ...
... bit
transport only. An originating SMTP client which has not
successfully negotiated an appropriate extension with a particular
...
... high-order
bit of octets. If such messages are transmitted in violation of this
rule, receiving SMTP servers MAY clear the high-order bit or reject
the message as invalid. In general, a relay SMTP ...
... SMTP servers MAY clear the high-order bit or reject
the message as invalid. In general, a relay SMTP SHOULD assume that
the message content it has received is valid and, assuming that the
...
... delivery of a
severely garbled message to the recipient. Delivery SMTP systems MAY
reject ("bounce") such messages rather than deliver them. No sending
SMTP ...
... SMTP systems MAY
reject ("bounce") such messages rather than deliver them. No sending
SMTP system is permitted to send envelope commands in any character
set other than US-ASCII; receiving ...
... Eight-bit message content transmission MAY be requested of the server
by a client using extended SMTP facilities, notably the "8BITMIME"
extension [20 ...
... extension [20]. 8BITMIME SHOULD be supported by SMTP servers.
However, it MUST not be construed as authorization to transmit
...
... The SMTP Procedures: An Overview ...
...
This section contains descriptions of the procedures used in SMTP:
session initiation, the mail transaction ...
...
SMTP server implementations MAY include identification of their
software and version information in the connection ...
... after the 220 code, a practice that permits more efficient isolation
and repair of any problems. Implementations MAY make provision for
SMTP servers to disable the software and version announcement where
it causes security concerns ...
...
The SMTP protocol allows a server to formally reject a transaction
while still allowing the initial connection ...
... the connection and SHOULD respond to any intervening commands with
"503 bad sequence of commands". Since an attempt to make an SMTP
connection to such a system is probably in error, a server returning
...
... service extensions and requests that the server provide a list of the
extensions it supports. Older SMTP systems which are unable to
support service extensions and contemporary clients ...
... discussion of error reporting). If accepted, the SMTP server returns
a 250 OK reply. If the mailbox specification is not acceptable for
...
...
The optional <mail-parameters> are associated with negotiated SMTP
service extensions (see section 2.2).
...
... mailbox and domain, always surrounded by "<" and ">"
brackets) identifying one recipient. If accepted, the SMTP server
returns a 250 OK reply and stores the forward-path. If the recipient
is known not to be a deliverable address ...
... returns a 250 OK reply and stores the forward-path. If the recipient
is known not to be a deliverable address, the SMTP server returns a
550 reply, typically with a string such as "no such user - " and the
mailbox name ...
... hosts and the destination mailbox, however, contemporary SMTP clients
SHOULD NOT utilize source routes ...
... hosts or systems. These restrictions make a
server useless as a relay for clients that do not support full SMTP
functionality. Consequently, restricted-capability clients MUST NOT
...
... functionality. Consequently, restricted-capability clients MUST NOT
assume that any SMTP server on the Internet can be used as their mail
processing (relaying) site. If a RCPT command appears without a
...
... MAIL command, the server MUST return a 503 "Bad sequence of
commands" response. The optional <rcpt-parameters> are associated
with negotiated SMTP service extensions (see section 2.2).
...
...
If accepted, the SMTP server returns a 354 Intermediate reply and
considers all succeeding lines up to but not including the end of
mail data indicator to be the message text. When the end of text is
...
... considers all succeeding lines up to but not including the end of
mail data indicator to be the message text. When the end of text is
successfully received and stored the SMTP-receiver sends a 250 OK
reply.
...
... channel, the end of
mail data must be indicated so that the command and reply dialog can
be resumed. SMTP indicates the end of the mail data by sending a
line containing only a "." (period or full stop). A transparency
procedure is used to prevent this from interfering with the user's
...
... The end of mail data indicator also confirms the mail transaction and
tells the SMTP server to now process the stored recipients and mail
data. If accepted, the SMTP server returns a 250 OK reply. The DATA
...
... tells the SMTP server to now process the stored recipients and mail
data. If accepted, the SMTP server returns a 250 OK reply. The DATA
command can fail at only two points in the protocol exchange:
...
... memo header items such as Date, Subject, To, Cc, From. Server SMTP
systems SHOULD NOT reject messages based on perceived defects in the
RFC 822std11(-> 2822prop) ...
... security) considerations argue against exposure
of the "final" address through the SMTP protocol as a side-effect of
the forwarding activity. This may be especially important when the
...
...
SMTP server implementations that support the 251 and/or 551 reply
codes are strongly encouraged to provide configuration mechanisms so
that sites which conclude that they would undesirably disclose
...
... domain addresses that are usable
in SMTP RCPT commands. Consequently, if an address implies delivery
...
... FQDNs) are permitted
when domain names are used in SMTP. In other words, names that can
be resolved to MX RRs or A RRs ...
... Internet mail system unnecessary. Many historical problems with
their interpretation have made their use undesirable. SMTP clients
SHOULD NOT generate explicit source routes ...
... SHOULD NOT generate explicit source routes except under unusual
circumstances. SMTP servers MAY decline to act as mail relays or to
accept addresses that specify source routes ...
... source routes. When route information
is encountered, SMTP servers are also permitted to ignore the route
information and simply send to the final destination ...
... routing to resolve any problems. If source
routes are stripped, this practice will cause failures. This is one
of several reasons why SMTP clients MUST NOT generate invalid source
routes or depend on serial resolution of names.
...
... server may accept or reject the task of relaying the mail in the same
way it accepts or rejects mail for a local user. If it accepts the
task, it then becomes an SMTP client, establishes a transmission
channel ...
... client, establishes a transmission
channel to the next SMTP server specified in the DNS (according to
the rules in section 5), and sends it the mail. If it declines to
...
... arrangements to send all messages to a single server for processing
and subsequent distribution. SMTP, as specified here, is not ideally
suited for this role, and work is underway on standardized mail
submission protocols ...
...
It is important to note that MX records can point to SMTP servers
which act as gateways into other environments, not just SMTP ...
... SMTP servers
which act as gateways into other environments, not just SMTP relays
and final delivery systems; see sections 3.8 and 5.
...
...
If an SMTP server has accepted the task of relaying the mail and
later finds that the destination is incorrect or that the mail cannot
...
... host that first determines that delivery cannot be
accomplished. Of course, SMTP servers MUST NOT send notification
messages about problems transporting notification messages. One way
...
...
As discussed in section 2.4.1, a relay SMTP has no need to inspect or
act upon the headers or body of the message data ...
... While the relay function discussed above operates within the Internet
SMTP transport service environment, MX records or various forms of
explicit routing ...
... transport service environment, MX records or various forms of
explicit routing may require that an intermediate SMTP server perform
a translation function between one transport service and another. As
...
... headers or provide similar functionality with a different
syntax, but some of these mail systems do not have an equivalent to
the SMTP envelope. Therefore, when a message leaves the Internet
environment, it may be necessary to fold the SMTP envelope
...
... the SMTP envelope. Therefore, when a message leaves the Internet
environment, it may be necessary to fold the SMTP envelope
information into the message header. A possible solution would be to
...
... create new header fields to carry the envelope information (e.g.,
"X-SMTP-MAIL:" and "X-SMTP-RCPT:"); however, this would require
changes in mail programs in foreign environments and might risk
...
... header fields to carry the envelope information (e.g.,
"X-SMTP-MAIL:" and "X-SMTP-RCPT:"); however, this would require
changes in mail programs in foreign environments and might risk
disclosure of private information (see section 7.2).
...
... try to "fix" a Received: line. As another consequence of trace
fields arising in non-SMTP environments, receiving systems MUST NOT
reject mail based on the format of a trace ...
... gateway SHOULD accept all valid address
formats in SMTP commands and in RFC 822std11(-> 2822prop) headers, and all valid ...
... subject to the same rules for
handling source routes as those described for other SMTP systems in
section 3.3.
...
... foreign mail environment are delivered to the return path from the
SMTP envelope, not to the sender listed in the "From:" field (or
other fields) of the RFC 822std11(-> 2822prop) ...
...
An SMTP server MUST NOT intentionally close the connection except:
...
... After detecting the need to shut down the SMTP service and
returning a 421 response code. This response code ...
...
An SMTP server which is forcibly shut down via external means SHOULD
attempt to send a line containing a 421 response code to the SMTP ...
... SMTP server which is forcibly shut down via external means SHOULD
attempt to send a line containing a 421 response code to the SMTP
client before exiting. The SMTP ...
... The SMTP Specifications ...
... SMTP Commands ...
...
The SMTP commands define the mail transfer or the mail system
function requested by the user ...
... mail system
function requested by the user. SMTP commands are character strings
terminated by <CRLF>. The commands themselves are alphabetic
...
... CRLF>
otherwise. (In the interest of improved interoperability, SMTP
receivers are encouraged to tolerate trailing white space before the
...
... conform to receiver site conventions and the syntax specified in
section 4.1.2. The SMTP commands are discussed below. The SMTP
replies are discussed in section 4.2.
...
... receiver site conventions and the syntax specified in
section 4.1.2. The SMTP commands are discussed below. The SMTP
replies are discussed in section 4.2.
...
...
These commands are used to identify the SMTP client to the SMTP
server. The argument field contains the fully-qualified domain name ...
... These commands are used to identify the SMTP client to the SMTP
server. The argument field contains the fully-qualified domain name
of the SMTP ...
... SMTP
server. The argument field contains the fully-qualified domain name
of the SMTP client if one is available. In situations in which the
SMTP ...
... SMTP client if one is available. In situations in which the
SMTP client system does not have a meaningful domain name (e.g., when
...
... 4.1.3), optionally followed by information that will help to identify
the client system. y The SMTP server identifies itself to the SMTP
client ...
... SMTP session by issuing the EHLO
command. If the SMTP server supports the SMTP service extensions it
will give a successful response, a failure response, or an error
response ...
... session by issuing the EHLO
command. If the SMTP server supports the SMTP service extensions it
will give a successful response, a failure response, or an error
response. If the SMTP server ...
... SMTP service extensions it
will give a successful response, a failure response, or an error
response. If the SMTP server, in violation of this specification,
does not support any SMTP service extensions it will generate an
...
... error
response. If the SMTP server, in violation of this specification,
does not support any SMTP service extensions it will generate an
error response. Older client ...
... error response. Older client SMTP systems MAY, as discussed above,
use HELO (as specified in RFC 821std10(-> 2821prop)) instead of EHLO ...
...
These commands, and a "250 OK" reply to one of them, confirm that
both the SMTP client and the SMTP server are in the initial state ...
... both the SMTP client and the SMTP server are in the initial state,
that is, there is no transaction ...
... This command is used to initiate a mail transaction in which the mail
data is delivered to an SMTP server which may, in turn, deliver it to
one or more mailboxes or pass it on to another system (possibly using
...
... one or more mailboxes or pass it on to another system (possibly using
SMTP). The argument field contains a reverse-path and may contain
optional parameters. In general, the MAIL command ...
... to this rule would arise if the message body were passed to the
originating SMTP-sender with a final "line" that did not end in
<CRLF ...
... sender with a final "line" that did not end in
<CRLF>; in that case, the originating SMTP system MUST either reject
the message as invalid or add <CRLF> in order to have the receiving ...
... UNIX systems, has proven
to cause more interoperability problems than it solves, and SMTP
server systems MUST NOT do this, even in the name of improved
robustness. In particular, the sequence "<LF>.<LF ...
... receiver MUST send an OK reply. If the processing fails the
receiver MUST send a failure reply. The SMTP model does not allow
for partial failures at this point: either the message is accepted by
the server for delivery ...
...
When the SMTP server accepts a message either for relaying or for
final delivery, it inserts a trace ...
... session, after
an end-of-data indicator has been sent and acknowledged, or
immediately before a QUIT. An SMTP server MUST NOT close the
connection as the result of receiving ...
...
There are circumstances, contrary to the intent of this
specification, in which an SMTP server may receive an indication that
the underlying TCP connection has been closed or reset. To preserve
...
... TCP connection has been closed or reset. To preserve
the robustness of the mail system, SMTP servers SHOULD be prepared
for this condition and SHOULD treat it as if a QUIT had been received
before the connection ...
...
SMTP servers SHOULD support HELP without arguments and MAY support it
with arguments.
...
... Systems MUST NOT define mailboxes in such a way as to require the use
in SMTP of non-ASCII characters (octets with the high order bit set
...
... characters outside the set of alphas, digits, and hyphen MUST NOT
appear in domain name labels for SMTP clients or servers. In
particular, the underscore character is not permitted. SMTP servers ...
... SMTP clients or servers. In
particular, the underscore character is not permitted. SMTP servers
that receive a command in which invalid character codes have been
employed, and for which there are no other reasons for rejection,
...
... transactions MUST first be
initialized by the use of the EHLO command. An SMTP server SHOULD
accept commands for non-mail transactions (e.g., VRFY or EXPN)
...
... session. If
it is issued after the session begins, the SMTP server MUST clear all
buffers and reset the state ...
...
If the EHLO command is not acceptable to the SMTP server, 501, 500,
or 502 failure replies MUST be returned as appropriate. The SMTP
server MUST stay in the same state ...
... EHLO command is not acceptable to the SMTP server, 501, 500,
or 502 failure replies MUST be returned as appropriate. The SMTP
server MUST stay in the same state after transmitting these replies
...
...
An SMTP server MAY verify that the domain name parameter in the EHLO
command actually corresponds to the IP address ...
... during a session, or without previously initializing a session. SMTP
servers SHOULD process these normally (that is, not return a 503
code) even if no EHLO command has yet been received; clients ...
... If the transaction beginning command argument is not acceptable, a
501 failure reply MUST be returned and the SMTP server MUST stay in
the same state. If the commands in a transaction ...
... the degree that they cannot be processed by the server, a 503 failure
reply MUST be returned and the SMTP server MUST stay in the same
state.
...
... session, but SHOULD be
used by the client SMTP to request connection closure, even when no
session ...
... client (sending) and server
(receiving) SMTP agents. An SMTP server that does not recognize such
...
... receiving) SMTP agents. An SMTP server that does not recognize such
a command is expected to reply with "500 Command not recognized". An
extended SMTP server ...
... SMTP server that does not recognize such
a command is expected to reply with "500 Command not recognized". An
extended SMTP server MAY list the feature names associated with these
private commands in the response to the EHLO command.
...
...
Commands sent or accepted by SMTP systems that do not start with "X"
MUST conform to the requirements ...
... SMTP Replies ...
...
Replies to SMTP commands serve to ensure the synchronization of
requests and actions in the process of mail transfer and to guarantee
...
... synchronization of
requests and actions in the process of mail transfer and to guarantee
that the SMTP client always knows the state of the SMTP server ...
... SMTP client always knows the state of the SMTP server.
Every command MUST generate exactly one reply.
...
...
An SMTP reply consists of a three digit number (transmitted as three
numeric characters) followed by some text unless specified otherwise
in this document. The number is for use by automata to determine
...
... state to enter next; the text is for the human user. The three
digits contain enough encoded information that the SMTP client need
not examine the text and may either discard it or pass it on to the
...
... SMTP server SHOULD send only the reply codes listed in this
document. An SMTP server SHOULD use the text shown in the examples
whenever appropriate.
...
... reply
code is considered part of the text. Whenever possible, a receiver-
SMTP SHOULD test the first digit (severity indication) of the reply
code.
...
... Standards-track specifications.
Consequently, a sender-SMTP MUST be prepared to handle codes not
specified in this document and MUST do so by interpreting the first
digit only.
...
... 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 SMTP client, or one that receives an unexpected
code, will be able to determine its next action (proceed as planned,
...
... client, or one that receives an unexpected
code, will be able to determine its next action (proceed as planned,
redo, retrench, etc.) by examining this first digit. An SMTP client
that wants to know approximately what kind of error occurred (e.g.,
...
... The command has been accepted, but the requested action is being
held in abeyance, pending confirmation of the information in this
reply. The SMTP client should send another command specifying
whether to continue or abort the action. Note: unextended SMTP ...
... SMTP client should send another command specifying
whether to continue or abort the action. Note: unextended SMTP
does not have any commands that allow this type of reply, and so
does not have continue or abort commands ...
... The command has been accepted, but the requested action is being
held in abeyance, pending receipt of further information. The
SMTP client should send another command specifying this
information. This reply is used in command sequence groups ...
... receiver- and
sender-SMTP agents) must agree on the interpretation. Each reply
in this category might have a different time value, but the SMTP ...
... SMTP agents) must agree on the interpretation. Each reply
in this category might have a different time value, but the SMTP
client is encouraged to try again. A rule of thumb to determine
...
... 5yz Permanent Negative Completion reply
The command was not accepted and the requested action did not
occur. The SMTP client is discouraged from repeating the exact
request (in the same sequence). Even some "permanent" error
conditions ...
... error
conditions can be corrected, so the human user may want to direct
the SMTP client to reinitiate the command sequence by direct
action at some point in the future (e.g., after the spelling has
...
...
For example, a command such as NOOP, whose successful execution does
not offer the SMTP client any new information, will return a 250
reply. The reply is 502 when the command requests an unimplemented
...
...
The reply text may be longer than a single line; in these cases the
complete text must be marked so the SMTP client knows when it can
stop reading the reply. This requires a special format to indicate a
...
... Or, in the case of a connection-opening
response, "No SMTP service here" ...
... Transaction failed (Or, in the case of a connection-opening
response, "No SMTP service here")
...
... reply code 502 (Command not
implemented) SHOULD be returned in preference to other codes. 502
SHOULD be used when the command is actually recognized by the SMTP
server, but not implemented. If the command is not recognized, code
500 SHOULD be returned. Extended SMTP systems MUST NOT list
...
... SHOULD be used when the command is actually recognized by the SMTP
server, but not implemented. If the command is not recognized, code
500 SHOULD be returned. Extended SMTP systems MUST NOT list
capabilities in response to EHLO for which they will return 502 (or
...
...
When an SMTP server returns a positive completion status (2yz code)
after the DATA command is completed with <CRLF>.<CRLF ...
...
When an SMTP server returns a permanent error status (5yz) code after
the DATA command is completed with <CRLF ...
... CRLF>.<CRLF>, it MUST NOT make
any subsequent attempt to deliver that message. The SMTP client
retains responsibility for delivery ...
... non-delivery indication, just as a permanent failure would be
interpreted. I.e., if the client SMTP successfully handles these
conditions, the user will not receive such a reply.
...
...
When an SMTP server returns a permanent error status (5yz) code after
the DATA command is completely with <CRLF ...
... any subsequent attempt to deliver the message. As with temporary
error status codes, the SMTP client retains responsibility for the
message, but SHOULD not again attempt delivery ...
... success, and "E" for error. Since some servers may generate other
replies under special circumstances, and to allow for future
extension, SMTP clients SHOULD, when possible, interpret only the
first digit of the reply and MUST be prepared to deal with
...
... unrecognized reply codes by interpreting the first digit only.
Unless extended using the mechanisms described in section 2.2, SMTP
servers MUST NOT transmit reply codes to an SMTP client ...
... Unless extended using the mechanisms described in section 2.2, SMTP
servers MUST NOT transmit reply codes to an SMTP client that are
other than three digits or that do not start ...
...
These sequencing rules and, in principle, the codes themselves, can
be extended or modified by SMTP extensions offered by the server and
accepted (requested) by the client ...
...
In addition to the codes listed below, any SMTP command can return
any of the following codes if the corresponding unusual circumstances
are encountered:
...
...
When an SMTP server receives a message for delivery or further
processing, it MUST insert trace ...
... The FROM field, which MUST be supplied in an SMTP environment,
SHOULD contain both (1) the name of the source host as presented
...
... Internet mail program MUST NOT change a Received: line that was
previously added to the message header. SMTP servers MUST prepend
Received lines to messages; they MUST NOT change the order of
existing lines or insert Received lines in any other location.
...
... As the Internet grows, comparability of Received fields is important
for detecting problems, especially slow relays. SMTP servers that
create Received fields SHOULD use explicit offsets in the dates
...
...
When the delivery SMTP server makes the "final delivery" of a
message, it inserts a return-path ...
... MAIL command. Here, final delivery means the message
has left the SMTP environment. Normally, this would mean it had been
delivered to the destination user or an associated mail drop, but in
...
...
It is sometimes difficult for an SMTP server to determine whether or
not it is making final delivery since forwarding or other operations
...
...
A message-originating SMTP system SHOULD NOT send a message that
already contains a Return-path header ...
... already contains a Return-path header. SMTP servers performing a
relay function MUST NOT inspect the message data, and especially not
...
... SHOULD be present when the message is delivered. Systems using RFC
822std11(->
