rfc2821.txt - rohrpost - A commandline mail client to change the world as we see it.
 (HTM) git clone git://r-36.net/rohrpost
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       rfc2821.txt (192504B)
       ---
            1 
            2 
            3 
            4 
            5 
            6 
            7 Network Working Group                                 J. Klensin, Editor
            8 Request for Comments: 2821                             AT&T Laboratories
            9 Obsoletes: 821, 974, 1869                                     April 2001
           10 Updates: 1123
           11 Category: Standards Track
           12 
           13 
           14                      Simple Mail Transfer Protocol
           15 
           16 Status of this Memo
           17 
           18    This document specifies an Internet standards track protocol for the
           19    Internet community, and requests discussion and suggestions for
           20    improvements.  Please refer to the current edition of the "Internet
           21    Official Protocol Standards" (STD 1) for the standardization state
           22    and status of this protocol.  Distribution of this memo is unlimited.
           23 
           24 Copyright Notice
           25 
           26    Copyright (C) The Internet Society (2001).  All Rights Reserved.
           27 
           28 Abstract
           29 
           30    This document is a self-contained specification of the basic protocol
           31    for the Internet electronic mail transport.  It consolidates, updates
           32    and clarifies, but doesn't add new or change existing functionality
           33    of the following:
           34 
           35    -  the original SMTP (Simple Mail Transfer Protocol) specification of
           36       RFC 821 [30],
           37 
           38    -  domain name system requirements and implications for mail
           39       transport from RFC 1035 [22] and RFC 974 [27],
           40 
           41    -  the clarifications and applicability statements in RFC 1123 [2],
           42       and
           43 
           44    -  material drawn from the SMTP Extension mechanisms [19].
           45 
           46    It obsoletes RFC 821, RFC 974, and updates RFC 1123 (replaces the
           47    mail transport materials of RFC 1123).  However, RFC 821 specifies
           48    some features that were not in significant use in the Internet by the
           49    mid-1990s and (in appendices) some additional transport models.
           50    Those sections are omitted here in the interest of clarity and
           51    brevity; readers needing them should refer to RFC 821.
           52 
           53 
           54 
           55 
           56 
           57 
           58 Klensin                     Standards Track                     [Page 1]
           59 
           60 RFC 2821             Simple Mail Transfer Protocol            April 2001
           61 
           62 
           63    It also includes some additional material from RFC 1123 that required
           64    amplification.  This material has been identified in multiple ways,
           65    mostly by tracking flaming on various lists and newsgroups and
           66    problems of unusual readings or interpretations that have appeared as
           67    the SMTP extensions have been deployed.  Where this specification
           68    moves beyond consolidation and actually differs from earlier
           69    documents, it supersedes them technically as well as textually.
           70 
           71    Although SMTP was designed as a mail transport and delivery protocol,
           72    this specification also contains information that is important to its
           73    use as a 'mail submission' protocol, as recommended for POP [3, 26]
           74    and IMAP [6].  Additional submission issues are discussed in RFC 2476
           75    [15].
           76 
           77    Section 2.3 provides definitions of terms specific to this document.
           78    Except when the historical terminology is necessary for clarity, this
           79    document uses the current 'client' and 'server' terminology to
           80    identify the sending and receiving SMTP processes, respectively.
           81 
           82    A companion document [32] discusses message headers, message bodies
           83    and formats and structures for them, and their relationship.
           84 
           85 Table of Contents
           86 
           87    1. Introduction ..................................................  4
           88    2. The SMTP Model ................................................  5
           89    2.1 Basic Structure ..............................................  5
           90    2.2 The Extension Model ..........................................  7
           91    2.2.1 Background .................................................  7
           92    2.2.2 Definition and Registration of Extensions ..................  8
           93    2.3 Terminology ..................................................  9
           94    2.3.1 Mail Objects ............................................... 10
           95    2.3.2 Senders and Receivers ...................................... 10
           96    2.3.3 Mail Agents and Message Stores ............................. 10
           97    2.3.4 Host ....................................................... 11
           98    2.3.5 Domain ..................................................... 11
           99    2.3.6 Buffer and State Table ..................................... 11
          100    2.3.7 Lines ...................................................... 12
          101    2.3.8 Originator, Delivery, Relay, and Gateway Systems ........... 12
          102    2.3.9 Message Content and Mail Data .............................. 13
          103    2.3.10 Mailbox and Address ....................................... 13
          104    2.3.11 Reply ..................................................... 13
          105    2.4 General Syntax Principles and Transaction Model .............. 13
          106    3. The SMTP Procedures: An Overview .............................. 15
          107    3.1 Session Initiation ........................................... 15
          108    3.2 Client Initiation ............................................ 16
          109    3.3 Mail Transactions ............................................ 16
          110    3.4 Forwarding for Address Correction or Updating ................ 19
          111 
          112 
          113 
          114 Klensin                     Standards Track                     [Page 2]
          115 
          116 RFC 2821             Simple Mail Transfer Protocol            April 2001
          117 
          118 
          119    3.5 Commands for Debugging Addresses ............................. 20
          120    3.5.1 Overview ................................................... 20
          121    3.5.2 VRFY Normal Response ....................................... 22
          122    3.5.3 Meaning of VRFY or EXPN Success Response ................... 22
          123    3.5.4 Semantics and Applications of EXPN ......................... 23
          124    3.6 Domains ...................................................... 23
          125    3.7 Relaying ..................................................... 24
          126    3.8 Mail Gatewaying .............................................. 25
          127    3.8.1 Header Fields in Gatewaying ................................ 26
          128    3.8.2 Received Lines in Gatewaying ............................... 26
          129    3.8.3 Addresses in Gatewaying .................................... 26
          130    3.8.4 Other Header Fields in Gatewaying .......................... 27
          131    3.8.5 Envelopes in Gatewaying .................................... 27
          132    3.9 Terminating Sessions and Connections ......................... 27
          133    3.10 Mailing Lists and Aliases ................................... 28
          134    3.10.1 Alias ..................................................... 28
          135    3.10.2 List ...................................................... 28
          136    4. The SMTP Specifications ....................................... 29
          137    4.1 SMTP Commands ................................................ 29
          138    4.1.1 Command Semantics and Syntax ............................... 29
          139    4.1.1.1  Extended HELLO (EHLO) or HELLO (HELO) ................... 29
          140    4.1.1.2 MAIL (MAIL) .............................................. 31
          141    4.1.1.3 RECIPIENT (RCPT) ......................................... 31
          142    4.1.1.4 DATA (DATA) .............................................. 33
          143    4.1.1.5 RESET (RSET) ............................................. 34
          144    4.1.1.6 VERIFY (VRFY) ............................................ 35
          145    4.1.1.7 EXPAND (EXPN) ............................................ 35
          146    4.1.1.8 HELP (HELP) .............................................. 35
          147    4.1.1.9 NOOP (NOOP) .............................................. 35
          148    4.1.1.10 QUIT (QUIT) ............................................. 36
          149    4.1.2 Command Argument Syntax .................................... 36
          150    4.1.3 Address Literals ........................................... 38
          151    4.1.4 Order of Commands .......................................... 39
          152    4.1.5 Private-use Commands ....................................... 40
          153    4.2  SMTP Replies ................................................ 40
          154    4.2.1 Reply Code Severities and Theory ........................... 42
          155    4.2.2 Reply Codes by Function Groups ............................. 44
          156    4.2.3  Reply Codes in Numeric Order .............................. 45
          157    4.2.4 Reply Code 502 ............................................. 46
          158    4.2.5 Reply Codes After DATA and the Subsequent <CRLF>.<CRLF> .... 46
          159    4.3 Sequencing of Commands and Replies ........................... 47
          160    4.3.1 Sequencing Overview ........................................ 47
          161    4.3.2 Command-Reply Sequences .................................... 48
          162    4.4 Trace Information ............................................ 49
          163    4.5 Additional Implementation Issues ............................. 53
          164    4.5.1 Minimum Implementation ..................................... 53
          165    4.5.2 Transparency ............................................... 53
          166    4.5.3 Sizes and Timeouts ......................................... 54
          167 
          168 
          169 
          170 Klensin                     Standards Track                     [Page 3]
          171 
          172 RFC 2821             Simple Mail Transfer Protocol            April 2001
          173 
          174 
          175    4.5.3.1 Size limits and minimums ................................. 54
          176    4.5.3.2 Timeouts ................................................. 56
          177    4.5.4 Retry Strategies ........................................... 57
          178    4.5.4.1 Sending Strategy ......................................... 58
          179    4.5.4.2 Receiving Strategy ....................................... 59
          180    4.5.5 Messages with a null reverse-path .......................... 59
          181    5. Address Resolution and Mail Handling .......................... 60
          182    6. Problem Detection and Handling ................................ 62
          183    6.1 Reliable Delivery and Replies by Email ....................... 62
          184    6.2 Loop Detection ............................................... 63
          185    6.3 Compensating for Irregularities .............................. 63
          186    7. Security Considerations ....................................... 64
          187    7.1 Mail Security and Spoofing ................................... 64
          188    7.2 "Blind" Copies ............................................... 65
          189    7.3 VRFY, EXPN, and Security ..................................... 65
          190    7.4 Information Disclosure in Announcements ...................... 66
          191    7.5 Information Disclosure in Trace Fields ....................... 66
          192    7.6 Information Disclosure in Message Forwarding ................. 67
          193    7.7 Scope of Operation of SMTP Servers ........................... 67
          194    8. IANA Considerations ........................................... 67
          195    9. References .................................................... 68
          196    10. Editor's Address ............................................. 70
          197    11. Acknowledgments .............................................. 70
          198    Appendices ....................................................... 71
          199    A. TCP Transport Service ......................................... 71
          200    B. Generating SMTP Commands from RFC 822 Headers ................. 71
          201    C. Source Routes ................................................. 72
          202    D. Scenarios ..................................................... 73
          203    E. Other Gateway Issues .......................................... 76
          204    F. Deprecated Features of RFC 821 ................................ 76
          205    Full Copyright Statement ......................................... 79
          206 
          207 1. Introduction
          208 
          209    The objective of the Simple Mail Transfer Protocol (SMTP) is to
          210    transfer mail reliably and efficiently.
          211 
          212    SMTP is independent of the particular transmission subsystem and
          213    requires only a reliable ordered data stream channel.  While this
          214    document specifically discusses transport over TCP, other transports
          215    are possible.  Appendices to RFC 821 describe some of them.
          216 
          217    An important feature of SMTP is its capability to transport mail
          218    across networks, usually referred to as "SMTP mail relaying" (see
          219    section 3.8).  A network consists of the mutually-TCP-accessible
          220    hosts on the public Internet, the mutually-TCP-accessible hosts on a
          221    firewall-isolated TCP/IP Intranet, or hosts in some other LAN or WAN
          222    environment utilizing a non-TCP transport-level protocol.  Using
          223 
          224 
          225 
          226 Klensin                     Standards Track                     [Page 4]
          227 
          228 RFC 2821             Simple Mail Transfer Protocol            April 2001
          229 
          230 
          231    SMTP, a process can transfer mail to another process on the same
          232    network or to some other network via a relay or gateway process
          233    accessible to both networks.
          234 
          235    In this way, a mail message may pass through a number of intermediate
          236    relay or gateway hosts on its path from sender to ultimate recipient.
          237    The Mail eXchanger mechanisms of the domain name system [22, 27] (and
          238    section 5 of this document) are used to identify the appropriate
          239    next-hop destination for a message being transported.
          240 
          241 2. The SMTP Model
          242 
          243 2.1 Basic Structure
          244 
          245    The SMTP design can be pictured as:
          246 
          247                +----------+                +----------+
          248    +------+    |          |                |          |
          249    | User |<-->|          |      SMTP      |          |
          250    +------+    |  Client- |Commands/Replies| Server-  |
          251    +------+    |   SMTP   |<-------------->|    SMTP  |    +------+
          252    | File |<-->|          |    and Mail    |          |<-->| File |
          253    |System|    |          |                |          |    |System|
          254    +------+    +----------+                +----------+    +------+
          255                 SMTP client                SMTP server
          256 
          257    When an SMTP client has a message to transmit, it establishes a two-
          258    way transmission channel to an SMTP server.  The responsibility of an
          259    SMTP client is to transfer mail messages to one or more SMTP servers,
          260    or report its failure to do so.
          261 
          262    The means by which a mail message is presented to an SMTP client, and
          263    how that client determines the domain name(s) to which mail messages
          264    are to be transferred is a local matter, and is not addressed by this
          265    document.  In some cases, the domain name(s) transferred to, or
          266    determined by, an SMTP client will identify the final destination(s)
          267    of the mail message.  In other cases, common with SMTP clients
          268    associated with implementations of the POP [3, 26] or IMAP [6]
          269    protocols, or when the SMTP client is inside an isolated transport
          270    service environment, the domain name determined will identify an
          271    intermediate destination through which all mail messages are to be
          272    relayed.  SMTP clients that transfer all traffic, regardless of the
          273    target domain names associated with the individual messages, or that
          274    do not maintain queues for retrying message transmissions that
          275    initially cannot be completed, may otherwise conform to this
          276    specification but are not considered fully-capable.  Fully-capable
          277    SMTP implementations, including the relays used by these less capable
          278 
          279 
          280 
          281 
          282 Klensin                     Standards Track                     [Page 5]
          283 
          284 RFC 2821             Simple Mail Transfer Protocol            April 2001
          285 
          286 
          287    ones, and their destinations, are expected to support all of the
          288    queuing, retrying, and alternate address functions discussed in this
          289    specification.
          290 
          291    The means by which an SMTP client, once it has determined a target
          292    domain name, determines the identity of an SMTP server to which a
          293    copy of a message is to be transferred, and then performs that
          294    transfer, is covered by this document.  To effect a mail transfer to
          295    an SMTP server, an SMTP client establishes a two-way transmission
          296    channel to that SMTP server.  An SMTP client determines the address
          297    of an appropriate host running an SMTP server by resolving a
          298    destination domain name to either an intermediate Mail eXchanger host
          299    or a final target host.
          300 
          301    An SMTP server may be either the ultimate destination or an
          302    intermediate "relay" (that is, it may assume the role of an SMTP
          303    client after receiving the message) or "gateway" (that is, it may
          304    transport the message further using some protocol other than SMTP).
          305    SMTP commands are generated by the SMTP client and sent to the SMTP
          306    server.  SMTP replies are sent from the SMTP server to the SMTP
          307    client in response to the commands.
          308 
          309    In other words, message transfer can occur in a single connection
          310    between the original SMTP-sender and the final SMTP-recipient, or can
          311    occur in a series of hops through intermediary systems.  In either
          312    case, a formal handoff of responsibility for the message occurs: the
          313    protocol requires that a server accept responsibility for either
          314    delivering a message or properly reporting the failure to do so.
          315 
          316    Once the transmission channel is established and initial handshaking
          317    completed, the SMTP client normally initiates a mail transaction.
          318    Such a transaction consists of a series of commands to specify the
          319    originator and destination of the mail and transmission of the
          320    message content (including any headers or other structure) itself.
          321    When the same message is sent to multiple recipients, this protocol
          322    encourages the transmission of only one copy of the data for all
          323    recipients at the same destination (or intermediate relay) host.
          324 
          325    The server responds to each command with a reply; replies may
          326    indicate that the command was accepted, that additional commands are
          327    expected, or that a temporary or permanent error condition exists.
          328    Commands specifying the sender or recipients may include server-
          329    permitted SMTP service extension requests as discussed in section
          330    2.2.  The dialog is purposely lock-step, one-at-a-time, although this
          331    can be modified by mutually-agreed extension requests such as command
          332    pipelining [13].
          333 
          334 
          335 
          336 
          337 
          338 Klensin                     Standards Track                     [Page 6]
          339 
          340 RFC 2821             Simple Mail Transfer Protocol            April 2001
          341 
          342 
          343    Once a given mail message has been transmitted, the client may either
          344    request that the connection be shut down or may initiate other mail
          345    transactions.  In addition, an SMTP client may use a connection to an
          346    SMTP server for ancillary services such as verification of email
          347    addresses or retrieval of mailing list subscriber addresses.
          348 
          349    As suggested above, this protocol provides mechanisms for the
          350    transmission of mail.  This transmission normally occurs directly
          351    from the sending user's host to the receiving user's host when the
          352    two hosts are connected to the same transport service.  When they are
          353    not connected to the same transport service, transmission occurs via
          354    one or more relay SMTP servers.  An intermediate host that acts as
          355    either an SMTP relay or as a gateway into some other transmission
          356    environment is usually selected through the use of the domain name
          357    service (DNS) Mail eXchanger mechanism.
          358 
          359    Usually, intermediate hosts are determined via the DNS MX record, not
          360    by explicit "source" routing (see section 5 and appendices C and
          361    F.2).
          362 
          363 2.2 The Extension Model
          364 
          365 2.2.1 Background
          366 
          367    In an effort that started in 1990, approximately a decade after RFC
          368    821 was completed, the protocol was modified with a "service
          369    extensions" model that permits the client and server to agree to
          370    utilize shared functionality beyond the original SMTP requirements.
          371    The SMTP extension mechanism defines a means whereby an extended SMTP
          372    client and server may recognize each other, and the server can inform
          373    the client as to the service extensions that it supports.
          374 
          375    Contemporary SMTP implementations MUST support the basic extension
          376    mechanisms.  For instance, servers MUST support the EHLO command even
          377    if they do not implement any specific extensions and clients SHOULD
          378    preferentially utilize EHLO rather than HELO.  (However, for
          379    compatibility with older conforming implementations, SMTP clients and
          380    servers MUST support the original HELO mechanisms as a fallback.)
          381    Unless the different characteristics of HELO must be identified for
          382    interoperability purposes, this document discusses only EHLO.
          383 
          384    SMTP is widely deployed and high-quality implementations have proven
          385    to be very robust.  However, the Internet community now considers
          386    some services to be important that were not anticipated when the
          387    protocol was first designed.  If support for those services is to be
          388    added, it must be done in a way that permits older implementations to
          389    continue working acceptably.  The extension framework consists of:
          390 
          391 
          392 
          393 
          394 Klensin                     Standards Track                     [Page 7]
          395 
          396 RFC 2821             Simple Mail Transfer Protocol            April 2001
          397 
          398 
          399    -  The SMTP command EHLO, superseding the earlier HELO,
          400 
          401    -  a registry of SMTP service extensions,
          402 
          403    -  additional parameters to the SMTP MAIL and RCPT commands, and
          404 
          405    -  optional replacements for commands defined in this protocol, such
          406       as for DATA in non-ASCII transmissions [33].
          407 
          408    SMTP's strength comes primarily from its simplicity.  Experience with
          409    many protocols has shown that protocols with few options tend towards
          410    ubiquity, whereas protocols with many options tend towards obscurity.
          411 
          412    Each and every extension, regardless of its benefits, must be
          413    carefully scrutinized with respect to its implementation, deployment,
          414    and interoperability costs.  In many cases, the cost of extending the
          415    SMTP service will likely outweigh the benefit.
          416 
          417 2.2.2 Definition and Registration of Extensions
          418 
          419    The IANA maintains a registry of SMTP service extensions.  A
          420    corresponding EHLO keyword value is associated with each extension.
          421    Each service extension registered with the IANA must be defined in a
          422    formal standards-track or IESG-approved experimental protocol
          423    document.  The definition must include:
          424 
          425    -  the textual name of the SMTP service extension;
          426 
          427    -  the EHLO keyword value associated with the extension;
          428 
          429    -  the syntax and possible values of parameters associated with the
          430       EHLO keyword value;
          431 
          432    -  any additional SMTP verbs associated with the extension
          433       (additional verbs will usually be, but are not required to be, the
          434       same as the EHLO keyword value);
          435 
          436    -  any new parameters the extension associates with the MAIL or RCPT
          437       verbs;
          438 
          439    -  a description of how support for the extension affects the
          440       behavior of a server and client SMTP; and,
          441 
          442    -  the increment by which the extension is increasing the maximum
          443       length of the commands MAIL and/or RCPT, over that specified in
          444       this standard.
          445 
          446 
          447 
          448 
          449 
          450 Klensin                     Standards Track                     [Page 8]
          451 
          452 RFC 2821             Simple Mail Transfer Protocol            April 2001
          453 
          454 
          455    In addition, any EHLO keyword value starting with an upper or lower
          456    case "X" refers to a local SMTP service extension used exclusively
          457    through bilateral agreement.  Keywords beginning with "X" MUST NOT be
          458    used in a registered service extension.  Conversely, keyword values
          459    presented in the EHLO response that do not begin with "X" MUST
          460    correspond to a standard, standards-track, or IESG-approved
          461    experimental SMTP service extension registered with IANA.  A
          462    conforming server MUST NOT offer non-"X"-prefixed keyword values that
          463    are not described in a registered extension.
          464 
          465    Additional verbs and parameter names are bound by the same rules as
          466    EHLO keywords; specifically, verbs beginning with "X" are local
          467    extensions that may not be registered or standardized.  Conversely,
          468    verbs not beginning with "X" must always be registered.
          469 
          470 2.3 Terminology
          471 
          472    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
          473    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
          474    document are to be interpreted as described below.
          475 
          476    1. MUST   This word, or the terms "REQUIRED" or "SHALL", mean that
          477       the definition is an absolute requirement of the specification.
          478 
          479    2. MUST NOT   This phrase, or the phrase "SHALL NOT", mean that the
          480       definition is an absolute prohibition of the specification.
          481 
          482    3. SHOULD   This word, or the adjective "RECOMMENDED", mean that
          483       there may exist valid reasons in particular circumstances to
          484       ignore a particular item, but the full implications must be
          485       understood and carefully weighed before choosing a different
          486       course.
          487 
          488    4. SHOULD NOT   This phrase, or the phrase "NOT RECOMMENDED" mean
          489       that there may exist valid reasons in particular circumstances
          490       when the particular behavior is acceptable or even useful, but the
          491       full implications should be understood and the case carefully
          492       weighed before implementing any behavior described with this
          493       label.
          494 
          495    5. MAY   This word, or the adjective "OPTIONAL", mean that an item is
          496       truly optional.  One vendor may choose to include the item because
          497       a particular marketplace requires it or because the vendor feels
          498       that it enhances the product while another vendor may omit the
          499       same item.  An implementation which does not include a particular
          500       option MUST be prepared to interoperate with another
          501       implementation which does include the option, though perhaps with
          502       reduced functionality.  In the same vein an implementation which
          503 
          504 
          505 
          506 Klensin                     Standards Track                     [Page 9]
          507 
          508 RFC 2821             Simple Mail Transfer Protocol            April 2001
          509 
          510 
          511       does include a particular option MUST be prepared to interoperate
          512       with another implementation which does not include the option
          513       (except, of course, for the feature the option provides.)
          514 
          515 2.3.1 Mail Objects
          516 
          517    SMTP transports a mail object.  A mail object contains an envelope
          518    and content.
          519 
          520    The SMTP envelope is sent as a series of SMTP protocol units
          521    (described in section 3).  It consists of an originator address (to
          522    which error reports should be directed); one or more recipient
          523    addresses; and optional protocol extension material.  Historically,
          524    variations on the recipient address specification command (RCPT TO)
          525    could be used to specify alternate delivery modes, such as immediate
          526    display; those variations have now been deprecated (see appendix F,
          527    section F.6).
          528 
          529    The SMTP content is sent in the SMTP DATA protocol unit and has two
          530    parts:  the headers and the body.  If the content conforms to other
          531    contemporary standards, the headers form a collection of field/value
          532    pairs structured as in the message format specification [32]; the
          533    body, if structured, is defined according to MIME [12].  The content
          534    is textual in nature, expressed using the US-ASCII repertoire [1].
          535    Although SMTP extensions (such as "8BITMIME" [20]) may relax this
          536    restriction for the content body, the content headers are always
          537    encoded using the US-ASCII repertoire.  A MIME extension [23] defines
          538    an algorithm for representing header values outside the US-ASCII
          539    repertoire, while still encoding them using the US-ASCII repertoire.
          540 
          541 2.3.2 Senders and Receivers
          542 
          543    In RFC 821, the two hosts participating in an SMTP transaction were
          544    described as the "SMTP-sender" and "SMTP-receiver".  This document
          545    has been changed to reflect current industry terminology and hence
          546    refers to them as the "SMTP client" (or sometimes just "the client")
          547    and "SMTP server" (or just "the server"), respectively.  Since a
          548    given host may act both as server and client in a relay situation,
          549    "receiver" and "sender" terminology is still used where needed for
          550    clarity.
          551 
          552 2.3.3 Mail Agents and Message Stores
          553 
          554    Additional mail system terminology became common after RFC 821 was
          555    published and, where convenient, is used in this specification.  In
          556    particular, SMTP servers and clients provide a mail transport service
          557    and therefore act as "Mail Transfer Agents" (MTAs).  "Mail User
          558    Agents" (MUAs or UAs) are normally thought of as the sources and
          559 
          560 
          561 
          562 Klensin                     Standards Track                    [Page 10]
          563 
          564 RFC 2821             Simple Mail Transfer Protocol            April 2001
          565 
          566 
          567    targets of mail.  At the source, an MUA might collect mail to be
          568    transmitted from a user and hand it off to an MTA; the final
          569    ("delivery") MTA would be thought of as handing the mail off to an
          570    MUA (or at least transferring responsibility to it, e.g., by
          571    depositing the message in a "message store").  However, while these
          572    terms are used with at least the appearance of great precision in
          573    other environments, the implied boundaries between MUAs and MTAs
          574    often do not accurately match common, and conforming, practices with
          575    Internet mail.  Hence, the reader should be cautious about inferring
          576    the strong relationships and responsibilities that might be implied
          577    if these terms were used elsewhere.
          578 
          579 2.3.4 Host
          580 
          581    For the purposes of this specification, a host is a computer system
          582    attached to the Internet (or, in some cases, to a private TCP/IP
          583    network) and supporting the SMTP protocol.  Hosts are known by names
          584    (see "domain"); identifying them by numerical address is discouraged.
          585 
          586 2.3.5 Domain
          587 
          588    A domain (or domain name) consists of one or more dot-separated
          589    components.  These components ("labels" in DNS terminology [22]) are
          590    restricted for SMTP purposes to consist of a sequence of letters,
          591    digits, and hyphens drawn from the ASCII character set [1].  Domain
          592    names are used as names of hosts and of other entities in the domain
          593    name hierarchy.  For example, a domain may refer to an alias (label
          594    of a CNAME RR) or the label of Mail eXchanger records to be used to
          595    deliver mail instead of representing a host name.  See [22] and
          596    section 5 of this specification.
          597 
          598    The domain name, as described in this document and in [22], is the
          599    entire, fully-qualified name (often referred to as an "FQDN").  A
          600    domain name that is not in FQDN form is no more than a local alias.
          601    Local aliases MUST NOT appear in any SMTP transaction.
          602 
          603 2.3.6 Buffer and State Table
          604 
          605    SMTP sessions are stateful, with both parties carefully maintaining a
          606    common view of the current state.  In this document we model this
          607    state by a virtual "buffer" and a "state table" on the server which
          608    may be used by the client to, for example, "clear the buffer" or
          609    "reset the state table," causing the information in the buffer to be
          610    discarded and the state to be returned to some previous state.
          611 
          612 
          613 
          614 
          615 
          616 
          617 
          618 Klensin                     Standards Track                    [Page 11]
          619 
          620 RFC 2821             Simple Mail Transfer Protocol            April 2001
          621 
          622 
          623 2.3.7 Lines
          624 
          625    SMTP commands and, unless altered by a service extension, message
          626    data, are transmitted in "lines".  Lines consist of zero or more data
          627    characters terminated by the sequence ASCII character "CR" (hex value
          628    0D) followed immediately by ASCII character "LF" (hex value 0A).
          629    This termination sequence is denoted as <CRLF> in this document.
          630    Conforming implementations MUST NOT recognize or generate any other
          631    character or character sequence as a line terminator.  Limits MAY be
          632    imposed on line lengths by servers (see section 4.5.3).
          633 
          634    In addition, the appearance of "bare" "CR" or "LF" characters in text
          635    (i.e., either without the other) has a long history of causing
          636    problems in mail implementations and applications that use the mail
          637    system as a tool.  SMTP client implementations MUST NOT transmit
          638    these characters except when they are intended as line terminators
          639    and then MUST, as indicated above, transmit them only as a <CRLF>
          640    sequence.
          641 
          642 2.3.8 Originator, Delivery, Relay, and Gateway Systems
          643 
          644    This specification makes a distinction among four types of SMTP
          645    systems, based on the role those systems play in transmitting
          646    electronic mail.  An "originating" system (sometimes called an SMTP
          647    originator) introduces mail into the Internet or, more generally,
          648    into a transport service environment.  A "delivery" SMTP system is
          649    one that receives mail from a transport service environment and
          650    passes it to a mail user agent or deposits it in a message store
          651    which a mail user agent is expected to subsequently access.  A
          652    "relay" SMTP system (usually referred to just as a "relay") receives
          653    mail from an SMTP client and transmits it, without modification to
          654    the message data other than adding trace information, to another SMTP
          655    server for further relaying or for delivery.
          656 
          657    A "gateway" SMTP system (usually referred to just as a "gateway")
          658    receives mail from a client system in one transport environment and
          659    transmits it to a server system in another transport environment.
          660    Differences in protocols or message semantics between the transport
          661    environments on either side of a gateway may require that the gateway
          662    system perform transformations to the message that are not permitted
          663    to SMTP relay systems.  For the purposes of this specification,
          664    firewalls that rewrite addresses should be considered as gateways,
          665    even if SMTP is used on both sides of them (see [11]).
          666 
          667 
          668 
          669 
          670 
          671 
          672 
          673 
          674 Klensin                     Standards Track                    [Page 12]
          675 
          676 RFC 2821             Simple Mail Transfer Protocol            April 2001
          677 
          678 
          679 2.3.9 Message Content and Mail Data
          680 
          681    The terms "message content" and "mail data" are used interchangeably
          682    in this document to describe the material transmitted after the DATA
          683    command is accepted and before the end of data indication is
          684    transmitted.  Message content includes message headers and the
          685    possibly-structured message body.  The MIME specification [12]
          686    provides the standard mechanisms for structured message bodies.
          687 
          688 2.3.10 Mailbox and Address
          689 
          690    As used in this specification, an "address" is a character string
          691    that identifies a user to whom mail will be sent or a location into
          692    which mail will be deposited.  The term "mailbox" refers to that
          693    depository.  The two terms are typically used interchangeably unless
          694    the distinction between the location in which mail is placed (the
          695    mailbox) and a reference to it (the address) is important.  An
          696    address normally consists of user and domain specifications.  The
          697    standard mailbox naming convention is defined to be "local-
          698    part@domain": contemporary usage permits a much broader set of
          699    applications than simple "user names".  Consequently, and due to a
          700    long history of problems when intermediate hosts have attempted to
          701    optimize transport by modifying them, the local-part MUST be
          702    interpreted and assigned semantics only by the host specified in the
          703    domain part of the address.
          704 
          705 2.3.11 Reply
          706 
          707    An SMTP reply is an acknowledgment (positive or negative) sent from
          708    receiver to sender via the transmission channel in response to a
          709    command.  The general form of a reply is a numeric completion code
          710    (indicating failure or success) usually followed by a text string.
          711    The codes are for use by programs and the text is usually intended
          712    for human users.  Recent work [34] has specified further structuring
          713    of the reply strings, including the use of supplemental and more
          714    specific completion codes.
          715 
          716 2.4 General Syntax Principles and Transaction Model
          717 
          718    SMTP commands and replies have a rigid syntax.  All commands begin
          719    with a command verb.  All Replies begin with a three digit numeric
          720    code.  In some commands and replies, arguments MUST follow the verb
          721    or reply code.  Some commands do not accept arguments (after the
          722    verb), and some reply codes are followed, sometimes optionally, by
          723    free form text.  In both cases, where text appears, it is separated
          724    from the verb or reply code by a space character.  Complete
          725    definitions of commands and replies appear in section 4.
          726 
          727 
          728 
          729 
          730 Klensin                     Standards Track                    [Page 13]
          731 
          732 RFC 2821             Simple Mail Transfer Protocol            April 2001
          733 
          734 
          735    Verbs and argument values (e.g., "TO:" or "to:" in the RCPT command
          736    and extension name keywords) are not case sensitive, with the sole
          737    exception in this specification of a mailbox local-part (SMTP
          738    Extensions may explicitly specify case-sensitive elements).  That is,
          739    a command verb, an argument value other than a mailbox local-part,
          740    and free form text MAY be encoded in upper case, lower case, or any
          741    mixture of upper and lower case with no impact on its meaning.  This
          742    is NOT true of a mailbox local-part.  The local-part of a mailbox
          743    MUST BE treated as case sensitive.  Therefore, SMTP implementations
          744    MUST take care to preserve the case of mailbox local-parts.  Mailbox
          745    domains are not case sensitive.  In particular, for some hosts the
          746    user "smith" is different from the user "Smith".  However, exploiting
          747    the case sensitivity of mailbox local-parts impedes interoperability
          748    and is discouraged.
          749 
          750    A few SMTP servers, in violation of this specification (and RFC 821)
          751    require that command verbs be encoded by clients in upper case.
          752    Implementations MAY wish to employ this encoding to accommodate those
          753    servers.
          754 
          755    The argument field consists of a variable length character string
          756    ending with the end of the line, i.e., with the character sequence
          757    <CRLF>.  The receiver will take no action until this sequence is
          758    received.
          759 
          760    The syntax for each command is shown with the discussion of that
          761    command.  Common elements and parameters are shown in section 4.1.2.
          762 
          763    Commands and replies are composed of characters from the ASCII
          764    character set [1].  When the transport service provides an 8-bit byte
          765    (octet) transmission channel, each 7-bit character is transmitted
          766    right justified in an octet with the high order bit cleared to zero.
          767    More specifically, the unextended SMTP service provides seven bit
          768    transport only.  An originating SMTP client which has not
          769    successfully negotiated an appropriate extension with a particular
          770    server MUST NOT transmit messages with information in the high-order
          771    bit of octets.  If such messages are transmitted in violation of this
          772    rule, receiving SMTP servers MAY clear the high-order bit or reject
          773    the message as invalid.  In general, a relay SMTP SHOULD assume that
          774    the message content it has received is valid and, assuming that the
          775    envelope permits doing so, relay it without inspecting that content.
          776    Of course, if the content is mislabeled and the data path cannot
          777    accept the actual content, this may result in ultimate delivery of a
          778    severely garbled message to the recipient.  Delivery SMTP systems MAY
          779    reject ("bounce") such messages rather than deliver them.  No sending
          780    SMTP system is permitted to send envelope commands in any character
          781 
          782 
          783 
          784 
          785 
          786 Klensin                     Standards Track                    [Page 14]
          787 
          788 RFC 2821             Simple Mail Transfer Protocol            April 2001
          789 
          790 
          791    set other than US-ASCII; receiving systems SHOULD reject such
          792    commands, normally using "500 syntax error - invalid character"
          793    replies.
          794 
          795    Eight-bit message content transmission MAY be requested of the server
          796    by a client using extended SMTP facilities, notably the "8BITMIME"
          797    extension [20].  8BITMIME SHOULD be supported by SMTP servers.
          798    However, it MUST not be construed as authorization to transmit
          799    unrestricted eight bit material.  8BITMIME MUST NOT be requested by
          800    senders for material with the high bit on that is not in MIME format
          801    with an appropriate content-transfer encoding; servers MAY reject
          802    such messages.
          803 
          804    The metalinguistic notation used in this document corresponds to the
          805    "Augmented BNF" used in other Internet mail system documents.  The
          806    reader who is not familiar with that syntax should consult the ABNF
          807    specification [8].  Metalanguage terms used in running text are
          808    surrounded by pointed brackets (e.g., <CRLF>) for clarity.
          809 
          810 3. The SMTP Procedures: An Overview
          811 
          812    This section contains descriptions of the procedures used in SMTP:
          813    session initiation, the mail transaction, forwarding mail, verifying
          814    mailbox names and expanding mailing lists, and the opening and
          815    closing exchanges.  Comments on relaying, a note on mail domains, and
          816    a discussion of changing roles are included at the end of this
          817    section.  Several complete scenarios are presented in appendix D.
          818 
          819 3.1 Session Initiation
          820 
          821    An SMTP session is initiated when a client opens a connection to a
          822    server and the server responds with an opening message.
          823 
          824    SMTP server implementations MAY include identification of their
          825    software and version information in the connection greeting reply
          826    after the 220 code, a practice that permits more efficient isolation
          827    and repair of any problems.  Implementations MAY make provision for
          828    SMTP servers to disable the software and version announcement where
          829    it causes security concerns.  While some systems also identify their
          830    contact point for mail problems, this is not a substitute for
          831    maintaining the required "postmaster" address (see section 4.5.1).
          832 
          833    The SMTP protocol allows a server to formally reject a transaction
          834    while still allowing the initial connection as follows: a 554
          835    response MAY be given in the initial connection opening message
          836    instead of the 220.  A server taking this approach MUST still wait
          837    for the client to send a QUIT (see section 4.1.1.10) before closing
          838    the connection and SHOULD respond to any intervening commands with
          839 
          840 
          841 
          842 Klensin                     Standards Track                    [Page 15]
          843 
          844 RFC 2821             Simple Mail Transfer Protocol            April 2001
          845 
          846 
          847    "503 bad sequence of commands".  Since an attempt to make an SMTP
          848    connection to such a system is probably in error, a server returning
          849    a 554 response on connection opening SHOULD provide enough
          850    information in the reply text to facilitate debugging of the sending
          851    system.
          852 
          853 3.2 Client Initiation
          854 
          855    Once the server has sent the welcoming message and the client has
          856    received it, the client normally sends the EHLO command to the
          857    server, indicating the client's identity.  In addition to opening the
          858    session, use of EHLO indicates that the client is able to process
          859    service extensions and requests that the server provide a list of the
          860    extensions it supports.  Older SMTP systems which are unable to
          861    support service extensions and contemporary clients which do not
          862    require service extensions in the mail session being initiated, MAY
          863    use HELO instead of EHLO.  Servers MUST NOT return the extended
          864    EHLO-style response to a HELO command.  For a particular connection
          865    attempt, if the server returns a "command not recognized" response to
          866    EHLO, the client SHOULD be able to fall back and send HELO.
          867 
          868    In the EHLO command the host sending the command identifies itself;
          869    the command may be interpreted as saying "Hello, I am <domain>" (and,
          870    in the case of EHLO, "and I support service extension requests").
          871 
          872 3.3 Mail Transactions
          873 
          874    There are three steps to SMTP mail transactions.  The transaction
          875    starts with a MAIL command which gives the sender identification.
          876    (In general, the MAIL command may be sent only when no mail
          877    transaction is in progress; see section 4.1.4.)  A series of one or
          878    more RCPT commands follows giving the receiver information.  Then a
          879    DATA command initiates transfer of the mail data and is terminated by
          880    the "end of mail" data indicator, which also confirms the
          881    transaction.
          882 
          883    The first step in the procedure is the MAIL command.
          884 
          885       MAIL FROM:<reverse-path> [SP <mail-parameters> ] <CRLF>
          886 
          887    This command tells the SMTP-receiver that a new mail transaction is
          888    starting and to reset all its state tables and buffers, including any
          889    recipients or mail data.  The <reverse-path> portion of the first or
          890    only argument contains the source mailbox (between "<" and ">"
          891    brackets), which can be used to report errors (see section 4.2 for a
          892    discussion of error reporting).  If accepted, the SMTP server returns
          893    a 250 OK reply.  If the mailbox specification is not acceptable for
          894    some reason, the server MUST return a reply indicating whether the
          895 
          896 
          897 
          898 Klensin                     Standards Track                    [Page 16]
          899 
          900 RFC 2821             Simple Mail Transfer Protocol            April 2001
          901 
          902 
          903    failure is permanent (i.e., will occur again if the client tries to
          904    send the same address again) or temporary (i.e., the address might be
          905    accepted if the client tries again later).  Despite the apparent
          906    scope of this requirement, there are circumstances in which the
          907    acceptability of the reverse-path may not be determined until one or
          908    more forward-paths (in RCPT commands) can be examined.  In those
          909    cases, the server MAY reasonably accept the reverse-path (with a 250
          910    reply) and then report problems after the forward-paths are received
          911    and examined.  Normally, failures produce 550 or 553 replies.
          912 
          913    Historically, the <reverse-path> can contain more than just a
          914    mailbox, however, contemporary systems SHOULD NOT use source routing
          915    (see appendix C).
          916 
          917    The optional <mail-parameters> are associated with negotiated SMTP
          918    service extensions (see section 2.2).
          919 
          920    The second step in the procedure is the RCPT command.
          921 
          922       RCPT TO:<forward-path> [ SP <rcpt-parameters> ] <CRLF>
          923 
          924    The first or only argument to this command includes a forward-path
          925    (normally a mailbox and domain, always surrounded by "<" and ">"
          926    brackets) identifying one recipient.  If accepted, the SMTP server
          927    returns a 250 OK reply and stores the forward-path.  If the recipient
          928    is known not to be a deliverable address, the SMTP server returns a
          929    550 reply, typically with a string such as "no such user - " and the
          930    mailbox name (other circumstances and reply codes are possible).
          931    This step of the procedure can be repeated any number of times.
          932 
          933    The <forward-path> can contain more than just a mailbox.
          934    Historically, the <forward-path> can be a source routing list of
          935    hosts and the destination mailbox, however, contemporary SMTP clients
          936    SHOULD NOT utilize source routes (see appendix C).  Servers MUST be
          937    prepared to encounter a list of source routes in the forward path,
          938    but SHOULD ignore the routes or MAY decline to support the relaying
          939    they imply.  Similarly, servers MAY decline to accept mail that is
          940    destined for other hosts or systems.  These restrictions make a
          941    server useless as a relay for clients that do not support full SMTP
          942    functionality.  Consequently, restricted-capability clients MUST NOT
          943    assume that any SMTP server on the Internet can be used as their mail
          944    processing (relaying) site.  If a RCPT command appears without a
          945    previous MAIL command, the server MUST return a 503 "Bad sequence of
          946    commands" response.  The optional <rcpt-parameters> are associated
          947    with negotiated SMTP service extensions (see section 2.2).
          948 
          949    The third step in the procedure is the DATA command (or some
          950    alternative specified in a service extension).
          951 
          952 
          953 
          954 Klensin                     Standards Track                    [Page 17]
          955 
          956 RFC 2821             Simple Mail Transfer Protocol            April 2001
          957 
          958 
          959       DATA <CRLF>
          960 
          961    If accepted, the SMTP server returns a 354 Intermediate reply and
          962    considers all succeeding lines up to but not including the end of
          963    mail data indicator to be the message text.  When the end of text is
          964    successfully received and stored the SMTP-receiver sends a 250 OK
          965    reply.
          966 
          967    Since the mail data is sent on the transmission channel, the end of
          968    mail data must be indicated so that the command and reply dialog can
          969    be resumed.  SMTP indicates the end of the mail data by sending a
          970    line containing only a "." (period or full stop).  A transparency
          971    procedure is used to prevent this from interfering with the user's
          972    text (see section 4.5.2).
          973 
          974    The end of mail data indicator also confirms the mail transaction and
          975    tells the SMTP server to now process the stored recipients and mail
          976    data.  If accepted, the SMTP server returns a 250 OK reply.  The DATA
          977    command can fail at only two points in the protocol exchange:
          978 
          979    -  If there was no MAIL, or no RCPT, command, or all such commands
          980       were rejected, the server MAY return a "command out of sequence"
          981       (503) or "no valid recipients" (554) reply in response to the DATA
          982       command.  If one of those replies (or any other 5yz reply) is
          983       received, the client MUST NOT send the message data; more
          984       generally, message data MUST NOT be sent unless a 354 reply is
          985       received.
          986 
          987    -  If the verb is initially accepted and the 354 reply issued, the
          988       DATA command should fail only if the mail transaction was
          989       incomplete (for example, no recipients), or if resources were
          990       unavailable (including, of course, the server unexpectedly
          991       becoming unavailable), or if the server determines that the
          992       message should be rejected for policy or other reasons.
          993 
          994    However, in practice, some servers do not perform recipient
          995    verification until after the message text is received.  These servers
          996    SHOULD treat a failure for one or more recipients as a "subsequent
          997    failure" and return a mail message as discussed in section 6.  Using
          998    a "550 mailbox not found" (or equivalent) reply code after the data
          999    are accepted makes it difficult or impossible for the client to
         1000    determine which recipients failed.
         1001 
         1002    When RFC 822 format [7, 32] is being used, the mail data include the
         1003    memo header items such as Date, Subject, To, Cc, From.  Server SMTP
         1004    systems SHOULD NOT reject messages based on perceived defects in the
         1005    RFC 822 or MIME [12] message header or message body.  In particular,
         1006 
         1007 
         1008 
         1009 
         1010 Klensin                     Standards Track                    [Page 18]
         1011 
         1012 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1013 
         1014 
         1015    they MUST NOT reject messages in which the numbers of Resent-fields
         1016    do not match or Resent-to appears without Resent-from and/or Resent-
         1017    date.
         1018 
         1019    Mail transaction commands MUST be used in the order discussed above.
         1020 
         1021 3.4 Forwarding for Address Correction or Updating
         1022 
         1023    Forwarding support is most often required to consolidate and simplify
         1024    addresses within, or relative to, some enterprise and less frequently
         1025    to establish addresses to link a person's prior address with current
         1026    one.  Silent forwarding of messages (without server notification to
         1027    the sender), for security or non-disclosure purposes, is common in
         1028    the contemporary Internet.
         1029 
         1030    In both the enterprise and the "new address" cases, information
         1031    hiding (and sometimes security) considerations argue against exposure
         1032    of the "final" address through the SMTP protocol as a side-effect of
         1033    the forwarding activity.  This may be especially important when the
         1034    final address may not even be reachable by the sender.  Consequently,
         1035    the "forwarding" mechanisms described in section 3.2 of RFC 821, and
         1036    especially the 251 (corrected destination) and 551 reply codes from
         1037    RCPT must be evaluated carefully by implementers and, when they are
         1038    available, by those configuring systems.
         1039 
         1040    In particular:
         1041 
         1042    *  Servers MAY forward messages when they are aware of an address
         1043       change.  When they do so, they MAY either provide address-updating
         1044       information with a 251 code, or may forward "silently" and return
         1045       a 250 code.  But, if a 251 code is used, they MUST NOT assume that
         1046       the client will actually update address information or even return
         1047       that information to the user.
         1048 
         1049    Alternately,
         1050 
         1051    *  Servers MAY reject or bounce messages when they are not
         1052       deliverable when addressed.  When they do so, they MAY either
         1053       provide address-updating information with a 551 code, or may
         1054       reject the message as undeliverable with a 550 code and no
         1055       address-specific information.  But, if a 551 code is used, they
         1056       MUST NOT assume that the client will actually update address
         1057       information or even return that information to the user.
         1058 
         1059    SMTP server implementations that support the 251 and/or 551 reply
         1060    codes are strongly encouraged to provide configuration mechanisms so
         1061    that sites which conclude that they would undesirably disclose
         1062    information can disable or restrict their use.
         1063 
         1064 
         1065 
         1066 Klensin                     Standards Track                    [Page 19]
         1067 
         1068 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1069 
         1070 
         1071 3.5 Commands for Debugging Addresses
         1072 
         1073 3.5.1 Overview
         1074 
         1075    SMTP provides commands to verify a user name or obtain the content of
         1076    a mailing list.  This is done with the VRFY and EXPN commands, which
         1077    have character string arguments.  Implementations SHOULD support VRFY
         1078    and EXPN (however, see section 3.5.2 and 7.3).
         1079 
         1080    For the VRFY command, the string is a user name or a user name and
         1081    domain (see below).  If a normal (i.e., 250) response is returned,
         1082    the response MAY include the full name of the user and MUST include
         1083    the mailbox of the user.  It MUST be in either of the following
         1084    forms:
         1085 
         1086       User Name <local-part@domain>
         1087       local-part@domain
         1088 
         1089    When a name that is the argument to VRFY could identify more than one
         1090    mailbox, the server MAY either note the ambiguity or identify the
         1091    alternatives.  In other words, any of the following are legitimate
         1092    response to VRFY:
         1093 
         1094       553 User ambiguous
         1095 
         1096    or
         1097 
         1098       553- Ambiguous;  Possibilities are
         1099       553-Joe Smith <jsmith@foo.com>
         1100       553-Harry Smith <hsmith@foo.com>
         1101       553 Melvin Smith <dweep@foo.com>
         1102 
         1103    or
         1104 
         1105       553-Ambiguous;  Possibilities
         1106       553- <jsmith@foo.com>
         1107       553- <hsmith@foo.com>
         1108       553 <dweep@foo.com>
         1109 
         1110    Under normal circumstances, a client receiving a 553 reply would be
         1111    expected to expose the result to the user.  Use of exactly the forms
         1112    given, and the "user ambiguous" or "ambiguous" keywords, possibly
         1113    supplemented by extended reply codes such as those described in [34],
         1114    will facilitate automated translation into other languages as needed.
         1115    Of course, a client that was highly automated or that was operating
         1116    in another language than English, might choose to try to translate
         1117    the response, to return some other indication to the user than the
         1118 
         1119 
         1120 
         1121 
         1122 Klensin                     Standards Track                    [Page 20]
         1123 
         1124 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1125 
         1126 
         1127    literal text of the reply, or to take some automated action such as
         1128    consulting a directory service for additional information before
         1129    reporting to the user.
         1130 
         1131    For the EXPN command, the string identifies a mailing list, and the
         1132    successful (i.e., 250) multiline response MAY include the full name
         1133    of the users and MUST give the mailboxes on the mailing list.
         1134 
         1135    In some hosts the distinction between a mailing list and an alias for
         1136    a single mailbox is a bit fuzzy, since a common data structure may
         1137    hold both types of entries, and it is possible to have mailing lists
         1138    containing only one mailbox.  If a request is made to apply VRFY to a
         1139    mailing list, a positive response MAY be given if a message so
         1140    addressed would be delivered to everyone on the list, otherwise an
         1141    error SHOULD be reported (e.g., "550 That is a mailing list, not a
         1142    user" or "252 Unable to verify members of mailing list").  If a
         1143    request is made to expand a user name, the server MAY return a
         1144    positive response consisting of a list containing one name, or an
         1145    error MAY be reported (e.g., "550 That is a user name, not a mailing
         1146    list").
         1147 
         1148    In the case of a successful multiline reply (normal for EXPN) exactly
         1149    one mailbox is to be specified on each line of the reply.  The case
         1150    of an ambiguous request is discussed above.
         1151 
         1152    "User name" is a fuzzy term and has been used deliberately.  An
         1153    implementation of the VRFY or EXPN commands MUST include at least
         1154    recognition of local mailboxes as "user names".  However, since
         1155    current Internet practice often results in a single host handling
         1156    mail for multiple domains, hosts, especially hosts that provide this
         1157    functionality, SHOULD accept the "local-part@domain" form as a "user
         1158    name"; hosts MAY also choose to recognize other strings as "user
         1159    names".
         1160 
         1161    The case of expanding a mailbox list requires a multiline reply, such
         1162    as:
         1163 
         1164       C: EXPN Example-People
         1165       S: 250-Jon Postel <Postel@isi.edu>
         1166       S: 250-Fred Fonebone <Fonebone@physics.foo-u.edu>
         1167       S: 250 Sam Q. Smith <SQSmith@specific.generic.com>
         1168 
         1169    or
         1170 
         1171       C: EXPN Executive-Washroom-List
         1172       S: 550 Access Denied to You.
         1173 
         1174 
         1175 
         1176 
         1177 
         1178 Klensin                     Standards Track                    [Page 21]
         1179 
         1180 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1181 
         1182 
         1183    The character string arguments of the VRFY and EXPN commands cannot
         1184    be further restricted due to the variety of implementations of the
         1185    user name and mailbox list concepts.  On some systems it may be
         1186    appropriate for the argument of the EXPN command to be a file name
         1187    for a file containing a mailing list, but again there are a variety
         1188    of file naming conventions in the Internet.  Similarly, historical
         1189    variations in what is returned by these commands are such that the
         1190    response SHOULD be interpreted very carefully, if at all, and SHOULD
         1191    generally only be used for diagnostic purposes.
         1192 
         1193 3.5.2 VRFY Normal Response
         1194 
         1195    When normal (2yz or 551) responses are returned from a VRFY or EXPN
         1196    request, the reply normally includes the mailbox name, i.e.,
         1197    "<local-part@domain>", where "domain" is a fully qualified domain
         1198    name, MUST appear in the syntax.  In circumstances exceptional enough
         1199    to justify violating the intent of this specification, free-form text
         1200    MAY be returned.  In order to facilitate parsing by both computers
         1201    and people, addresses SHOULD appear in pointed brackets.  When
         1202    addresses, rather than free-form debugging information, are returned,
         1203    EXPN and VRFY MUST return only valid domain addresses that are usable
         1204    in SMTP RCPT commands.  Consequently, if an address implies delivery
         1205    to a program or other system, the mailbox name used to reach that
         1206    target MUST be given.  Paths (explicit source routes) MUST NOT be
         1207    returned by VRFY or EXPN.
         1208 
         1209    Server implementations SHOULD support both VRFY and EXPN.  For
         1210    security reasons, implementations MAY provide local installations a
         1211    way to disable either or both of these commands through configuration
         1212    options or the equivalent.  When these commands are supported, they
         1213    are not required to work across relays when relaying is supported.
         1214    Since they were both optional in RFC 821, they MUST be listed as
         1215    service extensions in an EHLO response, if they are supported.
         1216 
         1217 3.5.3 Meaning of VRFY or EXPN Success Response
         1218 
         1219    A server MUST NOT return a 250 code in response to a VRFY or EXPN
         1220    command unless it has actually verified the address.  In particular,
         1221    a server MUST NOT return 250 if all it has done is to verify that the
         1222    syntax given is valid.  In that case, 502 (Command not implemented)
         1223    or 500 (Syntax error, command unrecognized) SHOULD be returned.  As
         1224    stated elsewhere, implementation (in the sense of actually validating
         1225    addresses and returning information) of VRFY and EXPN are strongly
         1226    recommended.  Hence, implementations that return 500 or 502 for VRFY
         1227    are not in full compliance with this specification.
         1228 
         1229 
         1230 
         1231 
         1232 
         1233 
         1234 Klensin                     Standards Track                    [Page 22]
         1235 
         1236 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1237 
         1238 
         1239    There may be circumstances where an address appears to be valid but
         1240    cannot reasonably be verified in real time, particularly when a
         1241    server is acting as a mail exchanger for another server or domain.
         1242    "Apparent validity" in this case would normally involve at least
         1243    syntax checking and might involve verification that any domains
         1244    specified were ones to which the host expected to be able to relay
         1245    mail.  In these situations, reply code 252 SHOULD be returned.  These
         1246    cases parallel the discussion of RCPT verification discussed in
         1247    section 2.1.  Similarly, the discussion in section 3.4 applies to the
         1248    use of reply codes 251 and 551 with VRFY (and EXPN) to indicate
         1249    addresses that are recognized but that would be forwarded or bounced
         1250    were mail received for them.  Implementations generally SHOULD be
         1251    more aggressive about address verification in the case of VRFY than
         1252    in the case of RCPT, even if it takes a little longer to do so.
         1253 
         1254 3.5.4 Semantics and Applications of EXPN
         1255 
         1256    EXPN is often very useful in debugging and understanding problems
         1257    with mailing lists and multiple-target-address aliases.  Some systems
         1258    have attempted to use source expansion of mailing lists as a means of
         1259    eliminating duplicates.  The propagation of aliasing systems with
         1260    mail on the Internet, for hosts (typically with MX and CNAME DNS
         1261    records), for mailboxes (various types of local host aliases), and in
         1262    various proxying arrangements, has made it nearly impossible for
         1263    these strategies to work consistently, and mail systems SHOULD NOT
         1264    attempt them.
         1265 
         1266 3.6 Domains
         1267 
         1268    Only resolvable, fully-qualified, domain names (FQDNs) are permitted
         1269    when domain names are used in SMTP.  In other words, names that can
         1270    be resolved to MX RRs or A RRs (as discussed in section 5) are
         1271    permitted, as are CNAME RRs whose targets can be resolved, in turn,
         1272    to MX or A RRs.  Local nicknames or unqualified names MUST NOT be
         1273    used.  There are two exceptions to the rule requiring FQDNs:
         1274 
         1275    -  The domain name given in the EHLO command MUST BE either a primary
         1276       host name (a domain name that resolves to an A RR) or, if the host
         1277       has no name, an address literal as described in section 4.1.1.1.
         1278 
         1279    -  The reserved mailbox name "postmaster" may be used in a RCPT
         1280       command without domain qualification (see section 4.1.1.3) and
         1281       MUST be accepted if so used.
         1282 
         1283 
         1284 
         1285 
         1286 
         1287 
         1288 
         1289 
         1290 Klensin                     Standards Track                    [Page 23]
         1291 
         1292 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1293 
         1294 
         1295 3.7 Relaying
         1296 
         1297    In general, the availability of Mail eXchanger records in the domain
         1298    name system [22, 27] makes the use of explicit source routes in the
         1299    Internet mail system unnecessary.  Many historical problems with
         1300    their interpretation have made their use undesirable.  SMTP clients
         1301    SHOULD NOT generate explicit source routes except under unusual
         1302    circumstances.  SMTP servers MAY decline to act as mail relays or to
         1303    accept addresses that specify source routes.  When route information
         1304    is encountered, SMTP servers are also permitted to ignore the route
         1305    information and simply send to the final destination specified as the
         1306    last element in the route and SHOULD do so.  There has been an
         1307    invalid practice of using names that do not appear in the DNS as
         1308    destination names, with the senders counting on the intermediate
         1309    hosts specified in source routing to resolve any problems.  If source
         1310    routes are stripped, this practice will cause failures.  This is one
         1311    of several reasons why SMTP clients MUST NOT generate invalid source
         1312    routes or depend on serial resolution of names.
         1313 
         1314    When source routes are not used, the process described in RFC 821 for
         1315    constructing a reverse-path from the forward-path is not applicable
         1316    and the reverse-path at the time of delivery will simply be the
         1317    address that appeared in the MAIL command.
         1318 
         1319    A relay SMTP server is usually the target of a DNS MX record that
         1320    designates it, rather than the final delivery system.  The relay
         1321    server may accept or reject the task of relaying the mail in the same
         1322    way it accepts or rejects mail for a local user.  If it accepts the
         1323    task, it then becomes an SMTP client, establishes a transmission
         1324    channel to the next SMTP server specified in the DNS (according to
         1325    the rules in section 5), and sends it the mail.  If it declines to
         1326    relay mail to a particular address for policy reasons, a 550 response
         1327    SHOULD be returned.
         1328 
         1329    Many mail-sending clients exist, especially in conjunction with
         1330    facilities that receive mail via POP3 or IMAP, that have limited
         1331    capability to support some of the requirements of this specification,
         1332    such as the ability to queue messages for subsequent delivery
         1333    attempts.  For these clients, it is common practice to make private
         1334    arrangements to send all messages to a single server for processing
         1335    and subsequent distribution.  SMTP, as specified here, is not ideally
         1336    suited for this role, and work is underway on standardized mail
         1337    submission protocols that might eventually supercede the current
         1338    practices.  In any event, because these arrangements are private and
         1339    fall outside the scope of this specification, they are not described
         1340    here.
         1341 
         1342 
         1343 
         1344 
         1345 
         1346 Klensin                     Standards Track                    [Page 24]
         1347 
         1348 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1349 
         1350 
         1351    It is important to note that MX records can point to SMTP servers
         1352    which act as gateways into other environments, not just SMTP relays
         1353    and final delivery systems; see sections 3.8 and 5.
         1354 
         1355    If an SMTP server has accepted the task of relaying the mail and
         1356    later finds that the destination is incorrect or that the mail cannot
         1357    be delivered for some other reason, then it MUST construct an
         1358    "undeliverable mail" notification message and send it to the
         1359    originator of the undeliverable mail (as indicated by the reverse-
         1360    path).  Formats specified for non-delivery reports by other standards
         1361    (see, for example, [24, 25]) SHOULD be used if possible.
         1362 
         1363    This notification message must be from the SMTP server at the relay
         1364    host or the host that first determines that delivery cannot be
         1365    accomplished.  Of course, SMTP servers MUST NOT send notification
         1366    messages about problems transporting notification messages.  One way
         1367    to prevent loops in error reporting is to specify a null reverse-path
         1368    in the MAIL command of a notification message.  When such a message
         1369    is transmitted the reverse-path MUST be set to null (see section
         1370    4.5.5 for additional discussion).  A MAIL command with a null
         1371    reverse-path appears as follows:
         1372 
         1373       MAIL FROM:<>
         1374 
         1375    As discussed in section 2.4.1, a relay SMTP has no need to inspect or
         1376    act upon the headers or body of the message data and MUST NOT do so
         1377    except to add its own "Received:" header (section 4.4) and,
         1378    optionally, to attempt to detect looping in the mail system (see
         1379    section 6.2).
         1380 
         1381 3.8 Mail Gatewaying
         1382 
         1383    While the relay function discussed above operates within the Internet
         1384    SMTP transport service environment, MX records or various forms of
         1385    explicit routing may require that an intermediate SMTP server perform
         1386    a translation function between one transport service and another.  As
         1387    discussed in section 2.3.8, when such a system is at the boundary
         1388    between two transport service environments, we refer to it as a
         1389    "gateway" or "gateway SMTP".
         1390 
         1391    Gatewaying mail between different mail environments, such as
         1392    different mail formats and protocols, is complex and does not easily
         1393    yield to standardization.  However, some general requirements may be
         1394    given for a gateway between the Internet and another mail
         1395    environment.
         1396 
         1397 
         1398 
         1399 
         1400 
         1401 
         1402 Klensin                     Standards Track                    [Page 25]
         1403 
         1404 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1405 
         1406 
         1407 3.8.1 Header Fields in Gatewaying
         1408 
         1409    Header fields MAY be rewritten when necessary as messages are
         1410    gatewayed across mail environment boundaries.  This may involve
         1411    inspecting the message body or interpreting the local-part of the
         1412    destination address in spite of the prohibitions in section 2.4.1.
         1413 
         1414    Other mail systems gatewayed to the Internet often use a subset of
         1415    RFC 822 headers or provide similar functionality with a different
         1416    syntax, but some of these mail systems do not have an equivalent to
         1417    the SMTP envelope.  Therefore, when a message leaves the Internet
         1418    environment, it may be necessary to fold the SMTP envelope
         1419    information into the message header.  A possible solution would be to
         1420    create new header fields to carry the envelope information (e.g.,
         1421    "X-SMTP-MAIL:"  and "X-SMTP-RCPT:"); however, this would require
         1422    changes in mail programs in foreign environments and might risk
         1423    disclosure of private information (see section 7.2).
         1424 
         1425 3.8.2 Received Lines in Gatewaying
         1426 
         1427    When forwarding a message into or out of the Internet environment, a
         1428    gateway MUST prepend a Received: line, but it MUST NOT alter in any
         1429    way a Received: line that is already in the header.
         1430 
         1431    "Received:" fields of messages originating from other environments
         1432    may not conform exactly to this specification.  However, the most
         1433    important use of Received: lines is for debugging mail faults, and
         1434    this debugging can be severely hampered by well-meaning gateways that
         1435    try to "fix" a Received: line.  As another consequence of trace
         1436    fields arising in non-SMTP environments, receiving systems MUST NOT
         1437    reject mail based on the format of a trace field and SHOULD be
         1438    extremely robust in the light of unexpected information or formats in
         1439    those fields.
         1440 
         1441    The gateway SHOULD indicate the environment and protocol in the "via"
         1442    clauses of Received field(s) that it supplies.
         1443 
         1444 3.8.3 Addresses in Gatewaying
         1445 
         1446    From the Internet side, the gateway SHOULD accept all valid address
         1447    formats in SMTP commands and in RFC 822 headers, and all valid RFC
         1448    822 messages.  Addresses and headers generated by gateways MUST
         1449    conform to applicable Internet standards (including this one and RFC
         1450    822).  Gateways are, of course, subject to the same rules for
         1451    handling source routes as those described for other SMTP systems in
         1452    section 3.3.
         1453 
         1454 
         1455 
         1456 
         1457 
         1458 Klensin                     Standards Track                    [Page 26]
         1459 
         1460 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1461 
         1462 
         1463 3.8.4 Other Header Fields in Gatewaying
         1464 
         1465    The gateway MUST ensure that all header fields of a message that it
         1466    forwards into the Internet mail environment meet the requirements for
         1467    Internet mail.  In particular, all addresses in "From:", "To:",
         1468    "Cc:", etc., fields MUST be transformed (if necessary) to satisfy RFC
         1469    822 syntax, MUST reference only fully-qualified domain names, and
         1470    MUST be effective and useful for sending replies.  The translation
         1471    algorithm used to convert mail from the Internet protocols to another
         1472    environment's protocol SHOULD ensure that error messages from the
         1473    foreign mail environment are delivered to the return path from the
         1474    SMTP envelope, not to the sender listed in the "From:" field (or
         1475    other fields) of the RFC 822 message.
         1476 
         1477 3.8.5 Envelopes in Gatewaying
         1478 
         1479    Similarly, when forwarding a message from another environment into
         1480    the Internet, the gateway SHOULD set the envelope return path in
         1481    accordance with an error message return address, if supplied by the
         1482    foreign environment.  If the foreign environment has no equivalent
         1483    concept, the gateway must select and use a best approximation, with
         1484    the message originator's address as the default of last resort.
         1485 
         1486 3.9 Terminating Sessions and Connections
         1487 
         1488    An SMTP connection is terminated when the client sends a QUIT
         1489    command.  The server responds with a positive reply code, after which
         1490    it closes the connection.
         1491 
         1492    An SMTP server MUST NOT intentionally close the connection except:
         1493 
         1494    -  After receiving a QUIT command and responding with a 221 reply.
         1495 
         1496    -  After detecting the need to shut down the SMTP service and
         1497       returning a 421 response code.  This response code can be issued
         1498       after the server receives any command or, if necessary,
         1499       asynchronously from command receipt (on the assumption that the
         1500       client will receive it after the next command is issued).
         1501 
         1502    In particular, a server that closes connections in response to
         1503    commands that are not understood is in violation of this
         1504    specification.  Servers are expected to be tolerant of unknown
         1505    commands, issuing a 500 reply and awaiting further instructions from
         1506    the client.
         1507 
         1508 
         1509 
         1510 
         1511 
         1512 
         1513 
         1514 Klensin                     Standards Track                    [Page 27]
         1515 
         1516 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1517 
         1518 
         1519    An SMTP server which is forcibly shut down via external means SHOULD
         1520    attempt to send a line containing a 421 response code to the SMTP
         1521    client before exiting.  The SMTP client will normally read the 421
         1522    response code after sending its next command.
         1523 
         1524    SMTP clients that experience a connection close, reset, or other
         1525    communications failure due to circumstances not under their control
         1526    (in violation of the intent of this specification but sometimes
         1527    unavoidable) SHOULD, to maintain the robustness of the mail system,
         1528    treat the mail transaction as if a 451 response had been received and
         1529    act accordingly.
         1530 
         1531 3.10 Mailing Lists and Aliases
         1532 
         1533    An SMTP-capable host SHOULD support both the alias and the list
         1534    models of address expansion for multiple delivery.  When a message is
         1535    delivered or forwarded to each address of an expanded list form, the
         1536    return address in the envelope ("MAIL FROM:") MUST be changed to be
         1537    the address of a person or other entity who administers the list.
         1538    However, in this case, the message header [32] MUST be left
         1539    unchanged; in particular, the "From" field of the message header is
         1540    unaffected.
         1541 
         1542    An important mail facility is a mechanism for multi-destination
         1543    delivery of a single message, by transforming (or "expanding" or
         1544    "exploding") a pseudo-mailbox address into a list of destination
         1545    mailbox addresses.  When a message is sent to such a pseudo-mailbox
         1546    (sometimes called an "exploder"), copies are forwarded or
         1547    redistributed to each mailbox in the expanded list.  Servers SHOULD
         1548    simply utilize the addresses on the list; application of heuristics
         1549    or other matching rules to eliminate some addresses, such as that of
         1550    the originator, is strongly discouraged.  We classify such a pseudo-
         1551    mailbox as an "alias" or a "list", depending upon the expansion
         1552    rules.
         1553 
         1554 3.10.1 Alias
         1555 
         1556    To expand an alias, the recipient mailer simply replaces the pseudo-
         1557    mailbox address in the envelope with each of the expanded addresses
         1558    in turn; the rest of the envelope and the message body are left
         1559    unchanged.  The message is then delivered or forwarded to each
         1560    expanded address.
         1561 
         1562 3.10.2 List
         1563 
         1564    A mailing list may be said to operate by "redistribution" rather than
         1565    by "forwarding".  To expand a list, the recipient mailer replaces the
         1566    pseudo-mailbox address in the envelope with all of the expanded
         1567 
         1568 
         1569 
         1570 Klensin                     Standards Track                    [Page 28]
         1571 
         1572 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1573 
         1574 
         1575    addresses.  The return address in the envelope is changed so that all
         1576    error messages generated by the final deliveries will be returned to
         1577    a list administrator, not to the message originator, who generally
         1578    has no control over the contents of the list and will typically find
         1579    error messages annoying.
         1580 
         1581 4. The SMTP Specifications
         1582 
         1583 4.1 SMTP Commands
         1584 
         1585 4.1.1 Command Semantics and Syntax
         1586 
         1587    The SMTP commands define the mail transfer or the mail system
         1588    function requested by the user.  SMTP commands are character strings
         1589    terminated by <CRLF>.  The commands themselves are alphabetic
         1590    characters terminated by <SP> if parameters follow and <CRLF>
         1591    otherwise.  (In the interest of improved interoperability, SMTP
         1592    receivers are encouraged to tolerate trailing white space before the
         1593    terminating <CRLF>.)  The syntax of the local part of a mailbox must
         1594    conform to receiver site conventions and the syntax specified in
         1595    section 4.1.2.  The SMTP commands are discussed below.  The SMTP
         1596    replies are discussed in section 4.2.
         1597 
         1598    A mail transaction involves several data objects which are
         1599    communicated as arguments to different commands.  The reverse-path is
         1600    the argument of the MAIL command, the forward-path is the argument of
         1601    the RCPT command, and the mail data is the argument of the DATA
         1602    command.  These arguments or data objects must be transmitted and
         1603    held pending the confirmation communicated by the end of mail data
         1604    indication which finalizes the transaction.  The model for this is
         1605    that distinct buffers are provided to hold the types of data objects,
         1606    that is, there is a reverse-path buffer, a forward-path buffer, and a
         1607    mail data buffer.  Specific commands cause information to be appended
         1608    to a specific buffer, or cause one or more buffers to be cleared.
         1609 
         1610    Several commands (RSET, DATA, QUIT) are specified as not permitting
         1611    parameters.  In the absence of specific extensions offered by the
         1612    server and accepted by the client, clients MUST NOT send such
         1613    parameters and servers SHOULD reject commands containing them as
         1614    having invalid syntax.
         1615 
         1616 4.1.1.1  Extended HELLO (EHLO) or HELLO (HELO)
         1617 
         1618    These commands are used to identify the SMTP client to the SMTP
         1619    server.  The argument field contains the fully-qualified domain name
         1620    of the SMTP client if one is available.  In situations in which the
         1621    SMTP client system does not have a meaningful domain name (e.g., when
         1622    its address is dynamically allocated and no reverse mapping record is
         1623 
         1624 
         1625 
         1626 Klensin                     Standards Track                    [Page 29]
         1627 
         1628 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1629 
         1630 
         1631    available), the client SHOULD send an address literal (see section
         1632    4.1.3), optionally followed by information that will help to identify
         1633    the client system.  y The SMTP server identifies itself to the SMTP
         1634    client in the connection greeting reply and in the response to this
         1635    command.
         1636 
         1637    A client SMTP SHOULD start an SMTP session by issuing the EHLO
         1638    command.  If the SMTP server supports the SMTP service extensions it
         1639    will give a successful response, a failure response, or an error
         1640    response.  If the SMTP server, in violation of this specification,
         1641    does not support any SMTP service extensions it will generate an
         1642    error response.  Older client SMTP systems MAY, as discussed above,
         1643    use HELO (as specified in RFC 821) instead of EHLO, and servers MUST
         1644    support the HELO command and reply properly to it.  In any event, a
         1645    client MUST issue HELO or EHLO before starting a mail transaction.
         1646 
         1647    These commands, and a "250 OK" reply to one of them, confirm that
         1648    both the SMTP client and the SMTP server are in the initial state,
         1649    that is, there is no transaction in progress and all state tables and
         1650    buffers are cleared.
         1651 
         1652    Syntax:
         1653 
         1654       ehlo            = "EHLO" SP Domain CRLF
         1655       helo            = "HELO" SP Domain CRLF
         1656 
         1657    Normally, the response to EHLO will be a multiline reply.  Each line
         1658    of the response contains a keyword and, optionally, one or more
         1659    parameters.  Following the normal syntax for multiline replies, these
         1660    keyworks follow the code (250) and a hyphen for all but the last
         1661    line, and the code and a space for the last line.  The syntax for a
         1662    positive response, using the ABNF notation and terminal symbols of
         1663    [8], is:
         1664 
         1665       ehlo-ok-rsp  =    ( "250"    domain [ SP ehlo-greet ] CRLF )
         1666                    / (    "250-"   domain [ SP ehlo-greet ] CRLF
         1667                        *( "250-"   ehlo-line                CRLF )
         1668                           "250"    SP ehlo-line             CRLF  )
         1669 
         1670       ehlo-greet   = 1*(%d0-9 / %d11-12 / %d14-127)
         1671                    ; string of any characters other than CR or LF
         1672 
         1673       ehlo-line    = ehlo-keyword *( SP ehlo-param )
         1674 
         1675       ehlo-keyword = (ALPHA / DIGIT) *(ALPHA / DIGIT / "-")
         1676                    ; additional syntax of ehlo-params depends on
         1677                    ; ehlo-keyword
         1678 
         1679 
         1680 
         1681 
         1682 Klensin                     Standards Track                    [Page 30]
         1683 
         1684 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1685 
         1686 
         1687       ehlo-param   = 1*(%d33-127)
         1688                    ; any CHAR excluding <SP> and all
         1689                    ; control characters (US-ASCII 0-31 inclusive)
         1690 
         1691    Although EHLO keywords may be specified in upper, lower, or mixed
         1692    case, they MUST always be recognized and processed in a case-
         1693    insensitive manner.  This is simply an extension of practices
         1694    specified in RFC 821 and section 2.4.1.
         1695 
         1696 4.1.1.2 MAIL (MAIL)
         1697 
         1698    This command is used to initiate a mail transaction in which the mail
         1699    data is delivered to an SMTP server which may, in turn, deliver it to
         1700    one or more mailboxes or pass it on to another system (possibly using
         1701    SMTP).  The argument field contains a reverse-path and may contain
         1702    optional parameters.  In general, the MAIL command may be sent only
         1703    when no mail transaction is in progress, see section 4.1.4.
         1704 
         1705    The reverse-path consists of the sender mailbox.  Historically, that
         1706    mailbox might optionally have been preceded by a list of hosts, but
         1707    that behavior is now deprecated (see appendix C).  In some types of
         1708    reporting messages for which a reply is likely to cause a mail loop
         1709    (for example, mail delivery and nondelivery notifications), the
         1710    reverse-path may be null (see section 3.7).
         1711 
         1712    This command clears the reverse-path buffer, the forward-path buffer,
         1713    and the mail data buffer; and inserts the reverse-path information
         1714    from this command into the reverse-path buffer.
         1715 
         1716    If service extensions were negotiated, the MAIL command may also
         1717    carry parameters associated with a particular service extension.
         1718 
         1719    Syntax:
         1720 
         1721       "MAIL FROM:" ("<>" / Reverse-Path)
         1722                        [SP Mail-parameters] CRLF
         1723 
         1724 4.1.1.3 RECIPIENT (RCPT)
         1725 
         1726    This command is used to identify an individual recipient of the mail
         1727    data; multiple recipients are specified by multiple use of this
         1728    command.  The argument field contains a forward-path and may contain
         1729    optional parameters.
         1730 
         1731    The forward-path normally consists of the required destination
         1732    mailbox.  Sending systems SHOULD not generate the optional list of
         1733    hosts known as a source route.  Receiving systems MUST recognize
         1734 
         1735 
         1736 
         1737 
         1738 Klensin                     Standards Track                    [Page 31]
         1739 
         1740 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1741 
         1742 
         1743    source route syntax but SHOULD strip off the source route
         1744    specification and utilize the domain name associated with the mailbox
         1745    as if the source route had not been provided.
         1746 
         1747    Similarly, relay hosts SHOULD strip or ignore source routes, and
         1748    names MUST NOT be copied into the reverse-path.  When mail reaches
         1749    its ultimate destination (the forward-path contains only a
         1750    destination mailbox), the SMTP server inserts it into the destination
         1751    mailbox in accordance with its host mail conventions.
         1752 
         1753    For example, mail received at relay host xyz.com with envelope
         1754    commands
         1755 
         1756       MAIL FROM:<userx@y.foo.org>
         1757       RCPT TO:<@hosta.int,@jkl.org:userc@d.bar.org>
         1758 
         1759    will normally be sent directly on to host d.bar.org with envelope
         1760    commands
         1761 
         1762       MAIL FROM:<userx@y.foo.org>
         1763       RCPT TO:<userc@d.bar.org>
         1764 
         1765    As provided in appendix C, xyz.com MAY also choose to relay the
         1766    message to hosta.int, using the envelope commands
         1767 
         1768       MAIL FROM:<userx@y.foo.org>
         1769       RCPT TO:<@hosta.int,@jkl.org:userc@d.bar.org>
         1770 
         1771    or to jkl.org, using the envelope commands
         1772 
         1773       MAIL FROM:<userx@y.foo.org>
         1774       RCPT TO:<@jkl.org:userc@d.bar.org>
         1775 
         1776    Of course, since hosts are not required to relay mail at all, xyz.com
         1777    may also reject the message entirely when the RCPT command is
         1778    received, using a 550 code (since this is a "policy reason").
         1779 
         1780    If service extensions were negotiated, the RCPT command may also
         1781    carry parameters associated with a particular service extension
         1782    offered by the server.  The client MUST NOT transmit parameters other
         1783    than those associated with a service extension offered by the server
         1784    in its EHLO response.
         1785 
         1786 Syntax:
         1787    "RCPT TO:" ("<Postmaster@" domain ">" / "<Postmaster>" / Forward-Path)
         1788                     [SP Rcpt-parameters] CRLF
         1789 
         1790 
         1791 
         1792 
         1793 
         1794 Klensin                     Standards Track                    [Page 32]
         1795 
         1796 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1797 
         1798 
         1799 4.1.1.4 DATA (DATA)
         1800 
         1801    The receiver normally sends a 354 response to DATA, and then treats
         1802    the lines (strings ending in <CRLF> sequences, as described in
         1803    section 2.3.7) following the command as mail data from the sender.
         1804    This command causes the mail data to be appended to the mail data
         1805    buffer.  The mail data may contain any of the 128 ASCII character
         1806    codes, although experience has indicated that use of control
         1807    characters other than SP, HT, CR, and LF may cause problems and
         1808    SHOULD be avoided when possible.
         1809 
         1810    The mail data is terminated by a line containing only a period, that
         1811    is, the character sequence "<CRLF>.<CRLF>" (see section 4.5.2).  This
         1812    is the end of mail data indication.  Note that the first <CRLF> of
         1813    this terminating sequence is also the <CRLF> that ends the final line
         1814    of the data (message text) or, if there was no data, ends the DATA
         1815    command itself.  An extra <CRLF> MUST NOT be added, as that would
         1816    cause an empty line to be added to the message.  The only exception
         1817    to this rule would arise if the message body were passed to the
         1818    originating SMTP-sender with a final "line" that did not end in
         1819    <CRLF>; in that case, the originating SMTP system MUST either reject
         1820    the message as invalid or add <CRLF> in order to have the receiving
         1821    SMTP server recognize the "end of data" condition.
         1822 
         1823    The custom of accepting lines ending only in <LF>, as a concession to
         1824    non-conforming behavior on the part of some UNIX systems, has proven
         1825    to cause more interoperability problems than it solves, and SMTP
         1826    server systems MUST NOT do this, even in the name of improved
         1827    robustness.  In particular, the sequence "<LF>.<LF>" (bare line
         1828    feeds, without carriage returns) MUST NOT be treated as equivalent to
         1829    <CRLF>.<CRLF> as the end of mail data indication.
         1830 
         1831    Receipt of the end of mail data indication requires the server to
         1832    process the stored mail transaction information.  This processing
         1833    consumes the information in the reverse-path buffer, the forward-path
         1834    buffer, and the mail data buffer, and on the completion of this
         1835    command these buffers are cleared.  If the processing is successful,
         1836    the receiver MUST send an OK reply.  If the processing fails the
         1837    receiver MUST send a failure reply.  The SMTP model does not allow
         1838    for partial failures at this point: either the message is accepted by
         1839    the server for delivery and a positive response is returned or it is
         1840    not accepted and a failure reply is returned.  In sending a positive
         1841    completion reply to the end of data indication, the receiver takes
         1842    full responsibility for the message (see section 6.1).  Errors that
         1843    are diagnosed subsequently MUST be reported in a mail message, as
         1844    discussed in section 4.4.
         1845 
         1846 
         1847 
         1848 
         1849 
         1850 Klensin                     Standards Track                    [Page 33]
         1851 
         1852 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1853 
         1854 
         1855    When the SMTP server accepts a message either for relaying or for
         1856    final delivery, it inserts a trace record (also referred to
         1857    interchangeably as a "time stamp line" or "Received" line) at the top
         1858    of the mail data.  This trace record indicates the identity of the
         1859    host that sent the message, the identity of the host that received
         1860    the message (and is inserting this time stamp), and the date and time
         1861    the message was received.  Relayed messages will have multiple time
         1862    stamp lines.  Details for formation of these lines, including their
         1863    syntax, is specified in section 4.4.
         1864 
         1865    Additional discussion about the operation of the DATA command appears
         1866    in section 3.3.
         1867 
         1868    Syntax:
         1869       "DATA" CRLF
         1870 
         1871 4.1.1.5 RESET (RSET)
         1872 
         1873    This command specifies that the current mail transaction will be
         1874    aborted.  Any stored sender, recipients, and mail data MUST be
         1875    discarded, and all buffers and state tables cleared.  The receiver
         1876    MUST send a "250 OK" reply to a RSET command with no arguments.  A
         1877    reset command may be issued by the client at any time.  It is
         1878    effectively equivalent to a NOOP (i.e., if has no effect) if issued
         1879    immediately after EHLO, before EHLO is issued in the session, after
         1880    an end-of-data indicator has been sent and acknowledged, or
         1881    immediately before a QUIT.  An SMTP server MUST NOT close the
         1882    connection as the result of receiving a RSET; that action is reserved
         1883    for QUIT (see section 4.1.1.10).
         1884 
         1885    Since EHLO implies some additional processing and response by the
         1886    server, RSET will normally be more efficient than reissuing that
         1887    command, even though the formal semantics are the same.
         1888 
         1889    There are circumstances, contrary to the intent of this
         1890    specification, in which an SMTP server may receive an indication that
         1891    the underlying TCP connection has been closed or reset.  To preserve
         1892    the robustness of the mail system, SMTP servers SHOULD be prepared
         1893    for this condition and SHOULD treat it as if a QUIT had been received
         1894    before the connection disappeared.
         1895 
         1896    Syntax:
         1897       "RSET" CRLF
         1898 
         1899 
         1900 
         1901 
         1902 
         1903 
         1904 
         1905 
         1906 Klensin                     Standards Track                    [Page 34]
         1907 
         1908 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1909 
         1910 
         1911 4.1.1.6 VERIFY (VRFY)
         1912 
         1913    This command asks the receiver to confirm that the argument
         1914    identifies a user or mailbox.  If it is a user name, information is
         1915    returned as specified in section 3.5.
         1916 
         1917    This command has no effect on the reverse-path buffer, the forward-
         1918    path buffer, or the mail data buffer.
         1919 
         1920    Syntax:
         1921       "VRFY" SP String CRLF
         1922 
         1923 4.1.1.7 EXPAND (EXPN)
         1924 
         1925    This command asks the receiver to confirm that the argument
         1926    identifies a mailing list, and if so, to return the membership of
         1927    that list.  If the command is successful, a reply is returned
         1928    containing information as described in section 3.5.  This reply will
         1929    have multiple lines except in the trivial case of a one-member list.
         1930 
         1931    This command has no effect on the reverse-path buffer, the forward-
         1932    path buffer, or the mail data buffer and may be issued at any time.
         1933 
         1934    Syntax:
         1935       "EXPN" SP String CRLF
         1936 
         1937 4.1.1.8 HELP (HELP)
         1938 
         1939    This command causes the server to send helpful information to the
         1940    client.  The command MAY take an argument (e.g., any command name)
         1941    and return more specific information as a response.
         1942 
         1943    This command has no effect on the reverse-path buffer, the forward-
         1944    path buffer, or the mail data buffer and may be issued at any time.
         1945 
         1946    SMTP servers SHOULD support HELP without arguments and MAY support it
         1947    with arguments.
         1948 
         1949    Syntax:
         1950       "HELP" [ SP String ] CRLF
         1951 
         1952 4.1.1.9 NOOP (NOOP)
         1953 
         1954    This command does not affect any parameters or previously entered
         1955    commands.  It specifies no action other than that the receiver send
         1956    an OK reply.
         1957 
         1958 
         1959 
         1960 
         1961 
         1962 Klensin                     Standards Track                    [Page 35]
         1963 
         1964 RFC 2821             Simple Mail Transfer Protocol            April 2001
         1965 
         1966 
         1967    This command has no effect on the reverse-path buffer, the forward-
         1968    path buffer, or the mail data buffer and may be issued at any time.
         1969    If a parameter string is specified, servers SHOULD ignore it.
         1970 
         1971    Syntax:
         1972       "NOOP" [ SP String ] CRLF
         1973 
         1974 4.1.1.10 QUIT (QUIT)
         1975 
         1976    This command specifies that the receiver MUST send an OK reply, and
         1977    then close the transmission channel.
         1978 
         1979    The receiver MUST NOT intentionally close the transmission channel
         1980    until it receives and replies to a QUIT command (even if there was an
         1981    error).  The sender MUST NOT intentionally close the transmission
         1982    channel until it sends a QUIT command and SHOULD wait until it
         1983    receives the reply (even if there was an error response to a previous
         1984    command).  If the connection is closed prematurely due to violations
         1985    of the above or system or network failure, the server MUST cancel any
         1986    pending transaction, but not undo any previously completed
         1987    transaction, and generally MUST act as if the command or transaction
         1988    in progress had received a temporary error (i.e., a 4yz response).
         1989 
         1990    The QUIT command may be issued at any time.
         1991 
         1992    Syntax:
         1993       "QUIT" CRLF
         1994 
         1995 4.1.2 Command Argument Syntax
         1996 
         1997    The syntax of the argument fields of the above commands (using the
         1998    syntax specified in [8] where applicable) is given below.  Some of
         1999    the productions given below are used only in conjunction with source
         2000    routes as described in appendix C.  Terminals not defined in this
         2001    document, such as ALPHA, DIGIT, SP, CR, LF, CRLF, are as defined in
         2002    the "core" syntax [8 (section 6)] or in the message format syntax
         2003    [32].
         2004 
         2005       Reverse-path = Path
         2006       Forward-path = Path
         2007       Path = "<" [ A-d-l ":" ] Mailbox ">"
         2008       A-d-l = At-domain *( "," A-d-l )
         2009             ; Note that this form, the so-called "source route",
         2010             ; MUST BE accepted, SHOULD NOT be generated, and SHOULD be
         2011             ; ignored.
         2012       At-domain = "@" domain
         2013       Mail-parameters = esmtp-param *(SP esmtp-param)
         2014       Rcpt-parameters = esmtp-param *(SP esmtp-param)
         2015 
         2016 
         2017 
         2018 Klensin                     Standards Track                    [Page 36]
         2019 
         2020 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2021 
         2022 
         2023       esmtp-param     = esmtp-keyword ["=" esmtp-value]
         2024       esmtp-keyword   = (ALPHA / DIGIT) *(ALPHA / DIGIT / "-")
         2025       esmtp-value     = 1*(%d33-60 / %d62-127)
         2026             ; any CHAR excluding "=", SP, and control characters
         2027       Keyword  = Ldh-str
         2028       Argument = Atom
         2029       Domain = (sub-domain 1*("." sub-domain)) / address-literal
         2030       sub-domain = Let-dig [Ldh-str]
         2031 
         2032       address-literal = "[" IPv4-address-literal /
         2033                             IPv6-address-literal /
         2034                             General-address-literal "]"
         2035             ; See section 4.1.3
         2036 
         2037       Mailbox = Local-part "@" Domain
         2038 
         2039       Local-part = Dot-string / Quoted-string
         2040             ; MAY be case-sensitive
         2041 
         2042       Dot-string = Atom *("." Atom)
         2043 
         2044       Atom = 1*atext
         2045 
         2046       Quoted-string = DQUOTE *qcontent DQUOTE
         2047 
         2048       String = Atom / Quoted-string
         2049 
         2050    While the above definition for Local-part is relatively permissive,
         2051    for maximum interoperability, a host that expects to receive mail
         2052    SHOULD avoid defining mailboxes where the Local-part requires (or
         2053    uses) the Quoted-string form or where the Local-part is case-
         2054    sensitive.  For any purposes that require generating or comparing
         2055    Local-parts (e.g., to specific mailbox names), all quoted forms MUST
         2056    be treated as equivalent and the sending system SHOULD transmit the
         2057    form that uses the minimum quoting possible.
         2058 
         2059    Systems MUST NOT define mailboxes in such a way as to require the use
         2060    in SMTP of non-ASCII characters (octets with the high order bit set
         2061    to one) or ASCII "control characters" (decimal value 0-31 and 127).
         2062    These characters MUST NOT be used in MAIL or RCPT commands or other
         2063    commands that require mailbox names.
         2064 
         2065    Note that the backslash, "\", is a quote character, which is used to
         2066    indicate that the next character is to be used literally (instead of
         2067    its normal interpretation).  For example, "Joe\,Smith" indicates a
         2068    single nine character user field with the comma being the fourth
         2069    character of the field.
         2070 
         2071 
         2072 
         2073 
         2074 Klensin                     Standards Track                    [Page 37]
         2075 
         2076 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2077 
         2078 
         2079    To promote interoperability and consistent with long-standing
         2080    guidance about conservative use of the DNS in naming and applications
         2081    (e.g., see section 2.3.1 of the base DNS document, RFC1035 [22]),
         2082    characters outside the set of alphas, digits, and hyphen MUST NOT
         2083    appear in domain name labels for SMTP clients or servers.  In
         2084    particular, the underscore character is not permitted.  SMTP servers
         2085    that receive a command in which invalid character codes have been
         2086    employed, and for which there are no other reasons for rejection,
         2087    MUST reject that command with a 501 response.
         2088 
         2089 4.1.3 Address Literals
         2090 
         2091    Sometimes a host is not known to the domain name system and
         2092    communication (and, in particular, communication to report and repair
         2093    the error) is blocked.  To bypass this barrier a special literal form
         2094    of the address is allowed as an alternative to a domain name.  For
         2095    IPv4 addresses, this form uses four small decimal integers separated
         2096    by dots and enclosed by brackets such as [123.255.37.2], which
         2097    indicates an (IPv4) Internet Address in sequence-of-octets form.  For
         2098    IPv6 and other forms of addressing that might eventually be
         2099    standardized, the form consists of a standardized "tag" that
         2100    identifies the address syntax, a colon, and the address itself, in a
         2101    format specified as part of the IPv6 standards [17].
         2102 
         2103    Specifically:
         2104 
         2105       IPv4-address-literal = Snum 3("." Snum)
         2106       IPv6-address-literal = "IPv6:" IPv6-addr
         2107       General-address-literal = Standardized-tag ":" 1*dcontent
         2108       Standardized-tag = Ldh-str
         2109             ; MUST be specified in a standards-track RFC
         2110             ; and registered with IANA
         2111 
         2112       Snum = 1*3DIGIT  ; representing a decimal integer
         2113             ; value in the range 0 through 255
         2114       Let-dig = ALPHA / DIGIT
         2115       Ldh-str = *( ALPHA / DIGIT / "-" ) Let-dig
         2116 
         2117       IPv6-addr = IPv6-full / IPv6-comp / IPv6v4-full / IPv6v4-comp
         2118       IPv6-hex  = 1*4HEXDIG
         2119       IPv6-full = IPv6-hex 7(":" IPv6-hex)
         2120       IPv6-comp = [IPv6-hex *5(":" IPv6-hex)] "::" [IPv6-hex *5(":"
         2121                  IPv6-hex)]
         2122             ; The "::" represents at least 2 16-bit groups of zeros
         2123             ; No more than 6 groups in addition to the "::" may be
         2124             ; present
         2125       IPv6v4-full = IPv6-hex 5(":" IPv6-hex) ":" IPv4-address-literal
         2126       IPv6v4-comp = [IPv6-hex *3(":" IPv6-hex)] "::"
         2127 
         2128 
         2129 
         2130 Klensin                     Standards Track                    [Page 38]
         2131 
         2132 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2133 
         2134 
         2135                    [IPv6-hex *3(":" IPv6-hex) ":"] IPv4-address-literal
         2136             ; The "::" represents at least 2 16-bit groups of zeros
         2137             ; No more than 4 groups in addition to the "::" and
         2138             ; IPv4-address-literal may be present
         2139 
         2140 4.1.4 Order of Commands
         2141 
         2142    There are restrictions on the order in which these commands may be
         2143    used.
         2144 
         2145    A session that will contain mail transactions MUST first be
         2146    initialized by the use of the EHLO command.  An SMTP server SHOULD
         2147    accept commands for non-mail transactions (e.g., VRFY or EXPN)
         2148    without this initialization.
         2149 
         2150    An EHLO command MAY be issued by a client later in the session.  If
         2151    it is issued after the session begins, the SMTP server MUST clear all
         2152    buffers and reset the state exactly as if a RSET command had been
         2153    issued.  In other words, the sequence of RSET followed immediately by
         2154    EHLO is redundant, but not harmful other than in the performance cost
         2155    of executing unnecessary commands.
         2156 
         2157    If the EHLO command is not acceptable to the SMTP server, 501, 500,
         2158    or 502 failure replies MUST be returned as appropriate.  The SMTP
         2159    server MUST stay in the same state after transmitting these replies
         2160    that it was in before the EHLO was received.
         2161 
         2162    The SMTP client MUST, if possible, ensure that the domain parameter
         2163    to the EHLO command is a valid principal host name (not a CNAME or MX
         2164    name) for its host.  If this is not possible (e.g., when the client's
         2165    address is dynamically assigned and the client does not have an
         2166    obvious name), an address literal SHOULD be substituted for the
         2167    domain name and supplemental information provided that will assist in
         2168    identifying the client.
         2169 
         2170    An SMTP server MAY verify that the domain name parameter in the EHLO
         2171    command actually corresponds to the IP address of the client.
         2172    However, the server MUST NOT refuse to accept a message for this
         2173    reason if the verification fails: the information about verification
         2174    failure is for logging and tracing only.
         2175 
         2176    The NOOP, HELP, EXPN, VRFY, and RSET commands can be used at any time
         2177    during a session, or without previously initializing a session.  SMTP
         2178    servers SHOULD process these normally (that is, not return a 503
         2179    code) even if no EHLO command has yet been received; clients SHOULD
         2180    open a session with EHLO before sending these commands.
         2181 
         2182 
         2183 
         2184 
         2185 
         2186 Klensin                     Standards Track                    [Page 39]
         2187 
         2188 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2189 
         2190 
         2191    If these rules are followed, the example in RFC 821 that shows "550
         2192    access denied to you" in response to an EXPN command is incorrect
         2193    unless an EHLO command precedes the EXPN or the denial of access is
         2194    based on the client's IP address or other authentication or
         2195    authorization-determining mechanisms.
         2196 
         2197    The MAIL command (or the obsolete SEND, SOML, or SAML commands)
         2198    begins a mail transaction.  Once started, a mail transaction consists
         2199    of a transaction beginning command, one or more RCPT commands, and a
         2200    DATA command, in that order.  A mail transaction may be aborted by
         2201    the RSET (or a new EHLO) command.  There may be zero or more
         2202    transactions in a session.  MAIL (or SEND, SOML, or SAML) MUST NOT be
         2203    sent if a mail transaction is already open, i.e., it should be sent
         2204    only if no mail transaction had been started in the session, or it
         2205    the previous one successfully concluded with a successful DATA
         2206    command, or if the previous one was aborted with a RSET.
         2207 
         2208    If the transaction beginning command argument is not acceptable, a
         2209    501 failure reply MUST be returned and the SMTP server MUST stay in
         2210    the same state.  If the commands in a transaction are out of order to
         2211    the degree that they cannot be processed by the server, a 503 failure
         2212    reply MUST be returned and the SMTP server MUST stay in the same
         2213    state.
         2214 
         2215    The last command in a session MUST be the QUIT command.  The QUIT
         2216    command cannot be used at any other time in a session, but SHOULD be
         2217    used by the client SMTP to request connection closure, even when no
         2218    session opening command was sent and accepted.
         2219 
         2220 4.1.5 Private-use Commands
         2221 
         2222    As specified in section 2.2.2, commands starting in "X" may be used
         2223    by bilateral agreement between the client (sending) and server
         2224    (receiving) SMTP agents.  An SMTP server that does not recognize such
         2225    a command is expected to reply with "500 Command not recognized".  An
         2226    extended SMTP server MAY list the feature names associated with these
         2227    private commands in the response to the EHLO command.
         2228 
         2229    Commands sent or accepted by SMTP systems that do not start with "X"
         2230    MUST conform to the requirements of section 2.2.2.
         2231 
         2232 4.2 SMTP Replies
         2233 
         2234    Replies to SMTP commands serve to ensure the synchronization of
         2235    requests and actions in the process of mail transfer and to guarantee
         2236    that the SMTP client always knows the state of the SMTP server.
         2237    Every command MUST generate exactly one reply.
         2238 
         2239 
         2240 
         2241 
         2242 Klensin                     Standards Track                    [Page 40]
         2243 
         2244 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2245 
         2246 
         2247    The details of the command-reply sequence are described in section
         2248    4.3.
         2249 
         2250    An SMTP reply consists of a three digit number (transmitted as three
         2251    numeric characters) followed by some text unless specified otherwise
         2252    in this document.  The number is for use by automata to determine
         2253    what state to enter next; the text is for the human user.  The three
         2254    digits contain enough encoded information that the SMTP client need
         2255    not examine the text and may either discard it or pass it on to the
         2256    user, as appropriate.  Exceptions are as noted elsewhere in this
         2257    document.  In particular, the 220, 221, 251, 421, and 551 reply codes
         2258    are associated with message text that must be parsed and interpreted
         2259    by machines.  In the general case, the text may be receiver dependent
         2260    and context dependent, so there are likely to be varying texts for
         2261    each reply code.  A discussion of the theory of reply codes is given
         2262    in section 4.2.1.  Formally, a reply is defined to be the sequence: a
         2263    three-digit code, <SP>, one line of text, and <CRLF>, or a multiline
         2264    reply (as defined in section 4.2.1).  Since, in violation of this
         2265    specification, the text is sometimes not sent, clients which do not
         2266    receive it SHOULD be prepared to process the code alone (with or
         2267    without a trailing space character).  Only the EHLO, EXPN, and HELP
         2268    commands are expected to result in multiline replies in normal
         2269    circumstances, however, multiline replies are allowed for any
         2270    command.
         2271 
         2272    In ABNF, server responses are:
         2273 
         2274       Greeting = "220 " Domain [ SP text ] CRLF
         2275       Reply-line = Reply-code [ SP text ] CRLF
         2276 
         2277    where "Greeting" appears only in the 220 response that announces that
         2278    the server is opening its part of the connection.
         2279 
         2280    An SMTP server SHOULD send only the reply codes listed in this
         2281    document.  An SMTP server SHOULD use the text shown in the examples
         2282    whenever appropriate.
         2283 
         2284    An SMTP client MUST determine its actions only by the reply code, not
         2285    by the text (except for the "change of address" 251 and 551 and, if
         2286    necessary, 220, 221, and 421 replies); in the general case, any text,
         2287    including no text at all (although senders SHOULD NOT send bare
         2288    codes), MUST be acceptable.  The space (blank) following the reply
         2289    code is considered part of the text.  Whenever possible, a receiver-
         2290    SMTP SHOULD test the first digit (severity indication) of the reply
         2291    code.
         2292 
         2293 
         2294 
         2295 
         2296 
         2297 
         2298 Klensin                     Standards Track                    [Page 41]
         2299 
         2300 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2301 
         2302 
         2303    The list of codes that appears below MUST NOT be construed as
         2304    permanent.  While the addition of new codes should be a rare and
         2305    significant activity, with supplemental information in the textual
         2306    part of the response being preferred, new codes may be added as the
         2307    result of new Standards or Standards-track specifications.
         2308    Consequently, a sender-SMTP MUST be prepared to handle codes not
         2309    specified in this document and MUST do so by interpreting the first
         2310    digit only.
         2311 
         2312 4.2.1 Reply Code Severities and Theory
         2313 
         2314    The three digits of the reply each have a special significance.  The
         2315    first digit denotes whether the response is good, bad or incomplete.
         2316    An unsophisticated SMTP client, or one that receives an unexpected
         2317    code, will be able to determine its next action (proceed as planned,
         2318    redo, retrench, etc.) by examining this first digit.  An SMTP client
         2319    that wants to know approximately what kind of error occurred (e.g.,
         2320    mail system error, command syntax error) may examine the second
         2321    digit.  The third digit and any supplemental information that may be
         2322    present is reserved for the finest gradation of information.
         2323 
         2324    There are five values for the first digit of the reply code:
         2325 
         2326    1yz   Positive Preliminary reply
         2327       The command has been accepted, but the requested action is being
         2328       held in abeyance, pending confirmation of the information in this
         2329       reply.  The SMTP client should send another command specifying
         2330       whether to continue or abort the action.  Note: unextended SMTP
         2331       does not have any commands that allow this type of reply, and so
         2332       does not have continue or abort commands.
         2333 
         2334    2yz   Positive Completion reply
         2335       The requested action has been successfully completed.  A new
         2336       request may be initiated.
         2337 
         2338    3yz   Positive Intermediate reply
         2339       The command has been accepted, but the requested action is being
         2340       held in abeyance, pending receipt of further information.  The
         2341       SMTP client should send another command specifying this
         2342       information.  This reply is used in command sequence groups (i.e.,
         2343       in DATA).
         2344 
         2345    4yz   Transient Negative Completion reply
         2346       The command was not accepted, and the requested action did not
         2347       occur.  However, the error condition is temporary and the action
         2348       may be requested again.  The sender should return to the beginning
         2349       of the command sequence (if any).  It is difficult to assign a
         2350       meaning to "transient" when two different sites (receiver- and
         2351 
         2352 
         2353 
         2354 Klensin                     Standards Track                    [Page 42]
         2355 
         2356 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2357 
         2358 
         2359       sender-SMTP agents) must agree on the interpretation.  Each reply
         2360       in this category might have a different time value, but the SMTP
         2361       client is encouraged to try again.  A rule of thumb to determine
         2362       whether a reply fits into the 4yz or the 5yz category (see below)
         2363       is that replies are 4yz if they can be successful if repeated
         2364       without any change in command form or in properties of the sender
         2365       or receiver (that is, the command is repeated identically and the
         2366       receiver does not put up a new implementation.)
         2367 
         2368    5yz   Permanent Negative Completion reply
         2369       The command was not accepted and the requested action did not
         2370       occur.  The SMTP client is discouraged from repeating the exact
         2371       request (in the same sequence).  Even some "permanent" error
         2372       conditions can be corrected, so the human user may want to direct
         2373       the SMTP client to reinitiate the command sequence by direct
         2374       action at some point in the future (e.g., after the spelling has
         2375       been changed, or the user has altered the account status).
         2376 
         2377    The second digit encodes responses in specific categories:
         2378 
         2379    x0z   Syntax: These replies refer to syntax errors, syntactically
         2380       correct commands that do not fit any functional category, and
         2381       unimplemented or superfluous commands.
         2382 
         2383    x1z   Information:  These are replies to requests for information,
         2384       such as status or help.
         2385 
         2386    x2z   Connections: These are replies referring to the transmission
         2387       channel.
         2388 
         2389    x3z   Unspecified.
         2390 
         2391    x4z   Unspecified.
         2392 
         2393    x5z   Mail system: These replies indicate the status of the receiver
         2394       mail system vis-a-vis the requested transfer or other mail system
         2395       action.
         2396 
         2397    The third digit gives a finer gradation of meaning in each category
         2398    specified by the second digit.  The list of replies illustrates this.
         2399    Each reply text is recommended rather than mandatory, and may even
         2400    change according to the command with which it is associated.  On the
         2401    other hand, the reply codes must strictly follow the specifications
         2402    in this section.  Receiver implementations should not invent new
         2403    codes for slightly different situations from the ones described here,
         2404    but rather adapt codes already defined.
         2405 
         2406 
         2407 
         2408 
         2409 
         2410 Klensin                     Standards Track                    [Page 43]
         2411 
         2412 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2413 
         2414 
         2415    For example, a command such as NOOP, whose successful execution does
         2416    not offer the SMTP client any new information, will return a 250
         2417    reply.  The reply is 502 when the command requests an unimplemented
         2418    non-site-specific action.  A refinement of that is the 504 reply for
         2419    a command that is implemented, but that requests an unimplemented
         2420    parameter.
         2421 
         2422    The reply text may be longer than a single line; in these cases the
         2423    complete text must be marked so the SMTP client knows when it can
         2424    stop reading the reply.  This requires a special format to indicate a
         2425    multiple line reply.
         2426 
         2427    The format for multiline replies requires that every line, except the
         2428    last, begin with the reply code, followed immediately by a hyphen,
         2429    "-" (also known as minus), followed by text.  The last line will
         2430    begin with the reply code, followed immediately by <SP>, optionally
         2431    some text, and <CRLF>.  As noted above, servers SHOULD send the <SP>
         2432    if subsequent text is not sent, but clients MUST be prepared for it
         2433    to be omitted.
         2434 
         2435    For example:
         2436 
         2437       123-First line
         2438       123-Second line
         2439       123-234 text beginning with numbers
         2440       123 The last line
         2441 
         2442    In many cases the SMTP client then simply needs to search for a line
         2443    beginning with the reply code followed by <SP> or <CRLF> and ignore
         2444    all preceding lines.  In a few cases, there is important data for the
         2445    client in the reply "text".  The client will be able to identify
         2446    these cases from the current context.
         2447 
         2448 4.2.2 Reply Codes by Function Groups
         2449 
         2450       500 Syntax error, command unrecognized
         2451          (This may include errors such as command line too long)
         2452       501 Syntax error in parameters or arguments
         2453       502 Command not implemented  (see section 4.2.4)
         2454       503 Bad sequence of commands
         2455       504 Command parameter not implemented
         2456 
         2457       211 System status, or system help reply
         2458       214 Help message
         2459          (Information on how to use the receiver or the meaning of a
         2460          particular non-standard command; this reply is useful only
         2461          to the human user)
         2462 
         2463 
         2464 
         2465 
         2466 Klensin                     Standards Track                    [Page 44]
         2467 
         2468 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2469 
         2470 
         2471       220 <domain> Service ready
         2472       221 <domain> Service closing transmission channel
         2473       421 <domain> Service not available, closing transmission channel
         2474          (This may be a reply to any command if the service knows it
         2475          must shut down)
         2476 
         2477       250 Requested mail action okay, completed
         2478       251 User not local; will forward to <forward-path>
         2479          (See section 3.4)
         2480       252 Cannot VRFY user, but will accept message and attempt
         2481           delivery
         2482          (See section 3.5.3)
         2483       450 Requested mail action not taken: mailbox unavailable
         2484          (e.g., mailbox busy)
         2485       550 Requested action not taken: mailbox unavailable
         2486          (e.g., mailbox not found, no access, or command rejected
         2487          for policy reasons)
         2488       451 Requested action aborted: error in processing
         2489       551 User not local; please try <forward-path>
         2490          (See section 3.4)
         2491       452 Requested action not taken: insufficient system storage
         2492       552 Requested mail action aborted: exceeded storage allocation
         2493       553 Requested action not taken: mailbox name not allowed
         2494          (e.g., mailbox syntax incorrect)
         2495       354 Start mail input; end with <CRLF>.<CRLF>
         2496       554 Transaction failed (Or, in the case of a connection-opening
         2497           response, "No SMTP service here")
         2498 
         2499 4.2.3  Reply Codes in Numeric Order
         2500 
         2501       211 System status, or system help reply
         2502       214 Help message
         2503          (Information on how to use the receiver or the meaning of a
         2504          particular non-standard command; this reply is useful only
         2505          to the human user)
         2506       220 <domain> Service ready
         2507       221 <domain> Service closing transmission channel
         2508       250 Requested mail action okay, completed
         2509       251 User not local; will forward to <forward-path>
         2510          (See section 3.4)
         2511       252 Cannot VRFY user, but will accept message and attempt
         2512          delivery
         2513          (See section 3.5.3)
         2514 
         2515       354 Start mail input; end with <CRLF>.<CRLF>
         2516 
         2517 
         2518 
         2519 
         2520 
         2521 
         2522 Klensin                     Standards Track                    [Page 45]
         2523 
         2524 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2525 
         2526 
         2527       421 <domain> Service not available, closing transmission channel
         2528          (This may be a reply to any command if the service knows it
         2529          must shut down)
         2530       450 Requested mail action not taken: mailbox unavailable
         2531          (e.g., mailbox busy)
         2532       451 Requested action aborted: local error in processing
         2533       452 Requested action not taken: insufficient system storage
         2534       500 Syntax error, command unrecognized
         2535          (This may include errors such as command line too long)
         2536       501 Syntax error in parameters or arguments
         2537       502 Command not implemented (see section 4.2.4)
         2538       503 Bad sequence of commands
         2539       504 Command parameter not implemented
         2540       550 Requested action not taken: mailbox unavailable
         2541          (e.g., mailbox not found, no access, or command rejected
         2542          for policy reasons)
         2543       551 User not local; please try <forward-path>
         2544          (See section 3.4)
         2545       552 Requested mail action aborted: exceeded storage allocation
         2546       553 Requested action not taken: mailbox name not allowed
         2547          (e.g., mailbox syntax incorrect)
         2548       554 Transaction failed  (Or, in the case of a connection-opening
         2549           response, "No SMTP service here")
         2550 
         2551 4.2.4 Reply Code 502
         2552 
         2553    Questions have been raised as to when reply code 502 (Command not
         2554    implemented) SHOULD be returned in preference to other codes.  502
         2555    SHOULD be used when the command is actually recognized by the SMTP
         2556    server, but not implemented.  If the command is not recognized, code
         2557    500 SHOULD be returned.  Extended SMTP systems MUST NOT list
         2558    capabilities in response to EHLO for which they will return 502 (or
         2559    500) replies.
         2560 
         2561 4.2.5 Reply Codes After DATA and the Subsequent <CRLF>.<CRLF>
         2562 
         2563    When an SMTP server returns a positive completion status (2yz code)
         2564    after the DATA command is completed with <CRLF>.<CRLF>, it accepts
         2565    responsibility for:
         2566 
         2567    -  delivering the message (if the recipient mailbox exists), or
         2568 
         2569    -  if attempts to deliver the message fail due to transient
         2570       conditions, retrying delivery some reasonable number of times at
         2571       intervals as specified in section 4.5.4.
         2572 
         2573 
         2574 
         2575 
         2576 
         2577 
         2578 Klensin                     Standards Track                    [Page 46]
         2579 
         2580 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2581 
         2582 
         2583    -  if attempts to deliver the message fail due to permanent
         2584       conditions, or if repeated attempts to deliver the message fail
         2585       due to transient conditions, returning appropriate notification to
         2586       the sender of the original message (using the address in the SMTP
         2587       MAIL command).
         2588 
         2589    When an SMTP server returns a permanent error status (5yz) code after
         2590    the DATA command is completed with <CRLF>.<CRLF>, it MUST NOT make
         2591    any subsequent attempt to deliver that message.  The SMTP client
         2592    retains responsibility for delivery of that message and may either
         2593    return it to the user or requeue it for a subsequent attempt (see
         2594    section 4.5.4.1).
         2595 
         2596    The user who originated the message SHOULD be able to interpret the
         2597    return of a transient failure status (by mail message or otherwise)
         2598    as a non-delivery indication, just as a permanent failure would be
         2599    interpreted.  I.e., if the client SMTP successfully handles these
         2600    conditions, the user will not receive such a reply.
         2601 
         2602    When an SMTP server returns a permanent error status (5yz) code after
         2603    the DATA command is completely with <CRLF>.<CRLF>, it MUST NOT make
         2604    any subsequent attempt to deliver the message.  As with temporary
         2605    error status codes, the SMTP client retains responsibility for the
         2606    message, but SHOULD not again attempt delivery to the same server
         2607    without user review and intervention of the message.
         2608 
         2609 4.3 Sequencing of Commands and Replies
         2610 
         2611 4.3.1 Sequencing Overview
         2612 
         2613    The communication between the sender and receiver is an alternating
         2614    dialogue, controlled by the sender.  As such, the sender issues a
         2615    command and the receiver responds with a reply.  Unless other
         2616    arrangements are negotiated through service extensions, the sender
         2617    MUST wait for this response before sending further commands.
         2618 
         2619    One important reply is the connection greeting.  Normally, a receiver
         2620    will send a 220 "Service ready" reply when the connection is
         2621    completed.  The sender SHOULD wait for this greeting message before
         2622    sending any commands.
         2623 
         2624    Note: all the greeting-type replies have the official name (the
         2625    fully-qualified primary domain name) of the server host as the first
         2626    word following the reply code.  Sometimes the host will have no
         2627    meaningful name.  See 4.1.3 for a discussion of alternatives in these
         2628    situations.
         2629 
         2630 
         2631 
         2632 
         2633 
         2634 Klensin                     Standards Track                    [Page 47]
         2635 
         2636 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2637 
         2638 
         2639    For example,
         2640 
         2641       220 ISIF.USC.EDU Service ready
         2642    or
         2643       220 mail.foo.com SuperSMTP v 6.1.2 Service ready
         2644    or
         2645       220 [10.0.0.1] Clueless host service ready
         2646 
         2647    The table below lists alternative success and failure replies for
         2648    each command.  These SHOULD be strictly adhered to: a receiver may
         2649    substitute text in the replies, but the meaning and action implied by
         2650    the code numbers and by the specific command reply sequence cannot be
         2651    altered.
         2652 
         2653 4.3.2 Command-Reply Sequences
         2654 
         2655    Each command is listed with its usual possible replies.  The prefixes
         2656    used before the possible replies are "I" for intermediate, "S" for
         2657    success, and "E" for error.  Since some servers may generate other
         2658    replies under special circumstances, and to allow for future
         2659    extension, SMTP clients SHOULD, when possible, interpret only the
         2660    first digit of the reply and MUST be prepared to deal with
         2661    unrecognized reply codes by interpreting the first digit only.
         2662    Unless extended using the mechanisms described in section 2.2, SMTP
         2663    servers MUST NOT transmit reply codes to an SMTP client that are
         2664    other than three digits or that do not start in a digit between 2 and
         2665    5 inclusive.
         2666 
         2667    These sequencing rules and, in principle, the codes themselves, can
         2668    be extended or modified by SMTP extensions offered by the server and
         2669    accepted (requested) by the client.
         2670 
         2671    In addition to the codes listed below, any SMTP command can return
         2672    any of the following codes if the corresponding unusual circumstances
         2673    are encountered:
         2674 
         2675    500  For the "command line too long" case or if the command name was
         2676       not recognized.  Note that producing a "command not recognized"
         2677       error in response to the required subset of these commands is a
         2678       violation of this specification.
         2679 
         2680    501  Syntax error in command or arguments.  In order to provide for
         2681       future extensions, commands that are specified in this document as
         2682       not accepting arguments (DATA, RSET, QUIT) SHOULD return a 501
         2683       message if arguments are supplied in the absence of EHLO-
         2684       advertised extensions.
         2685 
         2686    421  Service shutting down and closing transmission channel
         2687 
         2688 
         2689 
         2690 Klensin                     Standards Track                    [Page 48]
         2691 
         2692 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2693 
         2694 
         2695    Specific sequences are:
         2696 
         2697    CONNECTION ESTABLISHMENT
         2698       S: 220
         2699       E: 554
         2700    EHLO or HELO
         2701       S: 250
         2702       E: 504, 550
         2703    MAIL
         2704       S: 250
         2705       E: 552, 451, 452, 550, 553, 503
         2706    RCPT
         2707       S: 250, 251 (but see section 3.4 for discussion of 251 and 551)
         2708       E: 550, 551, 552, 553, 450, 451, 452, 503, 550
         2709    DATA
         2710       I: 354 -> data -> S: 250
         2711                         E: 552, 554, 451, 452
         2712       E: 451, 554, 503
         2713    RSET
         2714       S: 250
         2715    VRFY
         2716       S: 250, 251, 252
         2717       E: 550, 551, 553, 502, 504
         2718    EXPN
         2719       S: 250, 252
         2720       E: 550, 500, 502, 504
         2721    HELP
         2722       S: 211, 214
         2723       E: 502, 504
         2724    NOOP
         2725       S: 250
         2726    QUIT
         2727       S: 221
         2728 
         2729 4.4 Trace Information
         2730 
         2731    When an SMTP server receives a message for delivery or further
         2732    processing, it MUST insert trace ("time stamp" or "Received")
         2733    information at the beginning of the message content, as discussed in
         2734    section 4.1.1.4.
         2735 
         2736    This line MUST be structured as follows:
         2737 
         2738    -  The FROM field, which MUST be supplied in an SMTP environment,
         2739       SHOULD contain both (1) the name of the source host as presented
         2740       in the EHLO command and (2) an address literal containing the IP
         2741       address of the source, determined from the TCP connection.
         2742 
         2743 
         2744 
         2745 
         2746 Klensin                     Standards Track                    [Page 49]
         2747 
         2748 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2749 
         2750 
         2751    -  The ID field MAY contain an "@" as suggested in RFC 822, but this
         2752       is not required.
         2753 
         2754    -  The FOR field MAY contain a list of <path> entries when multiple
         2755       RCPT commands have been given.  This may raise some security
         2756       issues and is usually not desirable; see section 7.2.
         2757 
         2758    An Internet mail program MUST NOT change a Received: line that was
         2759    previously added to the message header.  SMTP servers MUST prepend
         2760    Received lines to messages; they MUST NOT change the order of
         2761    existing lines or insert Received lines in any other location.
         2762 
         2763    As the Internet grows, comparability of Received fields is important
         2764    for detecting problems, especially slow relays.  SMTP servers that
         2765    create Received fields SHOULD use explicit offsets in the dates
         2766    (e.g., -0800), rather than time zone names of any type.  Local time
         2767    (with an offset) is preferred to UT when feasible.  This formulation
         2768    allows slightly more information about local circumstances to be
         2769    specified.  If UT is needed, the receiver need merely do some simple
         2770    arithmetic to convert the values.  Use of UT loses information about
         2771    the time zone-location of the server.  If it is desired to supply a
         2772    time zone name, it SHOULD be included in a comment.
         2773 
         2774    When the delivery SMTP server makes the "final delivery" of a
         2775    message, it inserts a return-path line at the beginning of the mail
         2776    data.  This use of return-path is required; mail systems MUST support
         2777    it.  The return-path line preserves the information in the <reverse-
         2778    path> from the MAIL command.  Here, final delivery means the message
         2779    has left the SMTP environment.  Normally, this would mean it had been
         2780    delivered to the destination user or an associated mail drop, but in
         2781    some cases it may be further processed and transmitted by another
         2782    mail system.
         2783 
         2784    It is possible for the mailbox in the return path to be different
         2785    from the actual sender's mailbox, for example, if error responses are
         2786    to be delivered to a special error handling mailbox rather than to
         2787    the message sender.  When mailing lists are involved, this
         2788    arrangement is common and useful as a means of directing errors to
         2789    the list maintainer rather than the message originator.
         2790 
         2791    The text above implies that the final mail data will begin with a
         2792    return path line, followed by one or more time stamp lines.  These
         2793    lines will be followed by the mail data headers and body [32].
         2794 
         2795    It is sometimes difficult for an SMTP server to determine whether or
         2796    not it is making final delivery since forwarding or other operations
         2797    may occur after the message is accepted for delivery.  Consequently,
         2798 
         2799 
         2800 
         2801 
         2802 Klensin                     Standards Track                    [Page 50]
         2803 
         2804 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2805 
         2806 
         2807    any further (forwarding, gateway, or relay) systems MAY remove the
         2808    return path and rebuild the MAIL command as needed to ensure that
         2809    exactly one such line appears in a delivered message.
         2810 
         2811    A message-originating SMTP system SHOULD NOT send a message that
         2812    already contains a Return-path header.  SMTP servers performing a
         2813    relay function MUST NOT inspect the message data, and especially not
         2814    to the extent needed to determine if Return-path headers are present.
         2815    SMTP servers making final delivery MAY remove Return-path headers
         2816    before adding their own.
         2817 
         2818    The primary purpose of the Return-path is to designate the address to
         2819    which messages indicating non-delivery or other mail system failures
         2820    are to be sent.  For this to be unambiguous, exactly one return path
         2821    SHOULD be present when the message is delivered.  Systems using RFC
         2822    822 syntax with non-SMTP transports SHOULD designate an unambiguous
         2823    address, associated with the transport envelope, to which error
         2824    reports (e.g., non-delivery messages) should be sent.
         2825 
         2826    Historical note: Text in RFC 822 that appears to contradict the use
         2827    of the Return-path header (or the envelope reverse path address from
         2828    the MAIL command) as the destination for error messages is not
         2829    applicable on the Internet.  The reverse path address (as copied into
         2830    the Return-path) MUST be used as the target of any mail containing
         2831    delivery error messages.
         2832 
         2833    In particular:
         2834 
         2835    -  a gateway from SMTP->elsewhere SHOULD insert a return-path header,
         2836       unless it is known that the "elsewhere" transport also uses
         2837       Internet domain addresses and maintains the envelope sender
         2838       address separately.
         2839 
         2840    -  a gateway from elsewhere->SMTP SHOULD delete any return-path
         2841       header present in the message, and either copy that information to
         2842       the SMTP envelope or combine it with information present in the
         2843       envelope of the other transport system to construct the reverse
         2844       path argument to the MAIL command in the SMTP envelope.
         2845 
         2846    The server must give special treatment to cases in which the
         2847    processing following the end of mail data indication is only
         2848    partially successful.  This could happen if, after accepting several
         2849    recipients and the mail data, the SMTP server finds that the mail
         2850    data could be successfully delivered to some, but not all, of the
         2851    recipients.  In such cases, the response to the DATA command MUST be
         2852    an OK reply.  However, the SMTP server MUST compose and send an
         2853    "undeliverable mail" notification message to the originator of the
         2854    message.
         2855 
         2856 
         2857 
         2858 Klensin                     Standards Track                    [Page 51]
         2859 
         2860 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2861 
         2862 
         2863    A single notification listing all of the failed recipients or
         2864    separate notification messages MUST be sent for each failed
         2865    recipient.  For economy of processing by the sender, the former is
         2866    preferred when possible.  All undeliverable mail notification
         2867    messages are sent using the MAIL command (even if they result from
         2868    processing the obsolete SEND, SOML, or SAML commands) and use a null
         2869    return path as discussed in section 3.7.
         2870 
         2871    The time stamp line and the return path line are formally defined as
         2872    follows:
         2873 
         2874 Return-path-line = "Return-Path:" FWS Reverse-path <CRLF>
         2875 
         2876 Time-stamp-line = "Received:" FWS Stamp <CRLF>
         2877 
         2878 Stamp = From-domain By-domain Opt-info ";"  FWS date-time
         2879 
         2880       ; where "date-time" is as defined in [32]
         2881       ; but the "obs-" forms, especially two-digit
         2882       ; years, are prohibited in SMTP and MUST NOT be used.
         2883 
         2884 From-domain = "FROM" FWS Extended-Domain CFWS
         2885 
         2886 By-domain = "BY" FWS Extended-Domain CFWS
         2887 
         2888 Extended-Domain = Domain /
         2889            ( Domain FWS "(" TCP-info ")" ) /
         2890            ( Address-literal FWS "(" TCP-info ")" )
         2891 
         2892 TCP-info = Address-literal / ( Domain FWS Address-literal )
         2893       ; Information derived by server from TCP connection
         2894       ; not client EHLO.
         2895 
         2896 Opt-info = [Via] [With] [ID] [For]
         2897 
         2898 Via = "VIA" FWS Link CFWS
         2899 
         2900 With = "WITH" FWS Protocol CFWS
         2901 
         2902 ID = "ID" FWS String / msg-id CFWS
         2903 
         2904 For = "FOR" FWS 1*( Path / Mailbox ) CFWS
         2905 
         2906 Link = "TCP" / Addtl-Link
         2907 Addtl-Link = Atom
         2908       ; Additional standard names for links are registered with the
         2909          ; Internet Assigned Numbers Authority (IANA).  "Via" is
         2910          ; primarily of value with non-Internet transports.  SMTP
         2911 
         2912 
         2913 
         2914 Klensin                     Standards Track                    [Page 52]
         2915 
         2916 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2917 
         2918 
         2919          ; servers SHOULD NOT use unregistered names.
         2920 Protocol = "ESMTP" / "SMTP" / Attdl-Protocol
         2921 Attdl-Protocol = Atom
         2922       ; Additional standard names for protocols are registered with the
         2923          ; Internet Assigned Numbers Authority (IANA).  SMTP servers
         2924          ; SHOULD NOT use unregistered names.
         2925 
         2926 4.5 Additional Implementation Issues
         2927 
         2928 4.5.1 Minimum Implementation
         2929 
         2930    In order to make SMTP workable, the following minimum implementation
         2931    is required for all receivers.  The following commands MUST be
         2932    supported to conform to this specification:
         2933 
         2934       EHLO
         2935       HELO
         2936       MAIL
         2937       RCPT
         2938       DATA
         2939       RSET
         2940       NOOP
         2941       QUIT
         2942       VRFY
         2943 
         2944    Any system that includes an SMTP server supporting mail relaying or
         2945    delivery MUST support the reserved mailbox "postmaster" as a case-
         2946    insensitive local name.  This postmaster address is not strictly
         2947    necessary if the server always returns 554 on connection opening (as
         2948    described in section 3.1).  The requirement to accept mail for
         2949    postmaster implies that RCPT commands which specify a mailbox for
         2950    postmaster at any of the domains for which the SMTP server provides
         2951    mail service, as well as the special case of "RCPT TO:<Postmaster>"
         2952    (with no domain specification), MUST be supported.
         2953 
         2954    SMTP systems are expected to make every reasonable effort to accept
         2955    mail directed to Postmaster from any other system on the Internet.
         2956    In extreme cases --such as to contain a denial of service attack or
         2957    other breach of security-- an SMTP server may block mail directed to
         2958    Postmaster.  However, such arrangements SHOULD be narrowly tailored
         2959    so as to avoid blocking messages which are not part of such attacks.
         2960 
         2961 4.5.2 Transparency
         2962 
         2963    Without some provision for data transparency, the character sequence
         2964    "<CRLF>.<CRLF>" ends the mail text and cannot be sent by the user.
         2965    In general, users are not aware of such "forbidden" sequences.  To
         2966 
         2967 
         2968 
         2969 
         2970 Klensin                     Standards Track                    [Page 53]
         2971 
         2972 RFC 2821             Simple Mail Transfer Protocol            April 2001
         2973 
         2974 
         2975    allow all user composed text to be transmitted transparently, the
         2976    following procedures are used:
         2977 
         2978    -  Before sending a line of mail text, the SMTP client checks the
         2979       first character of the line.  If it is a period, one additional
         2980       period is inserted at the beginning of the line.
         2981 
         2982    -  When a line of mail text is received by the SMTP server, it checks
         2983       the line.  If the line is composed of a single period, it is
         2984       treated as the end of mail indicator.  If the first character is a
         2985       period and there are other characters on the line, the first
         2986       character is deleted.
         2987 
         2988    The mail data may contain any of the 128 ASCII characters.  All
         2989    characters are to be delivered to the recipient's mailbox, including
         2990    spaces, vertical and horizontal tabs, and other control characters.
         2991    If the transmission channel provides an 8-bit byte (octet) data
         2992    stream, the 7-bit ASCII codes are transmitted right justified in the
         2993    octets, with the high order bits cleared to zero.  See 3.7 for
         2994    special treatment of these conditions in SMTP systems serving a relay
         2995    function.
         2996 
         2997    In some systems it may be necessary to transform the data as it is
         2998    received and stored.  This may be necessary for hosts that use a
         2999    different character set than ASCII as their local character set, that
         3000    store data in records rather than strings, or which use special
         3001    character sequences as delimiters inside mailboxes.  If such
         3002    transformations are necessary, they MUST be reversible, especially if
         3003    they are applied to mail being relayed.
         3004 
         3005 4.5.3 Sizes and Timeouts
         3006 
         3007 4.5.3.1 Size limits and minimums
         3008 
         3009    There are several objects that have required minimum/maximum sizes.
         3010    Every implementation MUST be able to receive objects of at least
         3011    these sizes.  Objects larger than these sizes SHOULD be avoided when
         3012    possible.  However, some Internet mail constructs such as encoded
         3013    X.400 addresses [16] will often require larger objects: clients MAY
         3014    attempt to transmit these, but MUST be prepared for a server to
         3015    reject them if they cannot be handled by it.  To the maximum extent
         3016    possible, implementation techniques which impose no limits on the
         3017    length of these objects should be used.
         3018 
         3019    local-part
         3020       The maximum total length of a user name or other local-part is 64
         3021       characters.
         3022 
         3023 
         3024 
         3025 
         3026 Klensin                     Standards Track                    [Page 54]
         3027 
         3028 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3029 
         3030 
         3031    domain
         3032       The maximum total length of a domain name or number is 255
         3033       characters.
         3034 
         3035    path
         3036       The maximum total length of a reverse-path or forward-path is 256
         3037       characters (including the punctuation and element separators).
         3038 
         3039    command line
         3040       The maximum total length of a command line including the command
         3041       word and the <CRLF> is 512 characters.  SMTP extensions may be
         3042       used to increase this limit.
         3043 
         3044    reply line
         3045       The maximum total length of a reply line including the reply code
         3046       and the <CRLF> is 512 characters.  More information may be
         3047       conveyed through multiple-line replies.
         3048 
         3049    text line
         3050       The maximum total length of a text line including the <CRLF> is
         3051       1000 characters (not counting the leading dot duplicated for
         3052       transparency).  This number may be increased by the use of SMTP
         3053       Service Extensions.
         3054 
         3055    message content
         3056       The maximum total length of a message content (including any
         3057       message headers as well as the message body) MUST BE at least 64K
         3058       octets.  Since the introduction of Internet standards for
         3059       multimedia mail [12], message lengths on the Internet have grown
         3060       dramatically, and message size restrictions should be avoided if
         3061       at all possible.  SMTP server systems that must impose
         3062       restrictions SHOULD implement the "SIZE" service extension [18],
         3063       and SMTP client systems that will send large messages SHOULD
         3064       utilize it when possible.
         3065 
         3066    recipients buffer
         3067       The minimum total number of recipients that must be buffered is
         3068       100 recipients.  Rejection of messages (for excessive recipients)
         3069       with fewer than 100 RCPT commands is a violation of this
         3070       specification.  The general principle that relaying SMTP servers
         3071       MUST NOT, and delivery SMTP servers SHOULD NOT, perform validation
         3072       tests on message headers suggests that rejecting a message based
         3073       on the total number of recipients shown in header fields is to be
         3074       discouraged.  A server which imposes a limit on the number of
         3075       recipients MUST behave in an orderly fashion,  such as to reject
         3076       additional addresses over its limit rather than silently
         3077       discarding addresses previously accepted.  A client that needs to
         3078 
         3079 
         3080 
         3081 
         3082 Klensin                     Standards Track                    [Page 55]
         3083 
         3084 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3085 
         3086 
         3087       deliver a message containing over 100 RCPT commands SHOULD be
         3088       prepared to transmit in 100-recipient "chunks" if the server
         3089       declines to accept more than 100 recipients in a single message.
         3090 
         3091    Errors due to exceeding these limits may be reported by using the
         3092    reply codes.  Some examples of reply codes are:
         3093 
         3094       500 Line too long.
         3095    or
         3096       501 Path too long
         3097    or
         3098       452 Too many recipients  (see below)
         3099    or
         3100       552 Too much mail data.
         3101 
         3102    RFC 821 [30] incorrectly listed the error where an SMTP server
         3103    exhausts its implementation limit on the number of RCPT commands
         3104    ("too many recipients") as having reply code 552.  The correct reply
         3105    code for this condition is 452.  Clients SHOULD treat a 552 code in
         3106    this case as a temporary, rather than permanent, failure so the logic
         3107    below works.
         3108 
         3109    When a conforming SMTP server encounters this condition, it has at
         3110    least 100 successful RCPT commands in its recipients buffer.  If the
         3111    server is able to accept the message, then at least these 100
         3112    addresses will be removed from the SMTP client's queue.  When the
         3113    client attempts retransmission of those addresses which received 452
         3114    responses, at least 100 of these will be able to fit in the SMTP
         3115    server's recipients buffer.  Each retransmission attempt which is
         3116    able to deliver anything will be able to dispose of at least 100 of
         3117    these recipients.
         3118 
         3119    If an SMTP server has an implementation limit on the number of RCPT
         3120    commands and this limit is exhausted, it MUST use a response code of
         3121    452 (but the client SHOULD also be prepared for a 552, as noted
         3122    above).  If the server has a configured site-policy limitation on the
         3123    number of RCPT commands, it MAY instead use a 5XX response code.
         3124    This would be most appropriate if the policy limitation was intended
         3125    to apply if the total recipient count for a particular message body
         3126    were enforced even if that message body was sent in multiple mail
         3127    transactions.
         3128 
         3129 4.5.3.2 Timeouts
         3130 
         3131    An SMTP client MUST provide a timeout mechanism.  It MUST use per-
         3132    command timeouts rather than somehow trying to time the entire mail
         3133    transaction.  Timeouts SHOULD be easily reconfigurable, preferably
         3134    without recompiling the SMTP code.  To implement this, a timer is set
         3135 
         3136 
         3137 
         3138 Klensin                     Standards Track                    [Page 56]
         3139 
         3140 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3141 
         3142 
         3143    for each SMTP command and for each buffer of the data transfer.  The
         3144    latter means that the overall timeout is inherently proportional to
         3145    the size of the message.
         3146 
         3147    Based on extensive experience with busy mail-relay hosts, the minimum
         3148    per-command timeout values SHOULD be as follows:
         3149 
         3150    Initial 220 Message: 5 minutes
         3151       An SMTP client process needs to distinguish between a failed TCP
         3152       connection and a delay in receiving the initial 220 greeting
         3153       message.  Many SMTP servers accept a TCP connection but delay
         3154       delivery of the 220 message until their system load permits more
         3155       mail to be processed.
         3156 
         3157    MAIL Command: 5 minutes
         3158 
         3159    RCPT Command: 5 minutes
         3160       A longer timeout is required if processing of mailing lists and
         3161       aliases is not deferred until after the message was accepted.
         3162 
         3163    DATA Initiation: 2 minutes
         3164       This is while awaiting the "354 Start Input" reply to a DATA
         3165       command.
         3166 
         3167    Data Block: 3 minutes
         3168       This is while awaiting the completion of each TCP SEND call
         3169       transmitting a chunk of data.
         3170 
         3171    DATA Termination: 10 minutes.
         3172       This is while awaiting the "250 OK" reply.  When the receiver gets
         3173       the final period terminating the message data, it typically
         3174       performs processing to deliver the message to a user mailbox.  A
         3175       spurious timeout at this point would be very wasteful and would
         3176       typically result in delivery of multiple copies of the message,
         3177       since it has been successfully sent and the server has accepted
         3178       responsibility for delivery.  See section 6.1 for additional
         3179       discussion.
         3180 
         3181    An SMTP server SHOULD have a timeout of at least 5 minutes while it
         3182    is awaiting the next command from the sender.
         3183 
         3184 4.5.4 Retry Strategies
         3185 
         3186    The common structure of a host SMTP implementation includes user
         3187    mailboxes, one or more areas for queuing messages in transit, and one
         3188    or more daemon processes for sending and receiving mail.  The exact
         3189    structure will vary depending on the needs of the users on the host
         3190 
         3191 
         3192 
         3193 
         3194 Klensin                     Standards Track                    [Page 57]
         3195 
         3196 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3197 
         3198 
         3199    and the number and size of mailing lists supported by the host.  We
         3200    describe several optimizations that have proved helpful, particularly
         3201    for mailers supporting high traffic levels.
         3202 
         3203    Any queuing strategy MUST include timeouts on all activities on a
         3204    per-command basis.  A queuing strategy MUST NOT send error messages
         3205    in response to error messages under any circumstances.
         3206 
         3207 4.5.4.1 Sending Strategy
         3208 
         3209    The general model for an SMTP client is one or more processes that
         3210    periodically attempt to transmit outgoing mail.  In a typical system,
         3211    the program that composes a message has some method for requesting
         3212    immediate attention for a new piece of outgoing mail, while mail that
         3213    cannot be transmitted immediately MUST be queued and periodically
         3214    retried by the sender.  A mail queue entry will include not only the
         3215    message itself but also the envelope information.
         3216 
         3217    The sender MUST delay retrying a particular destination after one
         3218    attempt has failed.  In general, the retry interval SHOULD be at
         3219    least 30 minutes; however, more sophisticated and variable strategies
         3220    will be beneficial when the SMTP client can determine the reason for
         3221    non-delivery.
         3222 
         3223    Retries continue until the message is transmitted or the sender gives
         3224    up; the give-up time generally needs to be at least 4-5 days.  The
         3225    parameters to the retry algorithm MUST be configurable.
         3226 
         3227    A client SHOULD keep a list of hosts it cannot reach and
         3228    corresponding connection timeouts, rather than just retrying queued
         3229    mail items.
         3230 
         3231    Experience suggests that failures are typically transient (the target
         3232    system or its connection has crashed), favoring a policy of two
         3233    connection attempts in the first hour the message is in the queue,
         3234    and then backing off to one every two or three hours.
         3235 
         3236    The SMTP client can shorten the queuing delay in cooperation with the
         3237    SMTP server.  For example, if mail is received from a particular
         3238    address, it is likely that mail queued for that host can now be sent.
         3239    Application of this principle may, in many cases, eliminate the
         3240    requirement for an explicit "send queues now" function such as ETRN
         3241    [9].
         3242 
         3243    The strategy may be further modified as a result of multiple
         3244    addresses per host (see below) to optimize delivery time vs. resource
         3245    usage.
         3246 
         3247 
         3248 
         3249 
         3250 Klensin                     Standards Track                    [Page 58]
         3251 
         3252 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3253 
         3254 
         3255    An SMTP client may have a large queue of messages for each
         3256    unavailable destination host.  If all of these messages were retried
         3257    in every retry cycle, there would be excessive Internet overhead and
         3258    the sending system would be blocked for a long period.  Note that an
         3259    SMTP client can generally determine that a delivery attempt has
         3260    failed only after a timeout of several minutes and even a one-minute
         3261    timeout per connection will result in a very large delay if retries
         3262    are repeated for dozens, or even hundreds, of queued messages to the
         3263    same host.
         3264 
         3265    At the same time, SMTP clients SHOULD use great care in caching
         3266    negative responses from servers.  In an extreme case, if EHLO is
         3267    issued multiple times during the same SMTP connection, different
         3268    answers may be returned by the server.  More significantly, 5yz
         3269    responses to the MAIL command MUST NOT be cached.
         3270 
         3271    When a mail message is to be delivered to multiple recipients, and
         3272    the SMTP server to which a copy of the message is to be sent is the
         3273    same for multiple recipients, then only one copy of the message
         3274    SHOULD be transmitted.  That is, the SMTP client SHOULD use the
         3275    command sequence:  MAIL, RCPT, RCPT,... RCPT, DATA instead of the
         3276    sequence: MAIL, RCPT, DATA, ..., MAIL, RCPT, DATA.  However, if there
         3277    are very many addresses, a limit on the number of RCPT commands per
         3278    MAIL command MAY be imposed.  Implementation of this efficiency
         3279    feature is strongly encouraged.
         3280 
         3281    Similarly, to achieve timely delivery, the SMTP client MAY support
         3282    multiple concurrent outgoing mail transactions.  However, some limit
         3283    may be appropriate to protect the host from devoting all its
         3284    resources to mail.
         3285 
         3286 4.5.4.2 Receiving Strategy
         3287 
         3288    The SMTP server SHOULD attempt to keep a pending listen on the SMTP
         3289    port at all times.  This requires the support of multiple incoming
         3290    TCP connections for SMTP.  Some limit MAY be imposed but servers that
         3291    cannot handle more than one SMTP transaction at a time are not in
         3292    conformance with the intent of this specification.
         3293 
         3294    As discussed above, when the SMTP server receives mail from a
         3295    particular host address, it could activate its own SMTP queuing
         3296    mechanisms to retry any mail pending for that host address.
         3297 
         3298 4.5.5   Messages with a null reverse-path
         3299 
         3300    There are several types of notification messages which are required
         3301    by existing and proposed standards to be sent with a null reverse
         3302    path, namely non-delivery notifications as discussed in section 3.7,
         3303 
         3304 
         3305 
         3306 Klensin                     Standards Track                    [Page 59]
         3307 
         3308 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3309 
         3310 
         3311    other kinds of Delivery Status Notifications (DSNs) [24], and also
         3312    Message Disposition Notifications (MDNs) [10].  All of these kinds of
         3313    messages are notifications about a previous message, and they are
         3314    sent to the reverse-path of the previous mail message.  (If the
         3315    delivery of such a notification message fails, that usually indicates
         3316    a problem with the mail system of the host to which the notification
         3317    message is addressed.  For this reason, at some hosts the MTA is set
         3318    up to forward such failed notification messages to someone who is
         3319    able to fix problems with the mail system, e.g., via the postmaster
         3320    alias.)
         3321 
         3322    All other types of messages (i.e., any message which is not required
         3323    by a standards-track RFC to have a null reverse-path) SHOULD be sent
         3324    with with a valid, non-null reverse-path.
         3325 
         3326    Implementors of automated email processors should be careful to make
         3327    sure that the various kinds of messages with null reverse-path are
         3328    handled correctly, in particular such systems SHOULD NOT reply to
         3329    messages with null reverse-path.
         3330 
         3331 5. Address Resolution and Mail Handling
         3332 
         3333    Once an SMTP client lexically identifies a domain to which mail will
         3334    be delivered for processing (as described in sections 3.6 and 3.7), a
         3335    DNS lookup MUST be performed to resolve the domain name [22].  The
         3336    names are expected to be fully-qualified domain names (FQDNs):
         3337    mechanisms for inferring FQDNs from partial names or local aliases
         3338    are outside of this specification and, due to a history of problems,
         3339    are generally discouraged.  The lookup first attempts to locate an MX
         3340    record associated with the name.  If a CNAME record is found instead,
         3341    the resulting name is processed as if it were the initial name.  If
         3342    no MX records are found, but an A RR is found, the A RR is treated as
         3343    if it was associated with an implicit MX RR, with a preference of 0,
         3344    pointing to that host.  If one or more MX RRs are found for a given
         3345    name, SMTP systems MUST NOT utilize any A RRs associated with that
         3346    name unless they are located using the MX RRs; the "implicit MX" rule
         3347    above applies only if there are no MX records present.  If MX records
         3348    are present, but none of them are usable, this situation MUST be
         3349    reported as an error.
         3350 
         3351    When the lookup succeeds, the mapping can result in a list of
         3352    alternative delivery addresses rather than a single address, because
         3353    of multiple MX records, multihoming, or both.  To provide reliable
         3354    mail transmission, the SMTP client MUST be able to try (and retry)
         3355    each of the relevant addresses in this list in order, until a
         3356    delivery attempt succeeds.  However, there MAY also be a configurable
         3357    limit on the number of alternate addresses that can be tried.  In any
         3358    case, the SMTP client SHOULD try at least two addresses.
         3359 
         3360 
         3361 
         3362 Klensin                     Standards Track                    [Page 60]
         3363 
         3364 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3365 
         3366 
         3367    Two types of information is used to rank the host addresses: multiple
         3368    MX records, and multihomed hosts.
         3369 
         3370    Multiple MX records contain a preference indication that MUST be used
         3371    in sorting (see below).  Lower numbers are more preferred than higher
         3372    ones.  If there are multiple destinations with the same preference
         3373    and there is no clear reason to favor one (e.g., by recognition of an
         3374    easily-reached address), then the sender-SMTP MUST randomize them to
         3375    spread the load across multiple mail exchangers for a specific
         3376    organization.
         3377 
         3378    The destination host (perhaps taken from the preferred MX record) may
         3379    be multihomed, in which case the domain name resolver will return a
         3380    list of alternative IP addresses.  It is the responsibility of the
         3381    domain name resolver interface to have ordered this list by
         3382    decreasing preference if necessary, and SMTP MUST try them in the
         3383    order presented.
         3384 
         3385    Although the capability to try multiple alternative addresses is
         3386    required, specific installations may want to limit or disable the use
         3387    of alternative addresses.  The question of whether a sender should
         3388    attempt retries using the different addresses of a multihomed host
         3389    has been controversial.  The main argument for using the multiple
         3390    addresses is that it maximizes the probability of timely delivery,
         3391    and indeed sometimes the probability of any delivery; the counter-
         3392    argument is that it may result in unnecessary resource use.  Note
         3393    that resource use is also strongly determined by the sending strategy
         3394    discussed in section 4.5.4.1.
         3395 
         3396    If an SMTP server receives a message with a destination for which it
         3397    is a designated Mail eXchanger, it MAY relay the message (potentially
         3398    after having rewritten the MAIL FROM and/or RCPT TO addresses), make
         3399    final delivery of the message, or hand it off using some mechanism
         3400    outside the SMTP-provided transport environment.  Of course, neither
         3401    of the latter require that the list of MX records be examined
         3402    further.
         3403 
         3404    If it determines that it should relay the message without rewriting
         3405    the address, it MUST sort the MX records to determine candidates for
         3406    delivery.  The records are first ordered by preference, with the
         3407    lowest-numbered records being most preferred.  The relay host MUST
         3408    then inspect the list for any of the names or addresses by which it
         3409    might be known in mail transactions.  If a matching record is found,
         3410    all records at that preference level and higher-numbered ones MUST be
         3411    discarded from consideration.  If there are no records left at that
         3412    point, it is an error condition, and the message MUST be returned as
         3413    undeliverable.  If records do remain, they SHOULD be tried, best
         3414    preference first, as described above.
         3415 
         3416 
         3417 
         3418 Klensin                     Standards Track                    [Page 61]
         3419 
         3420 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3421 
         3422 
         3423 6. Problem Detection and Handling
         3424 
         3425 6.1 Reliable Delivery and Replies by Email
         3426 
         3427    When the receiver-SMTP accepts a piece of mail (by sending a "250 OK"
         3428    message in response to DATA), it is accepting responsibility for
         3429    delivering or relaying the message.  It must take this responsibility
         3430    seriously.  It MUST NOT lose the message for frivolous reasons, such
         3431    as because the host later crashes or because of a predictable
         3432    resource shortage.
         3433 
         3434    If there is a delivery failure after acceptance of a message, the
         3435    receiver-SMTP MUST formulate and mail a notification message.  This
         3436    notification MUST be sent using a null ("<>") reverse path in the
         3437    envelope.  The recipient of this notification MUST be the address
         3438    from the envelope return path (or the Return-Path: line).  However,
         3439    if this address is null ("<>"), the receiver-SMTP MUST NOT send a
         3440    notification.  Obviously, nothing in this section can or should
         3441    prohibit local decisions (i.e., as part of the same system
         3442    environment as the receiver-SMTP) to log or otherwise transmit
         3443    information about null address events locally if that is desired.  If
         3444    the address is an explicit source route, it MUST be stripped down to
         3445    its final hop.
         3446 
         3447    For example, suppose that an error notification must be sent for a
         3448    message that arrived with:
         3449 
         3450       MAIL FROM:<@a,@b:user@d>
         3451 
         3452    The notification message MUST be sent using:
         3453 
         3454       RCPT TO:<user@d>
         3455 
         3456    Some delivery failures after the message is accepted by SMTP will be
         3457    unavoidable.  For example, it may be impossible for the receiving
         3458    SMTP server to validate all the delivery addresses in RCPT command(s)
         3459    due to a "soft" domain system error, because the target is a mailing
         3460    list (see earlier discussion of RCPT), or because the server is
         3461    acting as a relay and has no immediate access to the delivering
         3462    system.
         3463 
         3464    To avoid receiving duplicate messages as the result of timeouts, a
         3465    receiver-SMTP MUST seek to minimize the time required to respond to
         3466    the final <CRLF>.<CRLF> end of data indicator.  See RFC 1047 [28] for
         3467    a discussion of this problem.
         3468 
         3469 
         3470 
         3471 
         3472 
         3473 
         3474 Klensin                     Standards Track                    [Page 62]
         3475 
         3476 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3477 
         3478 
         3479 6.2 Loop Detection
         3480 
         3481    Simple counting of the number of "Received:" headers in a message has
         3482    proven to be an effective, although rarely optimal, method of
         3483    detecting loops in mail systems.  SMTP servers using this technique
         3484    SHOULD use a large rejection threshold, normally at least 100
         3485    Received entries.  Whatever mechanisms are used, servers MUST contain
         3486    provisions for detecting and stopping trivial loops.
         3487 
         3488 6.3 Compensating for Irregularities
         3489 
         3490    Unfortunately, variations, creative interpretations, and outright
         3491    violations of Internet mail protocols do occur; some would suggest
         3492    that they occur quite frequently.  The debate as to whether a well-
         3493    behaved SMTP receiver or relay should reject a malformed message,
         3494    attempt to pass it on unchanged, or attempt to repair it to increase
         3495    the odds of successful delivery (or subsequent reply) began almost
         3496    with the dawn of structured network mail and shows no signs of
         3497    abating.  Advocates of rejection claim that attempted repairs are
         3498    rarely completely adequate and that rejection of bad messages is the
         3499    only way to get the offending software repaired.  Advocates of
         3500    "repair" or "deliver no matter what" argue that users prefer that
         3501    mail go through it if at all possible and that there are significant
         3502    market pressures in that direction.  In practice, these market
         3503    pressures may be more important to particular vendors than strict
         3504    conformance to the standards, regardless of the preference of the
         3505    actual developers.
         3506 
         3507    The problems associated with ill-formed messages were exacerbated by
         3508    the introduction of the split-UA mail reading protocols [3, 26, 5,
         3509    21].  These protocols have encouraged the use of SMTP as a posting
         3510    protocol, and SMTP servers as relay systems for these client hosts
         3511    (which are often only intermittently connected to the Internet).
         3512    Historically, many of those client machines lacked some of the
         3513    mechanisms and information assumed by SMTP (and indeed, by the mail
         3514    format protocol [7]).  Some could not keep adequate track of time;
         3515    others had no concept of time zones; still others could not identify
         3516    their own names or addresses; and, of course, none could satisfy the
         3517    assumptions that underlay RFC 822's conception of authenticated
         3518    addresses.
         3519 
         3520    In response to these weak SMTP clients, many SMTP systems now
         3521    complete messages that are delivered to them in incomplete or
         3522    incorrect form.  This strategy is generally considered appropriate
         3523    when the server can identify or authenticate the client, and there
         3524    are prior agreements between them.  By contrast, there is at best
         3525    great concern about fixes applied by a relay or delivery SMTP server
         3526    that has little or no knowledge of the user or client machine.
         3527 
         3528 
         3529 
         3530 Klensin                     Standards Track                    [Page 63]
         3531 
         3532 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3533 
         3534 
         3535    The following changes to a message being processed MAY be applied
         3536    when necessary by an originating SMTP server, or one used as the
         3537    target of SMTP as an initial posting protocol:
         3538 
         3539    -  Addition of a message-id field when none appears
         3540 
         3541    -  Addition of a date, time or time zone when none appears
         3542 
         3543    -  Correction of addresses to proper FQDN format
         3544 
         3545    The less information the server has about the client, the less likely
         3546    these changes are to be correct and the more caution and conservatism
         3547    should be applied when considering whether or not to perform fixes
         3548    and how.  These changes MUST NOT be applied by an SMTP server that
         3549    provides an intermediate relay function.
         3550 
         3551    In all cases, properly-operating clients supplying correct
         3552    information are preferred to corrections by the SMTP server.  In all
         3553    cases, documentation of actions performed by the servers (in trace
         3554    fields and/or header comments) is strongly encouraged.
         3555 
         3556 7. Security Considerations
         3557 
         3558 7.1 Mail Security and Spoofing
         3559 
         3560    SMTP mail is inherently insecure in that it is feasible for even
         3561    fairly casual users to negotiate directly with receiving and relaying
         3562    SMTP servers and create messages that will trick a naive recipient
         3563    into believing that they came from somewhere else.  Constructing such
         3564    a message so that the "spoofed" behavior cannot be detected by an
         3565    expert is somewhat more difficult, but not sufficiently so as to be a
         3566    deterrent to someone who is determined and knowledgeable.
         3567    Consequently, as knowledge of Internet mail increases, so does the
         3568    knowledge that SMTP mail inherently cannot be authenticated, or
         3569    integrity checks provided, at the transport level.  Real mail
         3570    security lies only in end-to-end methods involving the message
         3571    bodies, such as those which use digital signatures (see [14] and,
         3572    e.g., PGP [4] or S/MIME [31]).
         3573 
         3574    Various protocol extensions and configuration options that provide
         3575    authentication at the transport level (e.g., from an SMTP client to
         3576    an SMTP server) improve somewhat on the traditional situation
         3577    described above.  However, unless they are accompanied by careful
         3578    handoffs of responsibility in a carefully-designed trust environment,
         3579    they remain inherently weaker than end-to-end mechanisms which use
         3580    digitally signed messages rather than depending on the integrity of
         3581    the transport system.
         3582 
         3583 
         3584 
         3585 
         3586 Klensin                     Standards Track                    [Page 64]
         3587 
         3588 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3589 
         3590 
         3591    Efforts to make it more difficult for users to set envelope return
         3592    path and header "From" fields to point to valid addresses other than
         3593    their own are largely misguided: they frustrate legitimate
         3594    applications in which mail is sent by one user on behalf of another
         3595    or in which error (or normal) replies should be directed to a special
         3596    address.  (Systems that provide convenient ways for users to alter
         3597    these fields on a per-message basis should attempt to establish a
         3598    primary and permanent mailbox address for the user so that Sender
         3599    fields within the message data can be generated sensibly.)
         3600 
         3601    This specification does not further address the authentication issues
         3602    associated with SMTP other than to advocate that useful functionality
         3603    not be disabled in the hope of providing some small margin of
         3604    protection against an ignorant user who is trying to fake mail.
         3605 
         3606 7.2 "Blind" Copies
         3607 
         3608    Addresses that do not appear in the message headers may appear in the
         3609    RCPT commands to an SMTP server for a number of reasons.  The two
         3610    most common involve the use of a mailing address as a "list exploder"
         3611    (a single address that resolves into multiple addresses) and the
         3612    appearance of "blind copies".  Especially when more than one RCPT
         3613    command is present, and in order to avoid defeating some of the
         3614    purpose of these mechanisms, SMTP clients and servers SHOULD NOT copy
         3615    the full set of RCPT command arguments into the headers, either as
         3616    part of trace headers or as informational or private-extension
         3617    headers.  Since this rule is often violated in practice, and cannot
         3618    be enforced, sending SMTP systems that are aware of "bcc" use MAY
         3619    find it helpful to send each blind copy as a separate message
         3620    transaction containing only a single RCPT command.
         3621 
         3622    There is no inherent relationship between either "reverse" (from
         3623    MAIL, SAML, etc., commands) or "forward" (RCPT) addresses in the SMTP
         3624    transaction ("envelope") and the addresses in the headers.  Receiving
         3625    systems SHOULD NOT attempt to deduce such relationships and use them
         3626    to alter the headers of the message for delivery.  The popular
         3627    "Apparently-to" header is a violation of this principle as well as a
         3628    common source of unintended information disclosure and SHOULD NOT be
         3629    used.
         3630 
         3631 7.3 VRFY, EXPN, and Security
         3632 
         3633    As discussed in section 3.5, individual sites may want to disable
         3634    either or both of VRFY or EXPN for security reasons.  As a corollary
         3635    to the above, implementations that permit this MUST NOT appear to
         3636    have verified addresses that are not, in fact, verified.  If a site
         3637 
         3638 
         3639 
         3640 
         3641 
         3642 Klensin                     Standards Track                    [Page 65]
         3643 
         3644 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3645 
         3646 
         3647    disables these commands for security reasons, the SMTP server MUST
         3648    return a 252 response, rather than a code that could be confused with
         3649    successful or unsuccessful verification.
         3650 
         3651    Returning a 250 reply code with the address listed in the VRFY
         3652    command after having checked it only for syntax violates this rule.
         3653    Of course, an implementation that "supports" VRFY by always returning
         3654    550 whether or not the address is valid is equally not in
         3655    conformance.
         3656 
         3657    Within the last few years, the contents of mailing lists have become
         3658    popular as an address information source for so-called "spammers."
         3659    The use of EXPN to "harvest" addresses has increased as list
         3660    administrators have installed protections against inappropriate uses
         3661    of the lists themselves.  Implementations SHOULD still provide
         3662    support for EXPN, but sites SHOULD carefully evaluate the tradeoffs.
         3663    As authentication mechanisms are introduced into SMTP, some sites may
         3664    choose to make EXPN available only to authenticated requestors.
         3665 
         3666 7.4 Information Disclosure in Announcements
         3667 
         3668    There has been an ongoing debate about the tradeoffs between the
         3669    debugging advantages of announcing server type and version (and,
         3670    sometimes, even server domain name) in the greeting response or in
         3671    response to the HELP command and the disadvantages of exposing
         3672    information that might be useful in a potential hostile attack.  The
         3673    utility of the debugging information is beyond doubt.  Those who
         3674    argue for making it available point out that it is far better to
         3675    actually secure an SMTP server rather than hope that trying to
         3676    conceal known vulnerabilities by hiding the server's precise identity
         3677    will provide more protection.  Sites are encouraged to evaluate the
         3678    tradeoff with that issue in mind; implementations are strongly
         3679    encouraged to minimally provide for making type and version
         3680    information available in some way to other network hosts.
         3681 
         3682 7.5 Information Disclosure in Trace Fields
         3683 
         3684    In some circumstances, such as when mail originates from within a LAN
         3685    whose hosts are not directly on the public Internet, trace
         3686    ("Received") fields produced in conformance with this specification
         3687    may disclose host names and similar information that would not
         3688    normally be available.  This ordinarily does not pose a problem, but
         3689    sites with special concerns about name disclosure should be aware of
         3690    it.  Also, the optional FOR clause should be supplied with caution or
         3691    not at all when multiple recipients are involved lest it
         3692    inadvertently disclose the identities of "blind copy" recipients to
         3693    others.
         3694 
         3695 
         3696 
         3697 
         3698 Klensin                     Standards Track                    [Page 66]
         3699 
         3700 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3701 
         3702 
         3703 7.6 Information Disclosure in Message Forwarding
         3704 
         3705    As discussed in section 3.4, use of the 251 or 551 reply codes to
         3706    identify the replacement address associated with a mailbox may
         3707    inadvertently disclose sensitive information.  Sites that are
         3708    concerned about those issues should ensure that they select and
         3709    configure servers appropriately.
         3710 
         3711 7.7 Scope of Operation of SMTP Servers
         3712 
         3713    It is a well-established principle that an SMTP server may refuse to
         3714    accept mail for any operational or technical reason that makes sense
         3715    to the site providing the server.  However, cooperation among sites
         3716    and installations makes the Internet possible.  If sites take
         3717    excessive advantage of the right to reject traffic, the ubiquity of
         3718    email availability (one of the strengths of the Internet) will be
         3719    threatened; considerable care should be taken and balance maintained
         3720    if a site decides to be selective about the traffic it will accept
         3721    and process.
         3722 
         3723    In recent years, use of the relay function through arbitrary sites
         3724    has been used as part of hostile efforts to hide the actual origins
         3725    of mail.  Some sites have decided to limit the use of the relay
         3726    function to known or identifiable sources, and implementations SHOULD
         3727    provide the capability to perform this type of filtering.  When mail
         3728    is rejected for these or other policy reasons, a 550 code SHOULD be
         3729    used in response to EHLO, MAIL, or RCPT as appropriate.
         3730 
         3731 8. IANA Considerations
         3732 
         3733    IANA will maintain three registries in support of this specification.
         3734    The first consists of SMTP service extensions with the associated
         3735    keywords, and, as needed, parameters and verbs.  As specified in
         3736    section 2.2.2, no entry may be made in this registry that starts in
         3737    an "X".  Entries may be made only for service extensions (and
         3738    associated keywords, parameters, or verbs) that are defined in
         3739    standards-track or experimental RFCs specifically approved by the
         3740    IESG for this purpose.
         3741 
         3742    The second registry consists of "tags" that identify forms of domain
         3743    literals other than those for IPv4 addresses (specified in RFC 821
         3744    and in this document) and IPv6 addresses (specified in this
         3745    document).  Additional literal types require standardization before
         3746    being used; none are anticipated at this time.
         3747 
         3748    The third, established by RFC 821 and renewed by this specification,
         3749    is a registry of link and protocol identifiers to be used with the
         3750    "via" and "with" subclauses of the time stamp ("Received: header")
         3751 
         3752 
         3753 
         3754 Klensin                     Standards Track                    [Page 67]
         3755 
         3756 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3757 
         3758 
         3759    described in section 4.4.  Link and protocol identifiers in addition
         3760    to those specified in this document may be registered only by
         3761    standardization or by way of an RFC-documented, IESG-approved,
         3762    Experimental protocol extension.
         3763 
         3764 9. References
         3765 
         3766    [1]  American National Standards Institute (formerly United States of
         3767         America Standards Institute), X3.4, 1968, "USA Code for
         3768         Information Interchange". ANSI X3.4-1968 has been replaced by
         3769         newer versions with slight modifications, but the 1968 version
         3770         remains definitive for the Internet.
         3771 
         3772    [2]  Braden, R., "Requirements for Internet hosts - application and
         3773         support", STD 3, RFC 1123, October 1989.
         3774 
         3775    [3]  Butler, M., Chase, D., Goldberger, J., Postel, J. and J.
         3776         Reynolds, "Post Office Protocol - version 2", RFC 937, February
         3777         1985.
         3778 
         3779    [4]  Callas, J., Donnerhacke, L., Finney, H. and R. Thayer, "OpenPGP
         3780         Message Format", RFC 2440, November 1998.
         3781 
         3782    [5]  Crispin, M., "Interactive Mail Access Protocol - Version 2", RFC
         3783         1176, August 1990.
         3784 
         3785    [6]  Crispin, M., "Internet Message Access Protocol - Version 4", RFC
         3786         2060, December 1996.
         3787 
         3788    [7]  Crocker, D., "Standard for the Format of ARPA Internet Text
         3789         Messages", RFC 822, August 1982.
         3790 
         3791    [8]  Crocker, D. and P. Overell, Eds., "Augmented BNF for Syntax
         3792         Specifications: ABNF", RFC 2234, November 1997.
         3793 
         3794    [9]  De Winter, J., "SMTP Service Extension for Remote Message Queue
         3795         Starting", RFC 1985, August 1996.
         3796 
         3797    [10] Fajman, R., "An Extensible Message Format for Message
         3798         Disposition Notifications", RFC 2298, March 1998.
         3799 
         3800    [11] Freed, N, "Behavior of and Requirements for Internet Firewalls",
         3801         RFC 2979, October 2000.
         3802 
         3803    [12] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
         3804         Extensions (MIME) Part One: Format of Internet Message Bodies",
         3805         RFC 2045, December 1996.
         3806 
         3807 
         3808 
         3809 
         3810 Klensin                     Standards Track                    [Page 68]
         3811 
         3812 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3813 
         3814 
         3815    [13] Freed, N., "SMTP Service Extension for Command Pipelining", RFC
         3816         2920, September 2000.
         3817 
         3818    [14] Galvin, J., Murphy, S., Crocker, S. and N. Freed, "Security
         3819         Multiparts for MIME: Multipart/Signed and Multipart/Encrypted",
         3820         RFC 1847, October 1995.
         3821 
         3822    [15] Gellens, R. and J. Klensin, "Message Submission", RFC 2476,
         3823         December 1998.
         3824 
         3825    [16] Kille, S., "Mapping between X.400 and RFC822/MIME", RFC 2156,
         3826         January 1998.
         3827 
         3828    [17] Hinden, R and S. Deering, Eds. "IP Version 6 Addressing
         3829         Architecture", RFC 2373, July 1998.
         3830 
         3831    [18] Klensin, J., Freed, N. and K. Moore, "SMTP Service Extension for
         3832         Message Size Declaration", STD 10, RFC 1870, November 1995.
         3833 
         3834    [19] Klensin, J., Freed, N., Rose, M., Stefferud, E. and D. Crocker,
         3835         "SMTP Service Extensions", STD 10, RFC 1869, November 1995.
         3836 
         3837    [20] Klensin, J., Freed, N., Rose, M., Stefferud, E. and D. Crocker,
         3838         "SMTP Service Extension for 8bit-MIMEtransport", RFC 1652, July
         3839         1994.
         3840 
         3841    [21] Lambert, M., "PCMAIL: A distributed mail system for personal
         3842         computers", RFC 1056, July 1988.
         3843 
         3844    [22] Mockapetris, P., "Domain names - implementation and
         3845         specification", STD 13, RFC 1035, November 1987.
         3846 
         3847         Mockapetris, P., "Domain names - concepts and facilities", STD
         3848         13, RFC 1034, November 1987.
         3849 
         3850    [23] Moore, K., "MIME (Multipurpose Internet Mail Extensions) Part
         3851         Three: Message Header Extensions for Non-ASCII Text", RFC 2047,
         3852         December 1996.
         3853 
         3854    [24] Moore, K., "SMTP Service Extension for Delivery Status
         3855         Notifications", RFC 1891, January 1996.
         3856 
         3857    [25] Moore, K., and G. Vaudreuil, "An Extensible Message Format for
         3858         Delivery Status Notifications", RFC 1894, January 1996.
         3859 
         3860    [26] Myers, J. and M. Rose, "Post Office Protocol - Version 3", STD
         3861         53, RFC 1939, May 1996.
         3862 
         3863 
         3864 
         3865 
         3866 Klensin                     Standards Track                    [Page 69]
         3867 
         3868 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3869 
         3870 
         3871    [27] Partridge, C., "Mail routing and the domain system", RFC 974,
         3872         January 1986.
         3873 
         3874    [28] Partridge, C., "Duplicate messages and SMTP", RFC 1047, February
         3875         1988.
         3876 
         3877    [29] Postel, J., ed., "Transmission Control Protocol - DARPA Internet
         3878         Program Protocol Specification", STD 7, RFC 793, September 1981.
         3879 
         3880    [30] Postel, J., "Simple Mail Transfer Protocol", RFC 821, August
         3881         1982.
         3882 
         3883    [31] Ramsdell, B., Ed., "S/MIME Version 3 Message Specification", RFC
         3884         2633, June 1999.
         3885 
         3886    [32] Resnick, P., Ed., "Internet Message Format", RFC 2822, April
         3887         2001.
         3888 
         3889    [33] Vaudreuil, G., "SMTP Service Extensions for Transmission of
         3890         Large and Binary MIME Messages", RFC 1830, August 1995.
         3891 
         3892    [34] Vaudreuil, G., "Enhanced Mail System Status Codes", RFC 1893,
         3893         January 1996.
         3894 
         3895 10. Editor's Address
         3896 
         3897    John C. Klensin
         3898    AT&T Laboratories
         3899    99 Bedford St
         3900    Boston, MA 02111 USA
         3901 
         3902    Phone: 617-574-3076
         3903    EMail: klensin@research.att.com
         3904 
         3905 11. Acknowledgments
         3906 
         3907    Many people worked long and hard on the many iterations of this
         3908    document.  There was wide-ranging debate in the IETF DRUMS Working
         3909    Group, both on its mailing list and in face to face discussions,
         3910    about many technical issues and the role of a revised standard for
         3911    Internet mail transport, and many contributors helped form the
         3912    wording in this specification.  The hundreds of participants in the
         3913    many discussions since RFC 821 was produced are too numerous to
         3914    mention, but they all helped this document become what it is.
         3915 
         3916 
         3917 
         3918 
         3919 
         3920 
         3921 
         3922 Klensin                     Standards Track                    [Page 70]
         3923 
         3924 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3925 
         3926 
         3927 APPENDICES
         3928 
         3929 A. TCP Transport Service
         3930 
         3931    The TCP connection supports the transmission of 8-bit bytes.  The
         3932    SMTP data is 7-bit ASCII characters.  Each character is transmitted
         3933    as an 8-bit byte with the high-order bit cleared to zero.  Service
         3934    extensions may modify this rule to permit transmission of full 8-bit
         3935    data bytes as part of the message body, but not in SMTP commands or
         3936    responses.
         3937 
         3938 B. Generating SMTP Commands from RFC 822 Headers
         3939 
         3940    Some systems use RFC 822 headers (only) in a mail submission
         3941    protocol, or otherwise generate SMTP commands from RFC 822 headers
         3942    when such a message is handed to an MTA from a UA.  While the MTA-UA
         3943    protocol is a private matter, not covered by any Internet Standard,
         3944    there are problems with this approach.  For example, there have been
         3945    repeated problems with proper handling of "bcc" copies and
         3946    redistribution lists when information that conceptually belongs to a
         3947    mail envelopes is not separated early in processing from header
         3948    information (and kept separate).
         3949 
         3950    It is recommended that the UA provide its initial ("submission
         3951    client") MTA with an envelope separate from the message itself.
         3952    However, if the envelope is not supplied, SMTP commands SHOULD be
         3953    generated as follows:
         3954 
         3955    1. Each recipient address from a TO, CC, or BCC header field SHOULD
         3956       be copied to a RCPT command (generating multiple message copies if
         3957       that is required for queuing or delivery).  This includes any
         3958       addresses listed in a RFC 822 "group".  Any BCC fields SHOULD then
         3959       be removed from the headers.  Once this process is completed, the
         3960       remaining headers SHOULD be checked to verify that at least one
         3961       To:, Cc:, or Bcc: header remains.  If none do, then a bcc: header
         3962       with no additional information SHOULD be inserted as specified in
         3963       [32].
         3964 
         3965    2. The return address in the MAIL command SHOULD, if possible, be
         3966       derived from the system's identity for the submitting (local)
         3967       user, and the "From:" header field otherwise.  If there is a
         3968       system identity available, it SHOULD also be copied to the Sender
         3969       header field if it is different from the address in the From
         3970       header field.  (Any Sender field that was already there SHOULD be
         3971       removed.)  Systems may provide a way for submitters to override
         3972       the envelope return address, but may want to restrict its use to
         3973       privileged users.  This will not prevent mail forgery, but may
         3974       lessen its incidence; see section 7.1.
         3975 
         3976 
         3977 
         3978 Klensin                     Standards Track                    [Page 71]
         3979 
         3980 RFC 2821             Simple Mail Transfer Protocol            April 2001
         3981 
         3982 
         3983    When an MTA is being used in this way, it bears responsibility for
         3984    ensuring that the message being transmitted is valid.  The mechanisms
         3985    for checking that validity, and for handling (or returning) messages
         3986    that are not valid at the time of arrival, are part of the MUA-MTA
         3987    interface and not covered by this specification.
         3988 
         3989    A submission protocol based on Standard RFC 822 information alone
         3990    MUST NOT be used to gateway a message from a foreign (non-SMTP) mail
         3991    system into an SMTP environment.  Additional information to construct
         3992    an envelope must come from some source in the other environment,
         3993    whether supplemental headers or the foreign system's envelope.
         3994 
         3995    Attempts to gateway messages using only their header "to" and "cc"
         3996    fields have repeatedly caused mail loops and other behavior adverse
         3997    to the proper functioning of the Internet mail environment.  These
         3998    problems have been especially common when the message originates from
         3999    an Internet mailing list and is distributed into the foreign
         4000    environment using envelope information.  When these messages are then
         4001    processed by a header-only remailer, loops back to the Internet
         4002    environment (and the mailing list) are almost inevitable.
         4003 
         4004 C. Source Routes
         4005 
         4006    Historically, the <reverse-path> was a reverse source routing list of
         4007    hosts and a source mailbox.  The first host in the <reverse-path>
         4008    SHOULD be the host sending the MAIL command.  Similarly, the
         4009    <forward-path> may be a source routing lists of hosts and a
         4010    destination mailbox.  However, in general, the <forward-path> SHOULD
         4011    contain only a mailbox and domain name, relying on the domain name
         4012    system to supply routing information if required.  The use of source
         4013    routes is deprecated; while servers MUST be prepared to receive and
         4014    handle them as discussed in section 3.3 and F.2, clients SHOULD NOT
         4015    transmit them and this section was included only to provide context.
         4016 
         4017    For relay purposes, the forward-path may be a source route of the
         4018    form "@ONE,@TWO:JOE@THREE", where ONE, TWO, and THREE MUST BE fully-
         4019    qualified domain names.  This form is used to emphasize the
         4020    distinction between an address and a route.  The mailbox is an
         4021    absolute address, and the route is information about how to get
         4022    there.  The two concepts should not be confused.
         4023 
         4024    If source routes are used, RFC 821 and the text below should be
         4025    consulted for the mechanisms for constructing and updating the
         4026    forward- and reverse-paths.
         4027 
         4028 
         4029 
         4030 
         4031 
         4032 
         4033 
         4034 Klensin                     Standards Track                    [Page 72]
         4035 
         4036 RFC 2821             Simple Mail Transfer Protocol            April 2001
         4037 
         4038 
         4039    The SMTP server transforms the command arguments by moving its own
         4040    identifier (its domain name or that of any domain for which it is
         4041    acting as a mail exchanger), if it appears, from the forward-path to
         4042    the beginning of the reverse-path.
         4043 
         4044    Notice that the forward-path and reverse-path appear in the SMTP
         4045    commands and replies, but not necessarily in the message.  That is,
         4046    there is no need for these paths and especially this syntax to appear
         4047    in the "To:" , "From:", "CC:", etc. fields of the message header.
         4048    Conversely, SMTP servers MUST NOT derive final message delivery
         4049    information from message header fields.
         4050 
         4051    When the list of hosts is present, it is a "reverse" source route and
         4052    indicates that the mail was relayed through each host on the list
         4053    (the first host in the list was the most recent relay).  This list is
         4054    used as a source route to return non-delivery notices to the sender.
         4055    As each relay host adds itself to the beginning of the list, it MUST
         4056    use its name as known in the transport environment to which it is
         4057    relaying the mail rather than that of the transport environment from
         4058    which the mail came (if they are different).
         4059 
         4060 D. Scenarios
         4061 
         4062    This section presents complete scenarios of several types of SMTP
         4063    sessions.  In the examples, "C:" indicates what is said by the SMTP
         4064    client, and "S:" indicates what is said by the SMTP server.
         4065 
         4066 D.1 A Typical SMTP Transaction Scenario
         4067 
         4068    This SMTP example shows mail sent by Smith at host bar.com, to Jones,
         4069    Green, and Brown at host foo.com.  Here we assume that host bar.com
         4070    contacts host foo.com directly.  The mail is accepted for Jones and
         4071    Brown.  Green does not have a mailbox at host foo.com.
         4072 
         4073       S: 220 foo.com Simple Mail Transfer Service Ready
         4074       C: EHLO bar.com
         4075       S: 250-foo.com greets bar.com
         4076       S: 250-8BITMIME
         4077       S: 250-SIZE
         4078       S: 250-DSN
         4079       S: 250 HELP
         4080       C: MAIL FROM:<Smith@bar.com>
         4081       S: 250 OK
         4082       C: RCPT TO:<Jones@foo.com>
         4083       S: 250 OK
         4084       C: RCPT TO:<Green@foo.com>
         4085       S: 550 No such user here
         4086       C: RCPT TO:<Brown@foo.com>
         4087 
         4088 
         4089 
         4090 Klensin                     Standards Track                    [Page 73]
         4091 
         4092 RFC 2821             Simple Mail Transfer Protocol            April 2001
         4093 
         4094 
         4095       S: 250 OK
         4096       C: DATA
         4097       S: 354 Start mail input; end with <CRLF>.<CRLF>
         4098       C: Blah blah blah...
         4099       C: ...etc. etc. etc.
         4100       C: .
         4101       S: 250 OK
         4102       C: QUIT
         4103       S: 221 foo.com Service closing transmission channel
         4104 
         4105 D.2 Aborted SMTP Transaction Scenario
         4106 
         4107       S: 220 foo.com Simple Mail Transfer Service Ready
         4108       C: EHLO bar.com
         4109       S: 250-foo.com greets bar.com
         4110       S: 250-8BITMIME
         4111       S: 250-SIZE
         4112       S: 250-DSN
         4113       S: 250 HELP
         4114       C: MAIL FROM:<Smith@bar.com>
         4115       S: 250 OK
         4116       C: RCPT TO:<Jones@foo.com>
         4117       S: 250 OK
         4118       C: RCPT TO:<Green@foo.com>
         4119       S: 550 No such user here
         4120       C: RSET
         4121       S: 250 OK
         4122       C: QUIT
         4123       S: 221 foo.com Service closing transmission channel
         4124 
         4125 D.3 Relayed Mail Scenario
         4126 
         4127    Step 1  --  Source Host to Relay Host
         4128 
         4129       S: 220 foo.com Simple Mail Transfer Service Ready
         4130       C: EHLO bar.com
         4131       S: 250-foo.com greets bar.com
         4132       S: 250-8BITMIME
         4133       S: 250-SIZE
         4134       S: 250-DSN
         4135       S: 250 HELP
         4136       C: MAIL FROM:<JQP@bar.com>
         4137       S: 250 OK
         4138       C: RCPT TO:<@foo.com:Jones@XYZ.COM>
         4139       S: 250 OK
         4140       C: DATA
         4141       S: 354 Start mail input; end with <CRLF>.<CRLF>
         4142       C: Date: Thu, 21 May 1998 05:33:29 -0700
         4143 
         4144 
         4145 
         4146 Klensin                     Standards Track                    [Page 74]
         4147 
         4148 RFC 2821             Simple Mail Transfer Protocol            April 2001
         4149 
         4150 
         4151       C: From: John Q. Public <JQP@bar.com>
         4152       C: Subject:  The Next Meeting of the Board
         4153       C: To: Jones@xyz.com
         4154       C:
         4155       C: Bill:
         4156       C: The next meeting of the board of directors will be
         4157       C: on Tuesday.
         4158       C:                         John.
         4159       C: .
         4160       S: 250 OK
         4161       C: QUIT
         4162       S: 221 foo.com Service closing transmission channel
         4163 
         4164    Step 2  --  Relay Host to Destination Host
         4165 
         4166       S: 220 xyz.com Simple Mail Transfer Service Ready
         4167       C: EHLO foo.com
         4168       S: 250 xyz.com is on the air
         4169       C: MAIL FROM:<@foo.com:JQP@bar.com>
         4170       S: 250 OK
         4171       C: RCPT TO:<Jones@XYZ.COM>
         4172       S: 250 OK
         4173       C: DATA
         4174       S: 354 Start mail input; end with <CRLF>.<CRLF>
         4175       C: Received: from bar.com by foo.com ; Thu, 21 May 1998
         4176       C:     05:33:29 -0700
         4177       C: Date: Thu, 21 May 1998 05:33:22 -0700
         4178       C: From: John Q. Public <JQP@bar.com>
         4179       C: Subject:  The Next Meeting of the Board
         4180       C: To: Jones@xyz.com
         4181       C:
         4182       C: Bill:
         4183       C: The next meeting of the board of directors will be
         4184       C: on Tuesday.
         4185       C:                         John.
         4186       C: .
         4187       S: 250 OK
         4188       C: QUIT
         4189       S: 221 foo.com Service closing transmission channel
         4190 
         4191 D.4 Verifying and Sending Scenario
         4192 
         4193       S: 220 foo.com Simple Mail Transfer Service Ready
         4194       C: EHLO bar.com
         4195       S: 250-foo.com greets bar.com
         4196       S: 250-8BITMIME
         4197       S: 250-SIZE
         4198       S: 250-DSN
         4199 
         4200 
         4201 
         4202 Klensin                     Standards Track                    [Page 75]
         4203 
         4204 RFC 2821             Simple Mail Transfer Protocol            April 2001
         4205 
         4206 
         4207       S: 250-VRFY
         4208       S: 250 HELP
         4209       C: VRFY Crispin
         4210       S: 250 Mark Crispin <Admin.MRC@foo.com>
         4211       C: SEND FROM:<EAK@bar.com>
         4212       S: 250 OK
         4213       C: RCPT TO:<Admin.MRC@foo.com>
         4214       S: 250 OK
         4215       C: DATA
         4216       S: 354 Start mail input; end with <CRLF>.<CRLF>
         4217       C: Blah blah blah...
         4218       C: ...etc. etc. etc.
         4219       C: .
         4220       S: 250 OK
         4221       C: QUIT
         4222       S: 221 foo.com Service closing transmission channel
         4223 
         4224 E. Other Gateway Issues
         4225 
         4226    In general, gateways between the Internet and other mail systems
         4227    SHOULD attempt to preserve any layering semantics across the
         4228    boundaries between the two mail systems involved.  Gateway-
         4229    translation approaches that attempt to take shortcuts by mapping,
         4230    (such as envelope information from one system to the message headers
         4231    or body of another) have generally proven to be inadequate in
         4232    important ways.  Systems translating between environments that do not
         4233    support both envelopes and headers and Internet mail must be written
         4234    with the understanding that some information loss is almost
         4235    inevitable.
         4236 
         4237 F. Deprecated Features of RFC 821
         4238 
         4239    A few features of RFC 821 have proven to be problematic and SHOULD
         4240    NOT be used in Internet mail.
         4241 
         4242 F.1 TURN
         4243 
         4244    This command, described in RFC 821, raises important security issues
         4245    since, in the absence of strong authentication of the host requesting
         4246    that the client and server switch roles, it can easily be used to
         4247    divert mail from its correct destination.  Its use is deprecated;
         4248    SMTP systems SHOULD NOT use it unless the server can authenticate the
         4249    client.
         4250 
         4251 
         4252 
         4253 
         4254 
         4255 
         4256 
         4257 
         4258 Klensin                     Standards Track                    [Page 76]
         4259 
         4260 RFC 2821             Simple Mail Transfer Protocol            April 2001
         4261 
         4262 
         4263 F.2 Source Routing
         4264 
         4265    RFC 821 utilized the concept of explicit source routing to get mail
         4266    from one host to another via a series of relays.  The requirement to
         4267    utilize source routes in regular mail traffic was eliminated by the
         4268    introduction of the domain name system "MX" record and the last
         4269    significant justification for them was eliminated by the
         4270    introduction, in RFC 1123, of a clear requirement that addresses
         4271    following an "@" must all be fully-qualified domain names.
         4272    Consequently, the only remaining justifications for the use of source
         4273    routes are support for very old SMTP clients or MUAs and in mail
         4274    system debugging.  They can, however, still be useful in the latter
         4275    circumstance and for routing mail around serious, but temporary,
         4276    problems such as problems with the relevant DNS records.
         4277 
         4278    SMTP servers MUST continue to accept source route syntax as specified
         4279    in the main body of this document and in RFC 1123.  They MAY, if
         4280    necessary, ignore the routes and utilize only the target domain in
         4281    the address.  If they do utilize the source route, the message MUST
         4282    be sent to the first domain shown in the address.  In particular, a
         4283    server MUST NOT guess at shortcuts within the source route.
         4284 
         4285    Clients SHOULD NOT utilize explicit source routing except under
         4286    unusual circumstances, such as debugging or potentially relaying
         4287    around firewall or mail system configuration errors.
         4288 
         4289 F.3 HELO
         4290 
         4291    As discussed in sections 3.1 and 4.1.1, EHLO is strongly preferred to
         4292    HELO when the server will accept the former.  Servers must continue
         4293    to accept and process HELO in order to support older clients.
         4294 
         4295 F.4 #-literals
         4296 
         4297    RFC 821 provided for specifying an Internet address as a decimal
         4298    integer host number prefixed by a pound sign, "#".  In practice, that
         4299    form has been obsolete since the introduction of TCP/IP.  It is
         4300    deprecated and MUST NOT be used.
         4301 
         4302 F.5 Dates and Years
         4303 
         4304    When dates are inserted into messages by SMTP clients or servers
         4305    (e.g., in trace fields), four-digit years MUST BE used.  Two-digit
         4306    years are deprecated; three-digit years were never permitted in the
         4307    Internet mail system.
         4308 
         4309 
         4310 
         4311 
         4312 
         4313 
         4314 Klensin                     Standards Track                    [Page 77]
         4315 
         4316 RFC 2821             Simple Mail Transfer Protocol            April 2001
         4317 
         4318 
         4319 F.6 Sending versus Mailing
         4320 
         4321    In addition to specifying a mechanism for delivering messages to
         4322    user's mailboxes, RFC 821 provided additional, optional, commands to
         4323    deliver messages directly to the user's terminal screen.  These
         4324    commands (SEND, SAML, SOML) were rarely implemented, and changes in
         4325    workstation technology and the introduction of other protocols may
         4326    have rendered them obsolete even where they are implemented.
         4327 
         4328    Clients SHOULD NOT provide SEND, SAML, or SOML as services.  Servers
         4329    MAY implement them.  If they are implemented by servers, the
         4330    implementation model specified in RFC 821 MUST be used and the
         4331    command names MUST be published in the response to the EHLO command.
         4332 
         4333 
         4334 
         4335 
         4336 
         4337 
         4338 
         4339 
         4340 
         4341 
         4342 
         4343 
         4344 
         4345 
         4346 
         4347 
         4348 
         4349 
         4350 
         4351 
         4352 
         4353 
         4354 
         4355 
         4356 
         4357 
         4358 
         4359 
         4360 
         4361 
         4362 
         4363 
         4364 
         4365 
         4366 
         4367 
         4368 
         4369 
         4370 Klensin                     Standards Track                    [Page 78]
         4371 
         4372 RFC 2821             Simple Mail Transfer Protocol            April 2001
         4373 
         4374 
         4375 Full Copyright Statement
         4376 
         4377    Copyright (C) The Internet Society (2001).  All Rights Reserved.
         4378 
         4379    This document and translations of it may be copied and furnished to
         4380    others, and derivative works that comment on or otherwise explain it
         4381    or assist in its implementation may be prepared, copied, published
         4382    and distributed, in whole or in part, without restriction of any
         4383    kind, provided that the above copyright notice and this paragraph are
         4384    included on all such copies and derivative works.  However, this
         4385    document itself may not be modified in any way, such as by removing
         4386    the copyright notice or references to the Internet Society or other
         4387    Internet organizations, except as needed for the purpose of
         4388    developing Internet standards in which case the procedures for
         4389    copyrights defined in the Internet Standards process must be
         4390    followed, or as required to translate it into languages other than
         4391    English.
         4392 
         4393    The limited permissions granted above are perpetual and will not be
         4394    revoked by the Internet Society or its successors or assigns.
         4395 
         4396    This document and the information contained herein is provided on an
         4397    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
         4398    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
         4399    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
         4400    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
         4401    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
         4402 
         4403 Acknowledgement
         4404 
         4405    Funding for the RFC Editor function is currently provided by the
         4406    Internet Society.
         4407 
         4408 
         4409 
         4410 
         4411 
         4412 
         4413 
         4414 
         4415 
         4416 
         4417 
         4418 
         4419 
         4420 
         4421 
         4422 
         4423 
         4424 
         4425 
         4426 Klensin                     Standards Track                    [Page 79]
         4427