Tech-invite3GPPspaceIETFspace
959493929190898887868584838281807978777675747372717069686766656463626160595857565554535251504948474645444342414039383736353433323130292827262524232221201918171615141312111009080706050403020100
in Index   Prev   Next

RFC 5598

Internet Mail Architecture

Pages: 54
Informational
Errata
Part 2 of 3 – Pages 17 to 35
First   Prev   Next

Top   ToC   RFC5598 - Page 17   prevText

3. Identities

The forms of identity used by Internet Mail are: mailbox, domain name, message-ID, and ENVID (envelope identifier). Each is globally unique.

3.1. Mailbox

"A mailbox receives mail. It is a conceptual entity that does not necessarily pertain to file storage." [RFC5322] A mailbox is specified as an Internet Mail address <addr-spec>. It has two distinct parts, separated by an at-sign (@). The right side is a globally interpreted domain name associated with an ADMD. Domain names are discussed in Section 3.3. Formal Internet Mail addressing syntax can support source routes to indicate the path through which a message ought to be sent. The use of source routes is not common and has been deprecated in [RFC5321]. The portion to the left of the at-sign contains a string that is globally opaque and is called the <local-part>. It is interpreted only by the entity specified by the address's domain name. Except as noted later in this section, all other entities treat the <local-part> as an uninterpreted literal string and preserve all
Top   ToC   RFC5598 - Page 18
   of its original details.  As such, its public distribution is
   equivalent to sending a Web browser "cookie" that is only interpreted
   upon being returned to its creator.

   Some local-part values have been standardized for contacting
   personnel at an organization.  These names cover common operations
   and business functions [RFC2142].

   It is common for sites to have local structuring conventions for the
   left-hand side, <local-part>, of an <addr-spec>.  This permits sub-
   addressing, such as for distinguishing different discussion groups
   used by the same participant.  However, it is worth stressing that
   these conventions are strictly private to the User's organization and
   are not interpreted by any domain except the one listed in the right
   side of the <addr-spec>.  The exceptions are those specialized
   services that conform to public, standardized conventions, as noted
   below.

   Basic email addressing defines the <local-part> as being globally
   opaque.  However, there are some uses of email that add a
   standardized, global schema to the value, such as between an Author
   and a Gateway.  The <local-part> details remain invisible to the
   public email transfer infrastructure, but provide addressing and
   handling instructions for further processing by the Gateway.
   Standardized examples of these conventions are the telephone
   numbering formats for the Voice Profile for Internet Mail (VPIM)
   [RFC3801], such as:

                       +16137637582@vpim.example.com,

   and iFax ([RFC3192], [RFC4143] such as:

                FAX=+12027653000/T33S=1387@ifax.example.com.

3.2. Scope of Email Address Use

Email addresses are being used far beyond their original role in email transfer and delivery. In practical terms, an email address string has become the common identifier for representing online identity. Hence, it is essential to be clear about both the nature and role of an identity string in a particular context and the entity responsible for setting that string. For example, see Sections 4.1.4, 4.3.3, and 5.
Top   ToC   RFC5598 - Page 19

3.3. Domain Names

A domain name is a global reference to an Internet resource, such as a host, a service, or a network. A domain name usually maps to one or more IP Addresses. Conceptually, the name can encompass an organization, a collection of machines integrated into a homogeneous service, or a single machine. A domain name can be administered to refer to an individual User, but this is not common practice. The name is structured as a hierarchical sequence of labels, separated by dots (.), with the top of the hierarchy being on the right end of the sequence. There can be many names in the sequence -- that is, the depth of the hierarchy can be substantial. Domain names are defined and operated through the Domain Name System (DNS) ([RFC1034], [RFC1035], [RFC2181]). When not part of a mailbox address, a domain name is used in Internet Mail to refer to the ADMD or to the host that took action upon the message, such as providing the administrative scope for a message identifier or performing transfer processing.

3.4. Message Identifier

There are two standardized tags for identifying messages: Message-ID: and ENVID. A Message-ID: pertains to content, and an ENVID pertains to transfer.

3.4.1. Message-ID

IMF provides for, at most, a single Message-ID:. The Message-ID: for a single message, which is a user-level IMF tag, has a variety of uses including threading, aiding identification of duplicates, and DSN (Delivery Status Notification) tracking. The Originator assigns the Message-ID:. The Recipient's ADMD is the intended consumer of the Message-ID:, although any Actor along the transfer path can use it. Message-ID: is globally unique. Its format is similar to that of a mailbox, with two distinct parts separated by an at-sign (@). Typically, the right side specifies the ADMD or host that assigns the identifier, and the left side contains a string that is globally opaque and serves to uniquely identify the message within the domain referenced on the right side. The duration of uniqueness for the message identifier is undefined. When a message is revised in any way, the decision whether to assign a new Message-ID: requires a subjective assessment to determine whether the editorial content has been changed enough to constitute a new message. [RFC5322] states that "a message identifier pertains to
Top   ToC   RFC5598 - Page 20
   exactly one version of a particular message; subsequent revisions to
   the message each receive new message identifiers."  Yet experience
   suggests that some flexibility is needed.  An impossible test is
   whether the Recipient will consider the new message to be equivalent
   to the old one.  For most components of Internet Mail, there is no
   way to predict a specific Recipient's preferences on this matter.
   Both creating and failing to create a new Message-ID: have their
   downsides.

   Here are some guidelines and examples:

   o  If a message is changed only in form, such as character encoding,
      it is still the same message.

   o  If a message has minor additions to the content, such as a Mailing
      List tag at the beginning of the RFC5322.Subject header field, or
      some Mailing List administrative information added to the end of
      the primary body part text, it is probably the same message.

   o  If a message has viruses deleted from it, it is probably the same
      message.

   o  If a message has offensive words deleted from it, some Recipients
      will consider it the same message, but some will not.

   o  If a message is translated into a different language, some
      Recipients will consider it the same message, but some will not.

   o  If a message is included in a digest of messages, the digest
      constitutes a new message.

   o  If a message is forwarded by a Recipient, what is forwarded is a
      new message.

   o  If a message is "redirected", such as using IMF "Resent-*" header
      fields, some Recipients will consider it the same message, but
      some will not.

   The absence of both objective, precise criteria for regenerating a
   Message-ID: and strong protection associated with the string means
   that the presence of an ID can permit an assessment that is
   marginally better than a heuristic, but the ID certainly has no value
   on its own for strict formal reference or comparison.  For that
   reason, the Message-ID: is not intended to be used for any function
   that has security implications.
Top   ToC   RFC5598 - Page 21

3.4.2. ENVID

The ENVID (envelope identifier) can be used for message-tracking purposes ([RFC3885], [RFC3464]) concerning a single posting/delivery transfer. The ENVID labels a single transit of the MHS by a specific message. So, the ENVID is used for one message posting until that message is delivered. A re-posting of the message, such as by a Mediator, does not reuse that ENVID, but can use a new one, even though the message might legitimately retain its original Message-ID:. The format of an ENVID is free form. Although its creator might choose to impose structure on the string, none is imposed by Internet standards. By implication, the scope of the string is defined by the domain name of the Return Address.

4. Services and Standards

The Internet Mail architecture comprises six basic types of functionality, which are arranged to support a store-and-forward service. As shown in Figure 5, each type can have multiple instances, some of which represent specialized roles. This section considers the activities and relationships among these components, and the Internet Mail standards that apply to them. Message Message User Agent (MUA) Author MUA (aMUA) Recipient MUA (rMUA) Message Submission Agent (MSA) Author-focused MSA functions (aMSA) MHS-focused MSA functions (hMSA) Message Transfer Agent (MTA) Message Delivery Agent (MDA) Recipient-focused MDA functions (rMDA) MHS-focused MDA functions (hMDA)
Top   ToC   RFC5598 - Page 22
      Message Store (MS)

         Author MS (aMS)

         Recipient MS (rMS)

   This figure shows function modules and the standardized protocols
   used between them.
Top   ToC   RFC5598 - Page 23
                     ++========++
                     ||        ||                             +-------+
          ...........++  aMUA  ||<............................+ Disp  |
          .          ||        ||                             +-------+
          .          ++=+==+===++                                 ^
          .  local,imap}|  |{smtp,submission                      .
          .  +-----+    |  |                          +--------+  .
          .  | aMS |<---+  | ........................>| Return |  .
          .  +-----+       | .                        +--------+  .
          .                | .    *****************       ^       .
          .          +-----V-.----*------------+  *       .       .
          .      MSA | +-------+  *   +------+ |  *       .       .
          .          | | aMSA  +-(S)->| hMSA | |  *       .       .
          .          | +-------+  *   +--+---+ |  *       .       .
          V          +------------*------+-----+  *       .       .
    //==========\\                *      V {smtp  *       .       .
    || MESSAGE  ||                *   +------+    *  //===+===\\  .
    ||----------||            MHS *   | MTA  |    *  ||  dsn  ||  .
    || ENVELOPE ||                *   +--+---+    *  \\=======//  .
    ||  smtp    ||                *      V {smtp  *     ^   ^     .
    || CONTENT  ||                *   +------+    *     .   . //==+==\\
    ||  imf     ||                *   | MTA  +....*......   . || mdn ||
    ||  mime    ||                *   +--+---+    *         . \\=====//
    \\==========//                * smtp}| {local *         .     ^
          .           MDA         *      | {lmtp  *         .     .
          .      +----------------+------V-----+  *         .     .
          .      | +----------+   *   +------+ |  *         .     .
          .      | |          |   *   |      | +..*..........     .
          .      | |   rMDA   |<-(D)--+ hMDA | |  *               .
          .      | |          |   *   |      | |<.*........       .
          .      | +-+------+-+   *   +------+ |  *       .       .
          .      +------+---------*------------+  *       .       .
          .  smtp,local}|         *****************       .       .
          .             V                                 .       .
          .          +-----+                         //===+===\\  .
          .          | rMS |                         || sieve ||  .
          .          +--+--+                         \\=======//  .
          .             |{imap,pop,local                  ^       .
          .             V                                 .       .
          .       ++==========++                          .       .
          .       ||          ||                          .       .
          .......>||   rMUA   ++...........................       .
                  ||          ++...................................
                  ++==========++

    Legend: --- lines indicate primary (possibly indirect)
                transfers or roles
            === boxes indicate data objects
Top   ToC   RFC5598 - Page 24
            ... lines indicate supporting transfers or roles
            *** lines indicate aggregated service

                     Figure 5: Protocols and Services

4.1. Message Data

The purpose of the Message Handling System (MHS) is to exchange an IMF message object among participants [RFC5322]. All of its underlying mechanisms serve to deliver that message from its Author to its Recipients. A message can be explicitly labeled as to its nature [RFC3458]. A message comprises a transit-handling envelope and the message content. The envelope contains information used by the MHS. The content is divided into a structured header and the body. The header comprises transit-handling trace information and structured fields that are part of the Author's message content. The body can be unstructured lines of text or a tree of multimedia subordinate objects, called "body-parts" or, popularly, "attachments". [RFC2045], [RFC2046], [RFC2047], [RFC4288], [RFC4289], [RFC2049]. In addition, Internet Mail has a few conventions for special control data, notably: Delivery Status Notification (DSN): A Delivery Status Notification (DSN) is a message that can be generated by the MHS (MSA, MTA, or MDA) and sent to the RFC5321.MailFrom address. MDA and MTA are shown as sources of DSNs in Figure 5, and the destination is shown as Returns. DSNs provide information about message transit, such as transfer errors or successful delivery [RFC3461]. Message Disposition Notification (MDN): A Message Disposition Notification (MDN) is a message that provides information about post-delivery processing, such as indicating that the message has been displayed [RFC3798] or the form of content that can be supported [RFC3297]. It can be generated by an rMUA and is sent to the Disposition-Notification-To addresses. The mailbox for this is shown as Disp in Figure 5.
Top   ToC   RFC5598 - Page 25
   Message Filtering (SIEVE):

      Sieve is a scripting language used to specify conditions for
      differential handling of mail, typically at the time of delivery
      [RFC5228].  Scripts can be conveyed in a variety of ways, such as
      a MIME part in a message.  Figure 5 shows a Sieve script going
      from the rMUA to the MDA.  However, filtering can be done at many
      different points along the transit path, and any one or more of
      them might be subject to Sieve directives, especially within a
      single ADMD.  Figure 5 shows only one relationship, for (relative)
      simplicity.

4.1.1. Envelope

Internet Mail has a fragmented framework for transit-related handling information. Information that is used directly by the MHS is called the "envelope". It directs handling activities by the transfer service and is carried in transfer-service commands. That is, the envelope exists in the transfer protocol SMTP [RFC5321]. Trace information, such as RFC5322.Received, is recorded in the message header and is not subsequently altered [RFC5322].

4.1.2. Header Fields

Header fields are attribute name/value pairs that cover an extensible range of email-service parameters, structured user content, and user transaction meta-information. The core set of header fields is defined in [RFC5322]. It is common practice to extend this set for different applications. Procedures for registering header fields are defined in [RFC3864]. An extensive set of existing header field registrations is provided in [RFC4021]. One danger of placing additional information in header fields is that Gateways often alter or delete them.

4.1.3. Body

The body of a message might be lines of ASCII text or a hierarchically structured composition of multimedia body part attachments using MIME ([RFC2045], [RFC2046], [RFC2047], [RFC4288], and [RFC2049]).

4.1.4. Identity References in a Message

Table 1 lists the core identifiers present in a message during transit.
Top   ToC   RFC5598 - Page 26
   +----------------------+----------------+---------------------------+
   | Layer                | Field          | Set By                    |
   +----------------------+----------------+---------------------------+
   | Message Body         | MIME Header    | Author                    |
   | Message header       | From:          | Author                    |
   | fields               |                |                           |
   |                      | Sender:        | Originator                |
   |                      | Reply-To:      | Author                    |
   |                      | To:, CC:, BCC: | Author                    |
   |                      | Message-ID:    | Originator                |
   |                      | Received:      | Originator, Relay,        |
   |                      |                | Receiver                  |
   |                      | Return-Path:   | MDA, from MailFrom        |
   |                      | Resent-*:      | Mediator                  |
   |                      | List-Id:       | Mediator                  |
   |                      | List-*:        | Mediator                  |
   | SMTP                 | HELO/EHLO      | Latest Relay Client       |
   |                      | ENVID          | Originator                |
   |                      | MailFrom       | Originator                |
   |                      | RcptTo         | Author                    |
   |                      | ORCPT          | Originator                |
   | IP                   | Source Address | Latest Relay Client       |
   +----------------------+----------------+---------------------------+

   Legend:
      Layer - The part of the email architecture that uses the
      identifier.

      Field - The protocol construct that contains the identifier.

      Set By - The Actor role responsible for specifying the identifier
      value (and this can be different from the Actor that performs the
      fill-in function for the protocol construct).

                        Table 1: Layered Identities

   These are the most common address-related fields:

   RFC5322.From:  Set by - Author

      Names and addresses for Authors of the message content are listed
      in the From: field.
Top   ToC   RFC5598 - Page 27
   RFC5322.Reply-To:  Set by - Author

      If a Recipient sends a reply message that would otherwise use the
      RFC5322.From field addresses in the original message, the
      addresses in the RFC5322.Reply-To field are used instead.  In
      other words, this field overrides the From: field for responses
      from Recipients.

   RFC5322.Sender:  Set by - Originator

      This field specifies the address responsible for submitting the
      message to the transfer service.  This field can be omitted if it
      contains the same address as RFC5322.From.  However, omitting this
      field does not mean that no Sender is specified; it means that
      that header field is virtual and that the address in the From:
      field is to be used.

      Specification of the notifications Return Addresses, which are
      contained in RFC5321.MailFrom, is made by the RFC5322.Sender.
      Typically, the Return address is the same as the Sender address.
      However, some usage scenarios require it to be different.

   RFC5322.To/.CC:  Set by - Author

      These fields specify MUA Recipient addresses.  However, some or
      all of the addresses in these fields might not be present in the
      RFC5321.RcptTo commands.

      The distinction between To and CC is subjective.  Generally, a To
      addressee is considered primary and is expected to take action on
      the message.  A CC addressee typically receives a copy as a
      courtesy.

   RFC5322.BCC:  Set by - Author

      A copy of the message might be sent to an addressee whose
      participation is not to be disclosed to the RFC5322.To or
      RFC5322.CC Recipients and, usually, not to the other BCC
      Recipients.  The BCC: header field indicates a message copy to
      such a Recipient.  Use of this field is discussed in [RFC5322].

   RFC5321.HELO/.EHLO:  Set by - Originator, MSA, MTA

      Any SMTP client -- including Originator, MSA, or MTA -- can
      specify its hosting domain identity for the SMTP HELO or EHLO
      command operation.
Top   ToC   RFC5598 - Page 28
   RFC3461.ENVID:  Set by - Originator

      The MSA can specify an opaque string, to be included in a DSN, as
      a means of assisting the Return Address Recipient in identifying
      the message that produced a DSN or message tracking.

   RFC5321.MailFrom:  Set by - Originator

      This field is an end-to-end string that specifies an email address
      for receiving return control information, such as returned
      messages.  The name of this field is misleading, because it is not
      required to specify either the Author or the Actor responsible for
      submitting the message.  Rather, the Actor responsible for
      submission specifies the RFC5321.MailFrom address.  Ultimately,
      the simple basis for deciding which address needs to be in the
      RFC5321.MailFrom field is to determine which address is to be
      informed about transfer-level problems (and possibly successes).

   RFC5321.RcptTo:  Set by - Author, Final MTA, MDA

      This field specifies the MUA mailbox address of a Recipient.  The
      string might not be visible in the message content header.  For
      example, the IMF destination address header fields, such as
      RFC5322.To, might specify a Mailing List mailbox, while the
      RFC5321.RcptTo address specifies a member of that list.

   RFC5321.ORCPT:   Set by - Originator.

      This is an optional parameter to the RCPT command, indicating the
      original address to which the current RCPT TO address corresponds,
      after a mapping was performed during transit.  An ORCPT is the
      only reliable way to correlate a DSN from a multi-Recipient
      message transfer with the intended Recipient.

   RFC5321.Received:  Set by - Originator, Relay, Mediator, Dest

      This field contains trace information, including originating host,
      Relays, Mediators, and MSA host domain names and/or IP Addresses.

   RFC5321.Return-Path:  Set by - Originator

      The MDA records the RFC5321.MailFrom address into the
      RFC5321.Return-Path field.

   RFC2919.List-Id:  Set by - Mediator, Author

      This field provides a globally unique Mailing List naming
      framework that is independent of particular hosts [RFC2919].
Top   ToC   RFC5598 - Page 29
      The identifier is in the form of a domain name; however, the
      string usually is constructed by combining the two parts of an
      email address.  The result is rarely a true domain name, listed in
      the domain name service, although it can be.

   RFC2369.List-*:  Set by - Mediator, Author

      [RFC2369] defines a collection of message header fields for use by
      Mailing Lists.  In effect, they supply list-specific parameters
      for common Mailing-List user operations.  The identifiers for
      these operations are for the list itself and the user-as-
      subscriber [RFC2369].

   RFC0791.SourceAddr:  Set by - The Client SMTP sending host
      immediately preceding the current receiving SMTP server

      [RFC0791] defines the basic unit of data transfer for the
      Internet: the IP datagram.  It contains a Source Address field
      that specifies the IP Address for the host (interface) from which
      the datagram was sent.  This information is set and provided by
      the IP layer, which makes it independent of mail-level mechanisms.
      As such, it is often taken to be authoritative, although it is
      possible to provide false addresses.

4.2. User-Level Services

Interactions at the user level entail protocol exchanges, distinct from those that occur at lower layers of the Internet Mail MHS architecture that is, in turn, above the Internet Transport layer. Because the motivation for email, and much of its use, is for interaction among people, the nature and details of these protocol exchanges often are determined by the needs of interpersonal and group communication. To accommodate the idiosyncratic behavior inherent in such communication, only subjective guidelines, rather than strict rules, can be offered for some aspects of system behavior. Mailing Lists provide particularly salient examples.

4.2.1. Message User Agent (MUA)

A Message User Agent (MUA) works on behalf of User Actors and User applications. It is their representative within the email service. The Author MUA (aMUA) creates a message and performs initial submission into the transfer infrastructure via a Mail Submission Agent (MSA). It can also perform any creation- and posting-time archiving in its Message Store (aMS). An MUA aMS can organize messages in many different ways. A common model uses aggregations, called "folders"; in IMAP they are called "mailboxes". This model
Top   ToC   RFC5598 - Page 30
   allows a folder for messages under development (Drafts), a folder for
   messages waiting to be sent (Queued or Unsent), and a folder for
   messages that have been successfully posted for transfer (Sent).  But
   none of these folders is required.  For example, IMAP allows drafts
   to be stored in any folder, so no Drafts folder needs to be present.

   The Recipient MUA (rMUA) works on behalf of the Recipient to process
   received mail.  This processing includes generating user-level
   disposition control messages, displaying and disposing of the
   received message, and closing or expanding the user-communication
   loop by initiating replies and forwarding new messages.

   NOTE:   Although not shown in Figure 5, an MUA itself can have a
           distributed implementation, such as a "thin" user-interface
           module on a constrained device such as a smartphone, with
           most of the MUA functionality running remotely on a more
           capable server.  An example of such an architecture might use
           IMAP [RFC3501] for most of the interactions between an MUA
           client and an MUA server.  An approach for such scenarios is
           defined by [RFC4550].

   A Mediator is a special class of MUA.  It performs message
   re-posting, as discussed in Section 2.1.

   An MUA can be automated, on behalf of a User who is not present at
   the time the MUA is active.  One example is a bulk sending service
   that has a timed-initiation feature.  These services are not to be
   confused with a Mailing List Mediator, since there is no incoming
   message triggering the activity of the automated service.

   A popular and problematic MUA is an automatic responder, such as one
   that sends out-of-office notices.  This behavior might be confused
   with that of a Mediator, but this MUA is generating a new message.
   Automatic responders can annoy Users of Mailing Lists unless they
   follow [RFC3834].

   The identity fields are relevant to a typical MUA:

      RFC5322.From

      RFC5322.Reply-To

      RFC5322.Sender

      RFC5322.To, RFC5322.CC

      RFC5322.BCC
Top   ToC   RFC5598 - Page 31

4.2.2. Message Store (MS)

An MUA can employ a long-term Message Store (MS). Figure 5 depicts an Author's MS (aMS) and a Recipient's MS (rMS). An MS can be located on a remote server or on the same machine as the MUA. An MS acquires messages from an MDA either proactively by a local mechanism or even by a standardized mechanism such as SMTP(!), or reactively by using POP or IMAP. The MUA accesses the MS either by a local mechanism or by using POP or IMAP. Using POP for individual message accesses, rather than for bulk transfer, is relatively rare and inefficient.

4.3. MHS-Level Services

4.3.1. Mail Submission Agent (MSA)

A Mail Submission Agent (MSA) accepts the message submitted by the aMUA and enforces the policies of the hosting ADMD and the requirements of Internet standards. An MSA represents an unusual functional dichotomy. It represents the interests of the Author (aMUA) during message posting, to facilitate posting success; it also represents the interests of the MHS. In the architecture, these responsibilities are modeled, as shown in Figure 5, by dividing the MSA into two sub-components, aMSA and hMSA, respectively. Transfer of responsibility for a single message, from an Author's environment to the MHS, is called "posting". In Figure 5, it is marked as the (S) transition, within the MSA. The hMSA takes transit responsibility for a message that conforms to the relevant Internet standards and to local site policies. It rejects messages that are not in conformance. The MSA performs final message preparation for submission and effects the transfer of responsibility to the MHS, via the hMSA. The amount of preparation depends upon the local implementations. Examples of aMSA tasks include adding header fields, such as Date: and Message-ID:, and modifying portions of the message from local notations to Internet standards, such as expanding an address to its formal IMF representation. Historically, standards-based MUA/MSA message postings have used SMTP [RFC5321]. The standard currently preferred is SUBMISSION [RFC4409]. Although SUBMISSION derives from SMTP, it uses a separate TCP port and imposes distinct requirements, such as access authorization.
Top   ToC   RFC5598 - Page 32
   These identities are relevant to the MSA:

      RFC5321.HELO/.EHLO

      RFC3461.ENVID

      RFC5321.MailFrom

      RFC5321.RcptTo

      RFC5321.Received

      RFC0791.SourceAddr

4.3.2. Message Transfer Agent (MTA)

A Message Transfer Agent (MTA) relays mail for one application-level "hop". It is like a packet switch or IP router in that its job is to make routing assessments and to move the message closer to the Recipients. Of course, email objects are typically much larger than the payload of a packet or datagram, and the end-to-end latencies are typically much higher. Relaying is performed by a sequence of MTAs until the message reaches a destination MDA. Hence, an MTA implements both client and server MTA functionality; it does not change addresses in the envelope or reformulate the editorial content. A change in data form, such as to MIME Content-Transfer- Encoding, is within the purview of an MTA, but removal or replacement of body content is not. An MTA also adds trace information [RFC2505]. NOTE: Within a destination ADMD, email-relaying modules can make a variety of changes to the message, prior to delivery. In such cases, these modules are acting as Gateways, rather than MTAs. Internet Mail uses SMTP ([RFC5321], [RFC2821], [RFC0821]) primarily to effect point-to-point transfers between peer MTAs. Other transfer mechanisms include Batch SMTP [RFC2442] and On-Demand Mail Relay (ODMR) SMTP [RFC2645]. As with most network-layer mechanisms, the Internet Mail SMTP supports a basic level of reliability, by virtue of providing for retransmission after a temporary transfer failure. Unlike typical packet switches (and Instant Messaging services), Internet Mail MTAs are expected to store messages in a manner that allows recovery across service interruptions, such as host-system shutdown. The degree of such robustness and persistence by an MTA can vary. The base SMTP specification provides a framework for protocol response codes. An extensible enhancement to this framework is defined in [RFC5248].
Top   ToC   RFC5598 - Page 33
   Although quite basic, the dominant routing mechanism for Internet
   Mail is the DNS MX record [RFC1035], which specifies an MTA through
   which the queried domain can be reached.  This mechanism presumes a
   public, or at least a common, backbone that permits any attached MTA
   to connect to any other.

   MTAs can perform any of these well-established roles:

   Boundary MTA:  An MTA that is part of an ADMD and interacts with MTAs
                  in other ADMDs.  This is also called a Border MTA.
                  There can be different Boundary MTAs, according to the
                  direction of mail-flow.

                  Outbound MTA:  An MTA that relays messages to other
                                 ADMDs.

                  Inbound MTA:   An MTA that receives inbound SMTP
                                 messages from MTA Relays in other
                                 ADMDs, for example, an MTA running on
                                 the host listed as the target of an MX
                                 record.

   Final MTA:     The MTA that transfers a message to the MDA.

   These identities are relevant to the MTA:

      RFC5321.HELO/.EHLO

      RFC3461.ENVID

      RFC5321.MailFrom

      RFC5321.RcptTo

      RFC5322.Received:  Set by - Relay Server

      RFC0791.SourceAddr

4.3.3. Mail Delivery Agent (MDA)

A transfer of responsibility from the MHS to a Recipient's environment (mailbox) is called "delivery". In the architecture, as depicted in Figure 5, delivery takes place within a Mail Delivery Agent (MDA) and is shown as the (D) transition from the MHS-oriented MDA component (hMDA) to the Recipient-oriented MDA component (rMDA).
Top   ToC   RFC5598 - Page 34
   An MDA can provide distinctive, address-based functionality, made
   possible by its detailed information about the properties of the
   destination address.  This information might also be present
   elsewhere in the Recipient's ADMD, such as at an organizational
   border (Boundary) Relay.  However, it is required for the MDA, if
   only because the MDA is required to know where to deliver the
   message.

   Like an MSA, an MDA serves two roles, as depicted in Figure 5.
   Formal transfer of responsibility, called "delivery", is effected
   between the two components that embody these roles and is shown as
   "(D)" in Figure 5.  The MHS portion (hMDA) primarily functions as a
   server SMTP engine.  A common additional role is to redirect the
   message to an alternative address, as specified by the Recipient
   addressee's preferences.  The job of the Recipient portion of the MDA
   (rMDA) is to perform any delivery actions that the Recipient
   specifies.

   Transfer into the MDA is accomplished by a normal MTA transfer
   mechanism.  Transfer from an MDA to an MS uses an access protocol,
   such as POP or IMAP.

   NOTE:   The term "delivery" can refer to the formal, MHS function
           specified here or to the first time a message is displayed to
           a Recipient.  A simple, practical test for whether the MHS-
           based definition applies is whether a DSN can be generated.

   These identities are relevant to the MDA:

      RFC5321.Return-Path:  Set by - Author Originator or Mediator
         Originator

         The MDA records the RFC5321.MailFrom address into the
         RFC5321.Return-Path field.

      RFC5322.Received:  Set by - MDA server

         An MDA can record a Received: header field to indicate trace
         information, including source host and receiving host domain
         names and/or IP Addresses.

4.4. Transition Modes

From the origination site to the point of delivery, Internet Mail usually follows a "push" model. That is, the Actor that holds the message initiates transfer to the next venue, typically with SMTP [RFC5321] or the Local Mail Transfer Protocol (LMTP) [RFC2033]. With a "pull" model, the Actor that holds the message waits for the Actor
Top   ToC   RFC5598 - Page 35
   in the next venue to initiate a request for transfer.  Standardized
   mechanisms for pull-based MHS transfer are ETRN [RFC1985] and ODMR
   [RFC2645].

   After delivery, the Recipient's MUA (or MS) can gain access by having
   the message pushed to it or by having the receiver of access pull the
   message, such as by using POP [RFC1939] and IMAP [RFC3501].

4.5. Implementation and Operation

A discussion of any interesting system architecture often bogs down when architecture and implementation are confused. An architecture defines the conceptual functions of a service, divided into discrete conceptual modules. An implementation of that architecture can combine or separate architectural components, as needed for a particular operational environment. For example, a software system that primarily performs message relaying is an MTA, yet it might also include MDA functionality. That same MTA system might be able to interface with non-Internet email services and thus perform both as an MTA and as a Gateway. Similarly, implemented modules might be configured to form elaborations of the architecture. An interesting example is a distributed MS. One portion might be a remote server and another might be local to the MUA. As discussed in [RFC1733], there are three operational relationships among such MSs: Online: The MS is remote, and messages are accessible only when the MUA is attached to the MS so that the MUA will re-fetch all or part of a message from one session to the next. Offline: The MS is local to the User, and messages are completely moved from any remote store, rather than (also) being retained there. Disconnected: An rMS and a uMS are kept synchronized, for all or part of their contents, while they are connected. When they are disconnected, mail can arrive at the rMS and the User can make changes to the uMS. The two stores are re-synchronized when they are reconnected.


(page 35 continued on part 3)

Next Section