| < draft-crocker-email-arch-02.txt | draft-crocker-email-arch-03.txt > | |||
|---|---|---|---|---|
| SMTP D. Crocker | SMTP D. Crocker | |||
| Internet-Draft Brandenburg InternetWorking | Internet-Draft Brandenburg InternetWorking | |||
| Expires: July 27, 2005 January 26, 2005 | Expires: August 15, 2005 February 14, 2005 | |||
| Internet Mail Architecture | Internet Mail Architecture | |||
| draft-crocker-email-arch-02 | draft-crocker-email-arch-03 | |||
| Status of this Memo | Status of this Memo | |||
| This document is an Internet-Draft and is subject to all provisions | This document is an Internet-Draft and is subject to all provisions | |||
| of section 3 of RFC 3667. By submitting this Internet-Draft, each | of section 3 of RFC 3667. By submitting this Internet-Draft, each | |||
| author represents that any applicable patent or other IPR claims of | author represents that any applicable patent or other IPR claims of | |||
| which he or she is aware have been or will be disclosed, and any of | which he or she is aware have been or will be disclosed, and any of | |||
| which he or she become aware will be disclosed, in accordance with | which he or she become aware will be disclosed, in accordance with | |||
| RFC 3668. | RFC 3668. | |||
| skipping to change at page 1, line 35 ¶ | skipping to change at page 1, line 35 ¶ | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on July 27, 2005. | This Internet-Draft will expire on August 15, 2005. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (2005). | Copyright (C) The Internet Society (2005). | |||
| Abstract | Abstract | |||
| Over its thirty year history, Internet mail has undergone significant | Over its thirty-four year history, Internet mail has undergone | |||
| changes in scale and complexity. The first standardized architecture | significant changes in scale and complexity. The first standardized | |||
| for email specified a simple split between the user world and the | architecture for email specified a simple split between the user | |||
| transmission world, in the form of Mail User Agents (MUA) and Mail | world, in the form of Mail User Agents (MUA), and the transmission | |||
| Transfer Agents (MTA). Over time each of these has divided into | world, in the form of the Mail Handling Service (MHS) composed of | |||
| multiple, specialized modules. Public discussion and agreement about | Mail Transfer Agents (MTA). Core aspects of the service, such as | |||
| the nature of the changes to Internet mail has not kept pace, and | address and message style, have remained remarkably constant. | |||
| abuses of the Internet mail service have brought these issues into | However public discussion of the architecture has not kept pace with | |||
| stark relief. This draft offers clarifications and enhancements, to | the real-world refinements. This document offers an enhanced | |||
| provide a more consistent base for community discussion of email | Internet Mail architecture to reflect the current service. | |||
| service problems and proposed email service enhancements. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1 Service Overview . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.1 Service Overview . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 1.2 Document Changes . . . . . . . . . . . . . . . . . . . . . . . 5 | 1.2 Discussion venue . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 1.3 Discussion venue . . . . . . . . . . . . . . . . . . . . . . . 5 | 1.3 Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2. Email Actor Roles . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Email Actor Roles . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2.1 User-Level Actors . . . . . . . . . . . . . . . . . . . . . . 6 | 2.1 User Actors . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 2.2 Transfer-Level Actors . . . . . . . . . . . . . . . . . . . . 8 | 2.2 MHS Actors . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 2.3 Administrative Actors . . . . . . . . . . . . . . . . . . . . 11 | 2.3 Administrative Actors . . . . . . . . . . . . . . . . . . . . 11 | |||
| 3. Email Identities . . . . . . . . . . . . . . . . . . . . . . . 11 | 3. Identities . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 3.1 Mailbox Addresses . . . . . . . . . . . . . . . . . . . . . . 12 | 3.1 Mailbox Addresses . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 3.2 Domain Names . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 3.2 Domain Names . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 3.3 Message Identifers . . . . . . . . . . . . . . . . . . . . . . 13 | 3.3 Message Identifiers . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 3.4 Identity Referencing Convention . . . . . . . . . . . . . . . 13 | 3.4 Identity Referencing Convention . . . . . . . . . . . . . . . 15 | |||
| 4. Protocols and Services . . . . . . . . . . . . . . . . . . . . 13 | 4. Services . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 4.1 Service Components . . . . . . . . . . . . . . . . . . . . . . 15 | 4.1 Message . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 4.2 Operational Configuration . . . . . . . . . . . . . . . . . . 21 | 4.2 Mail User Agent (MUA) . . . . . . . . . . . . . . . . . . . . 19 | |||
| 4.3 Layers of Identity References . . . . . . . . . . . . . . . . 21 | 4.3 Mail Submission Agent (MSA) . . . . . . . . . . . . . . . . . 21 | |||
| 5. Message Data . . . . . . . . . . . . . . . . . . . . . . . . . 22 | 4.4 Mail Transfer Agent (MTA) . . . . . . . . . . . . . . . . . . 22 | |||
| 5.1 Envelope . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 | 4.5 Mail Delivery Agent (MDA) . . . . . . . . . . . . . . . . . . 24 | |||
| 5.2 Message Header Fields . . . . . . . . . . . . . . . . . . . . 22 | 4.6 Message Store (MS) . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 5.3 Body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 | 5. Mediators . . . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 6. Two Levels of Store-And-Forward . . . . . . . . . . . . . . . 23 | 5.1 Aliasing . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 6.1 MTA Relaying . . . . . . . . . . . . . . . . . . . . . . . . . 23 | 5.2 ReSending . . . . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 6.2 MUA Forwarding . . . . . . . . . . . . . . . . . . . . . . . . 23 | 5.3 Mailing Lists . . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 30 | 5.4 Gateways . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 31 | 5.5 Security Filter . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . 33 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 34 | |||
| A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 33 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
| Intellectual Property and Copyright Statements . . . . . . . . 34 | 7.1 References - Normative . . . . . . . . . . . . . . . . . . . . 34 | |||
| 7.2 Reference - Descriptive . . . . . . . . . . . . . . . . . . . 36 | ||||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . 37 | ||||
| A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 37 | ||||
| Intellectual Property and Copyright Statements . . . . . . . . 38 | ||||
| 1. Introduction | 1. Introduction | |||
| Over its thirty year history, Internet mail has undergone significant | Over its thirty-four year history, Internet mail has undergone | |||
| changes in scale and complexity. The first standardized architecture | significant changes in scale and complexity. The first standardized | |||
| for email specified a simple split between the user world and the | architecture for email specified a simple split between the user | |||
| transmission world, in the form of Mail User Agents (MUA) and Mail | world, in the form of Mail User Agents (MUA), and the transmission | |||
| Transfer Agents (MTA). Over time each of these has sub-divided into | world, in the form of the Mail Handling Service (MHS) composed of | |||
| more specialized modules. However the basic style and use of names, | Mail Transfer Agents (MTA). | |||
| addresses and message structure have remained remarkably constant. | ||||
| There are two, basic categories of participants in Internet Mail. | The MHS is responsible for accepting a message from one User and | |||
| Users are customers of the Mail Handling Service (MHS). They | delivering it to one or more others. | |||
| represent the sources and sinks of that service. The Mail Handling | ||||
| Service is responsible for accepting a message from one user and | ||||
| delivering to one or more others. | ||||
| +--------+ | +--------+ | |||
| +---------------->| User | | +---------------->| User | | |||
| | +--------+ | | +--------+ | |||
| | . | | . | |||
| +--------+ | +--------+ . | +--------+ | +--------+ . | |||
| | User +--+--------->| User | . | | User +--+--------->| User | . | |||
| +--------+ | +--------+ . | +--------+ | +--------+ . | |||
| | . . | . | . . | |||
| . | +--------+ . . | . | +--------+ . . | |||
| . +-->| User | . . | . +-->| User | . . | |||
| . +--------+ . . | . +--------+ . . | |||
| . . . . | . . . . | |||
| . . . . | . . . . | |||
| . . . . | . . . . | |||
| +--------------------------------------+ | +--------------------------------------+ | |||
| | | | ||||
| | Mail Handling Service (MHS) | | | Mail Handling Service (MHS) | | |||
| | | | ||||
| +--------------------------------------+ | +--------------------------------------+ | |||
| Figure 1: Basic Email Service Model | Figure 1: Basic Email Service Model | |||
| Public discussion and agreement about terms of reference have not | Over time the operational service has sub-divided each of these | |||
| kept pace with the changes, and abuses of the Internet mail service | "layers" into more specialized modules. Core aspects of the service, | |||
| have brought this into stark relief. So, it is necessary to produce | such as address and message style, have remained remarkably constant. | |||
| a revised architecture. However it is important that the original | However public discussion of the architecture has not kept pace with | |||
| distinction between user-level concerns and transfer-level concerns | the real-world refinements. This document offers an enhanced | |||
| be retained. This becomes challenging when the user-level exchange | Internet Mail architecture to reflect the current service. The | |||
| is, itself, a sequence, such as with group dialogue or organizational | original distinction between user-level concerns and transfer-level | |||
| message flow, as occurs with a purchase approval process. It is easy | concerns is retained, and the elaboration to each "level" of the | |||
| to confuse this user-level activity with the underlying mail | architecture is discussed separately. | |||
| transmission service exchanges. | ||||
| For Internet mail, the term "end-to-end" usually refers to single | For Internet mail, the term "end-to-end" usually refers to a single | |||
| posting and the set of deliveries resulting from a single transiting | posting and the set of deliveries directly resulting from its single | |||
| of the MHS. However, note that specialized uses of email consider | transiting of the MHS. However, note that some uses of email | |||
| the entire email service -- including Originator and Recipient -- as | consider the entire email service -- including Originator and | |||
| a subordinate component. For these services, "end-to-end" refers to | Recipient -- as a subordinate component. For these services, | |||
| points outside of the email service. Examples are voicemail over | "end-to-end" refers to points outside of the email service. Examples | |||
| email and EDI over email. | are voicemail over email [RFC2423], EDI over email [RFC1767], and | |||
| facsimile over email.[ID-ffpim] | ||||
| The current draft seeks to: | The current draft seeks to: | |||
| 1. Document changes that have taken place in refining the email | o Document refinements to the email model | |||
| model | ||||
| 2. Clarify functional roles for the architectural components | o Clarify functional roles for the architectural components | |||
| 3. Clarify identity-related issues, across the email service | o Clarify identity-related issues, across the email service | |||
| 4. Provide a common venue for further defining and citing modern | o Provide a document that serves as a common venue for further | |||
| Internet mail architecture | defining and citing modern Internet mail architecture | |||
| 1.1 Service Overview | 1.1 Service Overview | |||
| End-to-end Internet mail exchange is accomplished by using a | End-to-end Internet mail exchange is accomplished by using a | |||
| standardized infrastructure comprising: | standardized infrastructure comprising: | |||
| 1. An email object | o An email object | |||
| 2. Global addressing | o Global addressing | |||
| 3. A connected sequence of point-to-point transfer mechanisms | o A connected sequence of point-to-point transfer mechanisms | |||
| 4. No prior arrangement between originator and recipient | o No prior arrangement between Originator and Recipient | |||
| 5. No prior arrangement between point-to-point transfer services, | o No prior arrangement between point-to-point transfer services, | |||
| over the open Internet | over the open Internet | |||
| The end-to-end portion of the service is the message. Broadly the | The end-to-end portion of the service is the message. Broadly the | |||
| message, itself, is divided between handling control information and | message, itself, is divided between handling control information and | |||
| user message payload. | user message content. | |||
| A precept to the design of Internet mail is to permit user-to-user | A precept to the design of Internet mail is permitting user-to-user | |||
| and MTA-to-MTA interoperability with no prior, direct administrative | and MTA-to-MTA interoperability with no prior, direct administrative | |||
| arrangement. That is, all participants rely on having the core | arrangement. That is, all participants rely on having the core | |||
| services be universally supported, either directly or through | services be universally supported, either directly or through | |||
| gateways that translate between Internet mail standards and other | Gateways that translate between Internet mail standards and other | |||
| email conventions. | email conventions. | |||
| For localized environments (edge networks) prior, administrative | For localized environments (Edge networks) prior, administrative | |||
| arrangement can include access control, routing constraints and | arrangement can include access control, routing constraints and | |||
| lookup service configuration. In recent years one change to local | lookup service configuration. In recent years one change to local | |||
| environments is an increased requirement for authentication or, at | environments is an increased requirement for authentication or, at | |||
| least, accountability. In these cases, the server performs explicit | least, accountability. In these cases, the server performs explicit | |||
| validation of the client's identity. | validation of the client's identity. | |||
| 1.2 Document Changes | 1.2 Discussion venue | |||
| The major changes from the previous version of this document are: | Discussion about this document should be directed to the IETF-SMTP | |||
| mailing list <http://www.imc.org/ietf-smtp>. It is the most active, | ||||
| long-standing venue for discussing email architecture. Although it | ||||
| is primarily for discussing only the SMTP protocol, it is recommended | ||||
| that discussion of this draft take place on that mailing list because | ||||
| it attends to end-to-end infrastructure and architecture issues more | ||||
| than other email-related mailing lists. | ||||
| Overall: Clarify roles and responsibilities | 1.3 Changes | |||
| Diagrams: Revised diagrams and tightened things up | This is intended to be the last major revision, prior to seeking | |||
| publication. | ||||
| Distinct architectural 'sections': Added concept of ADMDs, as | Significant changes to this version: | |||
| operational layer, separate from functional or architectural | ||||
| layer. Added user "layer", as distinct from transfer. Introduced | ||||
| 'mediator'. | ||||
| 1.3 Discussion venue | Administrative Domain: Extensive discussion of this operational | |||
| construct, including distinguishing User, Edge and Transit ADs. | ||||
| This elaborates the reference to "providers" in earlier drafts. | ||||
| NOTE: This document is the work of a single person, about a topic | Mediator: Extensive revision both to the description of Mediator | |||
| with considerable diversity of views. It is certain to be | and use of the construct throughout the document. | |||
| incomplete and inaccurate. Some errors simply need to be | ||||
| reported; they will get fixed. Others need to be discussed by the | ||||
| community, because the real requirement is to develop common | ||||
| community views. To this end, please treat the draft as a | ||||
| touchstone for public discussion. | ||||
| Discussion about this document should be directed to the: | Gateway: The construct of a gateway is elaborated. | |||
| <mailto:ietf-smtp@imc.org> mailing list. The IETF-SMTP mailing list | ||||
| <http://www.imc.org/ietf-smtp/index.htm> is the most active, | Set by: Tables that had an entry for "Actor:" have been changed to | |||
| long-standing venue for discussing email architecture. Although this | "Set by:" in order to clarify the nature of the Actor reference | |||
| list is primarily for discussing only the SMTP protocol, it is | being made. It is intended to indicate who is responsible for | |||
| recommended that discussion of this draft take place on that mailing | setting the identity, rather than indicate what identity is | |||
| list. This list tends to attend to end-to-end infrastructure and | referred to. The specific references were carefully reviewed and | |||
| architecture issues more than other email-related mailing lists. | modified, to reflect this focus. The list of "set by" entries was | |||
| extensively reviewed, with substantial modifications made. | ||||
| Editorial proofing: A complete word-smithing pass over the | ||||
| document. | ||||
| 2. Email Actor Roles | 2. Email Actor Roles | |||
| Discussion of email architecture requires distinguishing different | Internet Mail is a highly distributed service, with a variety of | |||
| actors within the service, and being clear about the job each | actors serving different roles. These divide into: | |||
| performs. The best way to maintain the distinction between user | ||||
| activity and handling activities is to depict their details in | ||||
| separate diagrams. Current Internet mail provides only a small set | ||||
| of capabilities for supporting different kinds of ongoing, user-level | ||||
| exchanges. | ||||
| Although related to a technical architecture, the focus of a | o User | |||
| discussions on Actors is on participant responsibilities, rather than | ||||
| functional modules. Hence the labels used are different than for | ||||
| classic email architecture diagrams. The figures depict the | ||||
| relationships among the Actors. Actors often will be associated with | ||||
| entirely independent organizations from other Actors who are | ||||
| participating in the email service. | ||||
| 2.1 User-Level Actors | o Mail Handling Service (MHS) | |||
| o Administrative Domain | ||||
| Although related to a technical architecture, the focus on Actors | ||||
| concerns participant responsibilities, rather than on functional | ||||
| modules. Hence the labels used are different than for classic email | ||||
| architecture diagrams. Actors often will be associated with | ||||
| different organizations. This operational independence provides the | ||||
| motivation for distinguishing Administrative Domains. | ||||
| 2.1 User Actors | ||||
| Users are the sources and sinks of messages. They may have an | Users are the sources and sinks of messages. They may have an | |||
| exchange that iterates and they may expand or contract the set of | exchange that iterates and they may expand or contract the set of | |||
| users participating in a set of exchanges. | Users participating in a set of exchanges. In Internet Mail there | |||
| are three types of user-level Actors: | ||||
| In Internet Mail there are three, basic types of user-level Actors: | o Originators | |||
| Originators, Recipients, and Mediators. Fromhe t User-level | ||||
| perspective all mail transfer activities are performed by a | o Recipients | |||
| monolithic, shared handling service. Users are customers of this | ||||
| service. The following depicts the relationships among them. | o Mediators | |||
| From the User-level perspective all mail transfer activities are | ||||
| performed by a monolithic, shared MHS. Users are customers of this | ||||
| service. | ||||
| The following depicts the relationships among them. | ||||
| +------------+ | +------------+ | |||
| | Originator |<--------------+ | | Originator |<--------------+ | |||
| +-+---+----+-+ | | +-+---+----+-+ | | |||
| | | | | | | | | | | |||
| | | V | | | | V | | |||
| | | +-----------+ | | | | +-----------+ | | |||
| | | | Recipient | | | | | | Recipient | | | |||
| | | +-----------+ | | | | +-----------+ | | |||
| | | | | | | | | |||
| skipping to change at page 6, line 47 ¶ | skipping to change at page 7, line 28 ¶ | |||
| | V V | | | | V V | | | |||
| | +-----------+ +---+---+---+ | | +-----------+ +---+---+---+ | |||
| | | Mediator +--->| Recipient | | | | Mediator +--->| Recipient | | |||
| | +-----------+ +-----------+ | | +-----------+ +-----------+ | |||
| | | | | |||
| V | V | |||
| +-----------+ +-----------+ +-----------+ | +-----------+ +-----------+ +-----------+ | |||
| | Mediator +--->| Mediator +--->| Recipient | | | Mediator +--->| Mediator +--->| Recipient | | |||
| +-----------+ +-----------+ +-----------+ | +-----------+ +-----------+ +-----------+ | |||
| The functions of these Actors are: | Figure 2: Relationships Among User Actors | |||
| 2.1.1 Originator | 2.1.1 Originator | |||
| Also called "Author", this is the user-level participant responsible | Also called "Author", this is the user-level participant responsible | |||
| for creating original content and requesting its transmission. The | for creating original content and requesting its transmission. The | |||
| Mail Handling Service operates to send and deliver mail among | MHS operates to send and deliver mail among Originators and | |||
| Originators and Recipients. | Recipients. | |||
| 2.1.2 Recipient | 2.1.2 Recipient | |||
| The Recipient is a consumer of delivered content. | The Recipient is a consumer of delivered content. | |||
| A recipient may close the user-level communication loop by creating | A Recipient may close the user-level communication loop by creating | |||
| and submitting a new message that replies to an originator. An | and submitting a new message that replies to an Originator. An | |||
| automated, or semi-automated form of reply informs the Originator | example of an automated form of reply is the Message Disposition | |||
| about the Recipient's disposition of the message. | Notification, which informs the Originator about the Recipient's | |||
| disposition of the message. See Section 4.1. | ||||
| 2.1.3 Mediator | 2.1.3 Mediator | |||
| A Mediator receives, aggregates, reformulates and distributes | A Mediator receives, aggregates, reformulates and redistributes | |||
| messages as part of a potentially-protracted, higher-level exchange | messages as part of a potentially-protracted, higher-level exchange | |||
| among users. A Mediator is viewed by the Mail Handling Service, when | among Users. Example uses of Mediators include group dialogue and | |||
| the Mediator's address is specified in the envelope. When submitting | organizational message flow, as occurs with a purchase approval | |||
| process. Note that it is easy to confuse this user-level activity | ||||
| with the underlying MHS exchanges. However they serve very different | ||||
| purposes and operate is very different ways. Mediators are | ||||
| considered extensively in Section 5. | ||||
| When mail is delivered to an envelope address, a Mediator is viewed | ||||
| by the Mail Handling Service as a Recipient. When submitting | ||||
| messages, the Mediator is an Originator. What is distinctive is that | messages, the Mediator is an Originator. What is distinctive is that | |||
| a Mediator preserves Originator information of the message(s) it | a Mediator preserves the Originator information of the message it | |||
| reformulates, but makes meaningful changes to the content. Hence the | reformulates, but may make meaningful changes to the content. Hence | |||
| Mail Handling Service sees a new message, but Users receive a message | the MHS sees a new message, but Users receive a message that is | |||
| that is interpreted as primarily being from the author of the | interpreted as primarily being from -- or, at least, initiated by -- | |||
| original message. The role of a Mediator permits distinct, active | the author of the original message. The role of a Mediator permits | |||
| creativity, rather than being limited the more passive job of merely | distinct, active creativity, rather than being limited to the more | |||
| connecting together other participants. Hence it is really the | constrained job of merely connecting together other participants. | |||
| Mediator that is responsible for the new message. | Hence it is really the Mediator that is responsible for the new | |||
| message. | ||||
| A Mediator's task may be complex, contingent and creative, such as by | A Mediator's task may be complex and contingent, such as by modifying | |||
| modifying and adding content or regulating which users may | and adding content or regulating which users may participate and | |||
| participate and when. The popular example of this role is a group | when. The popular example of this role is a group mailing list. A | |||
| mailing list. A sequence of mediators may even perform a series of | sequence of mediators may even perform a series of formal steps, such | |||
| formal steps, such as reviewing, modifying and approving a purchase | as reviewing, modifying and approving a purchase request. | |||
| request. | ||||
| Because a Mediator originates messages, it might also receive | Because a Mediator originates messages, it might also receive | |||
| replies. That is, a Mediator is a full-fledged User. | replies. So, a Mediator really is a full-fledged User. | |||
| Specialized Mediators include: | ||||
| Forwarder: A new message encapsulates the original message and is | ||||
| seen as strictly "from" the Mediator. However the Mediator might | ||||
| add commentary and certainly has the opportunity to modify the | ||||
| original message content. | ||||
| Redirector: Redirection differs from Forwarding by virtue of having | ||||
| the Mediator "splice" communication between the Originator of the | ||||
| original message and the Recipient of the new message. Hence the | ||||
| new Recipient sees the message as being From the original | ||||
| Originator. | ||||
| Mailing List: This Actor performs a task that can be viewed as an | ||||
| elaboration of the Redirector role. In addition to sending the | ||||
| new message to a potentially large number of new Recipients, | ||||
| content might be modified, such as deletion of attachments, | ||||
| formatting conversion, and addition of list-specific comments. In | ||||
| additional, archival of list messages is common. | ||||
| Annotator: The integrity of the original message is preserved, but | ||||
| one or more comments about the message are added in a manner that | ||||
| distinguishes commentary from original text. | ||||
| Adaptor: {per Ned Freed} | ||||
| Security Filter: Organizations often enforce security boundaries by | Gateway: A Gateway is a particularly interesting form of Mediator. | |||
| having message subjected to analysis for conformance with the | It is a hybrid of User and Relay that interconnects heterogeneous | |||
| organization's safety policies. Examples are detection of content | mail services. Its goal of emulating a Relay, so Gateway is | |||
| classed as spam or a virus. A Security Filter might alter the | described in the next section. | |||
| content, to render it safe, such as by removing content deemed | ||||
| unacceptable. Typically these actions will result in the addition | ||||
| of content that records the actions. | ||||
| 2.2 Transfer-Level Actors | 2.2 MHS Actors | |||
| The Mail Handling Service has the task of performing a single, | The Mail Handling Service (MHS) has the task of performing a single, | |||
| end-to-end transfer on behalf of the originator and reaching the | email-level end-to-end transfer, on behalf of the Originator and | |||
| recipient address(es) specified in the envelope. Protracted, | reaching the Recipient address(es) specified in the envelope. | |||
| iterative exchanges, such as those used for collaboration over time, | Mediated or protracted, iterative exchanges, such as those used for | |||
| are part of the User-level service, and are not part of this | collaboration over time, are part of the User-level service, and are | |||
| Transfer-level service. | not part of this Transfer-level service. | |||
| The following depicts the relationships among transfer participants | The following depicts the relationships among transfer participants | |||
| in Internet Mail. It shows Source as distinct from the Originator, | in Internet Mail. It shows the Source as distinct from the | |||
| although it is common for them to be the same actor. The figure also | Originator, and Destination as distinct from Recipient, although it | |||
| shows multiple Relays in the sequence. It is legal to have only one, | is common for each pair to be the same actor. The figure also shows | |||
| and for intra-organization mail services, this is common. | multiple Relays in the sequence. It is legal to have only one, and | |||
| for intra-organization mail services, this is common. | ||||
| +------------+ +-----------+ | +------------+ +-----------+ | |||
| | Originator | | Recipient | | | Originator | | Recipient | | |||
| +-----+------+ +-----------+ | +-----+------+ +-----------+ | |||
| | ^ | | ^ | |||
| | Mail Handling Service | | | Mail Handling Service | | |||
| +===================================================+ | /+=================================================+\ | |||
| || | | || | || | | || | |||
| || | | || | || | | || | |||
| V | | V | | |||
| +---------+ +--------+ +----+----+ | +---------+ +--------+ +----+----+ | |||
| | | | |<------------+ | | | | | |<------------+ | | |||
| | Source +...>| Notice | | Dest | | | Source +...>| Notice | | Dest | | |||
| | | | |<---+ | | | | | | |<---+ | | | |||
| +----+----+ +--------+ | +---------+ | +----+----+ +--------+ | +---------+ | |||
| | | ^ | | | ^ | |||
| V | | | V | | | |||
| +---------+ +----+----+ +----+----+ | +---------+ +----+----+ +----+----+ | |||
| | Relay +-->.......-->| Relay +-->| Relay | | | Relay +-->.......-->| Relay +-->| Relay | | |||
| +---------+ +----+----+ +---------+ | +---------+ +----+----+ +---------+ | |||
| | | | | |||
| V | V | |||
| +---------+ | +---------+ | |||
| | Gateway +-->... | | Gateway +-->... | |||
| +---------+ | +---------+ | |||
| Figure 3: Relationships Among MHS Actors | ||||
| 2.2.1 Source | 2.2.1 Source | |||
| The Source role is responsible for ensuring that a message is valid | The Source role is responsible for ensuring that a message is valid | |||
| for posting and then submitting it to a mail relay. Validity | for posting and then submitting it to a Relay. Validity includes | |||
| includes conformance with Internet mail standards, as well as local | conformance with Internet mail standards, as well as with local | |||
| operational policies. Source may simply review the message for | operational policies. The source may simply review the message for | |||
| conformance, and reject it if there are errors, or it may create some | conformance, and reject it if there are errors, or it may create some | |||
| or all of the necessary information. | or all of the necessary information. | |||
| Source operates with dual allegiance. It serves the Originator and | The Source operates with dual "allegiance". It serves the Originator | |||
| often it is the same entity. However its role in assuring validity | and often it is the same entity. However its role in assuring | |||
| means that it must represent the local operator of the Mail Handling | validity means that it must also represent the local operator of the | |||
| Service. | MHS, that is, the local Administrative Domain. | |||
| Source also has the responsibility for any post-submission, | The Source also has the responsibility for any post-submission, | |||
| originator-related administrative tasks associated with message | Originator-related administrative tasks associated with message | |||
| transmission and delivery. Notably this pertains to error and | transmission and delivery. Notably this pertains to error and | |||
| delivery notices. Hence, Source is best held accountable for the | delivery notices. Hence, Source is best held accountable for the | |||
| message content, even when they did not create any or most of it. | message content, even when they did not create any or most of it. | |||
| 2.2.2 Notices Handler | 2.2.2 Notifications Handler | |||
| Transfer efforts might result in the generation of service reporting | The Notifications Handler processes service notifications that are | |||
| information about failures or completions. These Transfer or | generated by the MHS, as a result of its efforts to transfer or | |||
| Delivery notification messages are sent to an address that is | deliver the message. Notices may be about failures or completions | |||
| specified by the Source. A Notices handling address (also known as | and are sent to an address that is specified by the Source. This | |||
| Bounce or Return address) might have no characteristics in common the | Notices handling address (also known as a Bounce or Return address) | |||
| with address of the Originator or Source. | might have no visible characteristics in common with the address of | |||
| the Originator or Source. | ||||
| 2.2.3 Relay | 2.2.3 Relay | |||
| A mail relay performs email transfer-service routing and | A mail Relay performs email transfer-service routing and | |||
| store-and-forward. It adds envelope-related handling information and | store-and-forward. It adds envelope-level handling information and | |||
| then (re-)transmits the message on towards its recipient(s). A Relay | then (re-)transmits the message on towards its Recipient(s). A Relay | |||
| does not modify the message contents. | may add information to the envelope, such as with trace information. | |||
| However it does not modify existing envelope information or the | ||||
| message content semantics. It may modify message content syntax, | ||||
| such as a change from text to binary transfer-encoding form, only as | ||||
| required to meet the capabilities of the next hop in the MHS. | ||||
| A basic transfer operation is between a client and a server Relay. A | A set of Relays composes a Mail Handling Service network. This is | |||
| set of Relays composes a Mail Handling Service network. This is | ||||
| above any underlying packet-switching network that they might be | above any underlying packet-switching network that they might be | |||
| using. | using. Hence, interesting email scenarios can involve three levels | |||
| of store-and-forward: | ||||
| Aborting message transfer results in having the Relay become an | o User Mediators | |||
| o MHS Relays | ||||
| o Packet Switches | ||||
| Aborting a message transfer results in having the Relay become an | ||||
| Originator and send an error message to the Notifications (Bounce) | Originator and send an error message to the Notifications (Bounce) | |||
| address. (The potential for looping is avoided by having this | address. (The potential for looping is avoided by having this | |||
| message, itself, contain no Bounce address. | message, itself, contain no Notifications address.) | |||
| 2.2.4 Gateway | 2.2.4 Gateway | |||
| A Gateway is a special form of Relay that interconnects heterogeneous | A Gateway is a hybrid form of User and Relay that interconnects | |||
| mail services. Differences between the services can be as small as | heterogeneous mail services. It operates as a User process, but its | |||
| minor syntax variations, but usually encompass much more basic, | purpose is simply to Relay messages. The more closely a Gateway is | |||
| semantic distinctions. For example, the concept of an email address | able to operate as a Relay, the better. Differences between mail | |||
| might be as different as a hierarchical, machine-specific address | services can be as small as minor syntax variations, but usually | |||
| versus a flat, global name space. Or between text-only and | encompass significant, semantic distinctions. For example, the | |||
| multi-media. Hence, the Relay function of a gateway is the minor | concept of an email address might be as different as a hierarchical, | |||
| component. The significant challenge is in the user-to-user | machine-specific address versus a flat, global name space. Or | |||
| functionality that matches syntax and semantics of independent email | between text-only content and multi-media. Hence the Relay function | |||
| standards suites. | in a Gateway offers the minor challenge in design. The more | |||
| significant challenge is in ensuring the user-to-user functionality | ||||
| that matches syntax and semantics of independent email standards | ||||
| suites. | ||||
| The basic test of a gateway's adequacy is, of course, whether an | The basic test of a Gateway's adequacy is, of course, whether an | |||
| originator can send a message to a recipient, without requiring any | Originator on one side of a Gateway can send a message to a Recipient | |||
| changes to the components in the originator's mail service or the | on the other side, without requiring changes to any of the components | |||
| recipient's mail service, other than adding the gateway. To each of | in the Originator's or Recipient's mail services, other than adding | |||
| these otherwise independent services, the gateway will appear to be a | the Gateway. To each of these otherwise independent services, the | |||
| "native" participant. However the ultimate test of a gateway's | Gateway will appear to be a "native" participant. However the | |||
| adequacy is whether the originator and recipient can sustain a | ultimate test of a Gateway's adequacy is whether the Originator and | |||
| dialogue. In particular, can a recipient formulate a Reply? | Recipient can sustain a dialogue. In particular, can a Recipient's | |||
| MUA automatically formulate a valid Reply? | ||||
| 2.3 Administrative Actors | 2.3 Administrative Actors | |||
| Operation of Internet mail services is apportioned to different | Operation of Internet mail services is apportioned to different | |||
| providers (or operators) each is composed of an independent | providers (or operators). Each can be composed of an independent | |||
| Administrative Domain. Examples include an end-user operating their | Administrative Domain (AD). Examples include an end-user operating | |||
| desktop client, a department operating a local relay, an IT | their desktop client, a department operating a local Relay, an IT | |||
| department operating an enterprise relay, and an ISP operating a | department operating an enterprise Relay, and an ISP operating a | |||
| public, shared email service. These can be configured into many | public, shared email service. These can be configured into many | |||
| combinations of administrative and operational relationships, with | combinations of administrative and operational relationships, with | |||
| each Administrative Domain potentially having a complex arrangement | each Administrative Domain potentially having a complex arrangement | |||
| of functional components. | of functional components. Figure 4 depicts the relationships among | |||
| ADs. Perhaps the most salient aspect of an AD is the differential | ||||
| trust that determines its policies for activities within the AD, | ||||
| versus those involving interactions with other ADs. | ||||
| Basic components of AD distinction include: | ||||
| Transit: These are Mail Service Providers (MSP) offering | ||||
| value-added capabilities for Edge ADs, such as aggregation and | ||||
| filtering. | ||||
| Edge: Independent transfer services, in networks at the edge of the | ||||
| Internet mail service. | ||||
| User: End-user services. This might be subsumed under the Edge | ||||
| service, such as is common for web-based email access. | ||||
| Note that Transit services are quite different from packet-level | ||||
| transit operation. Whereas end-to-end packet transfers usually go | ||||
| through intermediate routers. Email exchange across the open | ||||
| Internet is often directly between the Edge ADs, at the email level. | ||||
| +------ +------+ +------+ | ||||
| | AD-1 | | AD-3 | | AD-4 | | ||||
| | ---- | | ---- | | ---- | | ||||
| | | +---------------------->| | | | | ||||
| | User | | |-Edge-+---->|-User | | ||||
| | | | | +--->| | | | | ||||
| | V | | | +------+ +------+ | ||||
| | Edge-+----+ | | ||||
| | | | +---------+ | | ||||
| +------+ | | AD-2 | | | ||||
| | | ------- | | | ||||
| | | | | | ||||
| +--->|-Transit-+---+ | ||||
| | | | ||||
| +---------+ | ||||
| Figure 4: Administrative Domains (AD) | ||||
| Edge networks may use proprietary email standards internally. | ||||
| However the distinction between Transit network and Edge network | ||||
| transfer services is primarily significant because it highlights the | ||||
| need for concern over interaction and protection between independent | ||||
| administrations. In particular, this distinctions calls for | ||||
| additional care in assessing transitions of responsibility, as well | ||||
| as the accountability and authorization relationships among | ||||
| participants in email transfer. | ||||
| The interactions between functional components within an | The interactions between functional components within an | |||
| Administrative Domain are subject to the policies of that domain. | Administrative Domain are subject to the policies of that domain. | |||
| Policies can cover such things as reliability, access control, | Policies can cover such things as reliability, access control, | |||
| accountability and content evaluation and may be implemented in | accountability and even content evaluation and modification. They | |||
| different functional components, according to the needs of the | may be implemented in different functional components, according to | |||
| Administrative Domain. | the needs of the Administrative Domain. For example, see | |||
| [ID-spamops]. | ||||
| 2.3.1 Provider | ||||
| Providers operate component services or sets of services. It is | User, Edge and Transit services can be offered by providers that | |||
| possible for Providers to host services for other Providers. Common | operate component services or sets of services. Further, it is | |||
| possible for one AD to host services for other ADs. Common AD | ||||
| examples are: | examples are: | |||
| Enterprise Service Providers: Operating an organization's internal | Enterprise Service Providers: | |||
| data and/or mail operations. | ||||
| Internet Service Providers: Operating underlying data communication | Operating an organization's internal data and/or mail operations. | |||
| services that, in turn, are used by one or more Relays and Users. | ||||
| It is not their job to perform email functions, but to provide an | ||||
| environment in which those functions can be performed. | ||||
| Mail Service Providers: Operate email services, such as for | Internet Service Providers: | |||
| end-users, or mailing lists. | ||||
| Operational pragmatics often dictate that Providers be involved in | Operating underlying data communication services that, in turn, | |||
| detailed administration and enforcement issues, to help insure the | are used by one or more Relays and Users. It is not their job to | |||
| health of the overall Internet Mail Service. | perform email functions, but to provide an environment in which | |||
| those functions can be performed. | ||||
| 3. Email Identities | Mail Service Providers: | |||
| Operate email services, such as for end-users, or mailing lists. | ||||
| Operational pragmatics often dictate that providers be involved in | ||||
| detailed administration and enforcement issues, to help ensure the | ||||
| health of the overall Internet Mail Service. This can include | ||||
| operators of lower-level packet services. | ||||
| 3. Identities | ||||
| Internet mail uses three forms of identity. The most common is the | Internet mail uses three forms of identity. The most common is the | |||
| mailbox address <addr-spec> [RFC2822]. The other two forms are the | mailbox address <addr-spec> [RFC2822]. The other two are the domain | |||
| <domain name> [RFC1034] and message identifier [RFC2822]. | name <domain> [RFC1034] and message identifier <msg-id> [RFC2822]. | |||
| 3.1 Mailbox Addresses | 3.1 Mailbox Addresses | |||
| An addr-spec has two distinct parts, divided by an at-sign ("@"). | "A mailbox sends and receives mail. It is a conceptual entity | |||
| The right-hand side contains a globally interpreted name for an | which does not necessarily pertain to file storage." [RFC2822] | |||
| administrative domain. This domain name might refer to an entire | ||||
| organization, or to a collection of machines integrated into a | ||||
| homogeneous service, or to a single machine. Domain names are | ||||
| defined and operated through the DNS [RFC1034], [RFC1035]. | ||||
| The left-hand side of the at-sign contains a string that is globally | A mailbox is specified as an Internet mail address <addr-spec>. It | |||
| opaque and is called the <local-part>. It is to be interpreted only | has two distinct parts, divided by an at-sign ("@"). The right-hand | |||
| by the entity specified in the address's right-hand side. All other | side contains a globally interpreted name for an administrative | |||
| entities must treat the local-part as a uninterpreted, literal string | domain. This domain name might refer to an entire organization, or | |||
| and must preserve all of its original details. As such, its | to a collection of machines integrated into a homogeneous service, or | |||
| distribution is equivalent to sending a "cookie" that is only | to a single machine. Domain names are defined and operated through | |||
| interpreted upon being returned to its originator. | the Domain Name Service (DNS) [RFC1034], [RFC1035], [RFC2181]. | |||
| The portion to the left of the at-sign contains a string that is | ||||
| globally opaque and is called the <local-part>. It is to be | ||||
| interpreted only by the entity specified in the address's right-hand | ||||
| side. All other entities must treat the local-part as a | ||||
| uninterpreted, literal string and must preserve all of its original | ||||
| details. As such, its public distribution is equivalent to sending a | ||||
| "cookie" that is only interpreted upon being returned to its | ||||
| originator. | ||||
| 3.1.1 Global Standards for Local-Part | 3.1.1 Global Standards for Local-Part | |||
| It is common for sites to have local structuring conventions for the | It is common for sites to have local structuring conventions for the | |||
| left-hand side (local-part) of an addr-spec. This permits | left-hand side (local-part) of an addr-spec. This permits | |||
| sub-addressing, such as for distinguishing different discussion | sub-addressing, such as for distinguishing different discussion | |||
| groups by the same participant. However it must be stressed that | groups by the same participant. However it must be stressed that | |||
| these conventions are strictly private to the user's organization and | these conventions are strictly private to the user's organization and | |||
| must not be interpreted by any domain except the one listed in the | must not be interpreted by any domain except the one listed in the | |||
| right-hand side of the add-spec. | right-hand side of the addr-spec. | |||
| A small class of addresses have an elaboration on basic email | A small class of addresses has an elaboration on basic email | |||
| addressing, with a standardized, global schema for the local-part. | addressing, with a standardized, global schema for the local-part. | |||
| These are conventions between originating end-systems and recipient | These are conventions between originating end-systems and Recipient | |||
| gateways, and they are invisible to the public email transfer | Gateways, and they are invisible to the public email transfer | |||
| infrastructure. When an originator is explicitly sending via a | infrastructure. When an Originator is explicitly sending via a | |||
| gateway out of the Internet, there are coding conventions for the | Gateway out of the Internet, there are coding conventions for the | |||
| local-part, so that the originator can formulate instructions for the | local-part, so that the Originator can formulate instructions for the | |||
| gateway. Standardized examples of this are the telephone numbering | Gateway. Standardized examples of this are the telephone numbering | |||
| formats for VPIM [RFC2421], such as "+16137637582@vpim.example.com", | formats for VPIM [RFC2421], such as "+16137637582@vpim.example.com", | |||
| and iFax [RFC2304], such as "FAX=+12027653000/ | and iFax [RFC2304], such as "FAX=+12027653000/ | |||
| T33S=1387@ifax.example.com". | T33S=1387@ifax.example.com". | |||
| 3.1.2 Scope of Email Address Use | 3.1.2 Scope of Email Address Use | |||
| Email addresses are being used far beyond their original email | Email addresses are being used far beyond their original email | |||
| transfer and delivery role. In practical terms, email strings have | transfer and delivery role. In practical terms, email strings have | |||
| become a common form of user identity on the Internet. What is | become a common form of user identity on the Internet. What is | |||
| essential, then, is to be clear about the nature and role of an | essential, then, is to be clear about the nature and role of an | |||
| skipping to change at page 13, line 20 ¶ | skipping to change at page 14, line 50 ¶ | |||
| IP Addresses. A domain name can be administered to refer to | IP Addresses. A domain name can be administered to refer to | |||
| individual users, but this is not common practice. The name is | individual users, but this is not common practice. The name is | |||
| structure as a hierarchical sequence of sub-names, separated by dots | structure as a hierarchical sequence of sub-names, separated by dots | |||
| ("."). | ("."). | |||
| When not part of a mailbox address, a domain name is used in Internet | When not part of a mailbox address, a domain name is used in Internet | |||
| mail to refer to a node that took action upon the message, such as | mail to refer to a node that took action upon the message, such as | |||
| providing the administrative scope for a message identifier, or | providing the administrative scope for a message identifier, or | |||
| performing transfer processing. | performing transfer processing. | |||
| 3.3 Message Identifers | 3.3 Message Identifiers | |||
| Message identifiers have two distinct parts, divided by an at-sign | Like mailbox addresses, message identifiers have two distinct parts, | |||
| ("@"). The right-hand side contains a globally interpreted name for | divided by an at-sign ("@"). The right-hand side is globally | |||
| the administrative domain assigning the identifier. The left-hand | interpreted and specifies the administrative domain assigning the | |||
| side of the at-sign contains a string that is globally opaque and | identifier. The left-hand side of the at-sign contains a string that | |||
| serves to uniquely identify the message within the domain referenced | is globally opaque and serves to uniquely identify the message within | |||
| on the right-hand side. The duration of uniqueness for the message | the domain referenced on the right-hand side. The duration of | |||
| identifier is undefined. | uniqueness for the message identifier is undefined. | |||
| The identifier may be assigned by the user or by any component of the | The identifier may be assigned by the user or by any component of the | |||
| system along the path. Although Internet mail standards provide for | system along the path, within the AD responsible for the indicated | |||
| a single identifier, more than one is sometimes assigned. | domain. Although Internet mail standards provide for a single | |||
| identifier, more than one is sometimes assigned. | ||||
| 3.4 Identity Referencing Convention | 3.4 Identity Referencing Convention | |||
| In this document, fields references to identities are labeled in a | In this document, fields references to identities are labeled in a | |||
| two-part, dotted notation. The first part cites the document | two-part, dotted notation. The first part cites the document | |||
| defining the identity and the second defines the name of the | defining the identity and the second defines the name of the | |||
| identity. Hence, <RFC2822.From> is the From field in an email | identity. Hence, <RFC2822.From> is the From field in an email | |||
| content header, and <RFC2821.MailFrom> is the address in the SMTP | content header, and <RFC2821.MailFrom> is the address in the SMTP | |||
| "Mail From" command. | "Mail From" command. | |||
| 4. Protocols and Services | 4. Services | |||
| NOTE: A discussion about any interesting system architecture is | The Internet's MHS architecture distinguishes six types of functional | |||
| often complicated by confusion between architecture versus | components, arranged to support a store-and-forward service | |||
| architecture: | ||||
| o Message | ||||
| o Mail User Agent (MUA) | ||||
| o Message Submission Agent (MSA) | ||||
| o Message Transfer Agent (MTA) | ||||
| o Message Delivery Agent (MDA) | ||||
| o Message Store (MS) | ||||
| This section describes the specific functional components for | ||||
| Internet Mail, and the standard protocols associated with performing | ||||
| them. | ||||
| This figure shows function modules and the protocols used between | ||||
| them. | ||||
| +------+ | ||||
| ...............+ oMUA |<------------------------------+ | ||||
| . +--+---+ | | ||||
| . | {smtp, submission | | ||||
| . V | | ||||
| . +------+ | | ||||
| . | MSA |<--------------------+ | | ||||
| . +--+---+ | | | ||||
| . | {smtp | | | ||||
| . V | | | ||||
| . +------+ /+===+===+\ | | ||||
| . | MTA | || dsn || | | ||||
| /+==========+\ +--+---+ \+=======+/ | | ||||
| || MESSAGE || . {smtp ^ ^ | | ||||
| ||----------|| . | | | | ||||
| || Envelope || . | | | | ||||
| || SMTP || V | | | | ||||
| || RFC2822 || +------+ | | /+==+==+\ | ||||
| || Content || | MTA +-------------------+ | || mdn || | ||||
| || RFC2822 || +--+---+ | \+=====+/ | ||||
| || MIME || | {local, smtp, lmtp | | | ||||
| \+==========+/ V | | | ||||
| . +------+ | | | ||||
| . | +-----------------------+ | | ||||
| . | MDA | | | ||||
| . | |<--------------------+ | | ||||
| . +-+--+-+ | | | ||||
| . local} | | | | | ||||
| . V | | | | ||||
| . +------+ | /+===+===+\ | | ||||
| . | MS-1 | | || sieve || | | ||||
| . +-+--+-+ | \+=======+/ | | ||||
| . | | | {pop, imap ^ | | ||||
| . | V V | | | ||||
| . | +------+ | | | ||||
| . | | MS-2 | | | | ||||
| . | +--+---+ | | | ||||
| . | | {pop, imap, local | | | ||||
| . V V | | | ||||
| . +------+ | | | ||||
| ...........>| rMUA +------------------------+---------+ | ||||
| +------+ | ||||
| Figure 5: Protocols and Services | ||||
| Software implementations of these architectural components often | ||||
| compress them, such as having the same software do MSA, MTA and MDA | ||||
| functions. However the requirements for each of these components of | ||||
| the service are becoming more extensive. So, their separation is | ||||
| increasingly common. | ||||
| NOTE: | ||||
| A discussion about any interesting system architecture is often | ||||
| complicated by confusion between architecture versus | ||||
| implementation. An architecture defines the conceptual functions | implementation. An architecture defines the conceptual functions | |||
| of a service, divided into discrete conceptual modules. An | of a service, divided into discrete conceptual modules. An | |||
| implementation of that architecture may combine or separate | implementation of that architecture may combine or separate | |||
| architectural components, as needed for a particular operational | architectural components, as needed for a particular operational | |||
| environment. It is important not to confuse the engineering | environment. It is important not to confuse the engineering | |||
| decisions that are made to implement a product, with the | decisions that are made to implement a product, with the | |||
| architectural abstractions used to define conceptual functions. | architectural abstractions used to define conceptual functions. | |||
| Modern Internet email architecture distinguishes four types of | 4.1 Message | |||
| functional components, arranged to support a store-and-forward | ||||
| service architecture: | ||||
| +------+ | The purpose of the Mail Handling Service is to exchange a message | |||
| .............+ oMUA |<------------------------------+ | object among participants. Hence, all of the underlying mechanisms | |||
| . +--+---+ | | are merely in the service of getting that message from its Originator | |||
| . | { smtp,submission | | to its Recipients. A message may be explicitly labeled as to its | |||
| . V | | nature. [RFC3458] | |||
| . +------+ | | ||||
| . | MSA |<--------------------+ | | ||||
| . +--+---+ | | | ||||
| . | { smtp | | | ||||
| . V | | | ||||
| . +------+ +====+====+ | | ||||
| . | MTA | || dsn || | | ||||
| +============+ +--+---+ +=========+ | | ||||
| || MESSAGE || . { smtp ^ ^ | | ||||
| || || . | | | | ||||
| ||(envelope)|| . | | | | ||||
| || || V | | | | ||||
| || RFC2822 || +------+ | | +===+===+ | ||||
| || || | MTA +-------------------+ | || mdn || | ||||
| || MIME || +--+---+ | +=======+ | ||||
| +============+ | { local, smtp, lmtp | | | ||||
| . V | | | ||||
| . +------+ | | | ||||
| . | +-----------------------+ | | ||||
| . | MDA | | | ||||
| . | |<--------------------+ | | ||||
| . +-+--+-+ | | | ||||
| . local } | | | | | ||||
| . V | | | | ||||
| . +------+ | +====+====+ | | ||||
| . | MS-1 | | || sieve || | | ||||
| . +-+--+-+ | +=========+ | | ||||
| . | | | { pop, imap ^ | | ||||
| . | V V | | | ||||
| . | +------+ | | | ||||
| . | | MS-2 | | | | ||||
| . | +--+---+ | | | ||||
| . | | { pop, imap, local | | | ||||
| . V V | | | ||||
| . +------+ | | | ||||
| .........>| rMUA +------------------------+---------+ | ||||
| +------+ | ||||
| Software implementations of these architectural components often | A message comprises a transit handling envelope and the end-user | |||
| compress them, such as having the same software do MSA, MTA and MDA | message content. The envelope contains handling information used by | |||
| functions. However the requirements for each of these components of | the Message Handling Service, or generated by it. The content is | |||
| the service are becoming more extensive. So, their separation is | divided into a structured header and the body. The body may be | |||
| increasingly common. | unstructured, simple text, or it may be a tree of multi-media | |||
| subordinate objects. | ||||
| 4.1 Service Components | Internet mail has distinguished some special versions of messages, | |||
| for exchanging control information: | ||||
| 4.1.1 Mail User Agent (MUA) | Delivery Status Notification (DSN): | |||
| A Delivery Status Notification (DSN) may be generated by the Mail | ||||
| Handling Service (MSA, MTA or MDA) and sent to the | ||||
| RFC2821.MailFrom address. It provides information about message | ||||
| transit, such as transmission errors or successful delivery. | ||||
| [RFC3461] | ||||
| Message Disposition Notification (MDN): | ||||
| A Message Disposition Notification (MDN) may be generated by an | ||||
| rMUA and is sent to the Disposition-Notification-To address. It | ||||
| provides information about Recipient-side message processing, such | ||||
| as indicating that the message has been read [RFC2298] or the form | ||||
| of content that can be supported. [RFC3297] | ||||
| Message Filtering (SIEVE): | ||||
| SIEVE provides a means of specifying conditions for differential | ||||
| handling of mail, at the time of delivery. [RFC3028] | ||||
| 4.1.1 Envelope | ||||
| Information that is directly used by, or produced by, the email | ||||
| transfer service is called the "envelope". It controls and records | ||||
| handling activities by the transfer service. Internet mail has a | ||||
| fragmented framework for handling this "handling" information. The | ||||
| envelope exists partly in the transfer protocol SMTP [RFC2821] and | ||||
| partly in the message object [RFC2822]. The SMTP specification uses | ||||
| the term to refer only to the transfer-protocol information. | ||||
| NOTE: | ||||
| Due to the frequent use of the term "envelope" to refer only to | ||||
| SMTP constructs, there has been some call for using a different | ||||
| term, to label the larger set of information defined here. So | ||||
| far, no alternative term has developed any community support. | ||||
| Direct envelope addressing information, as well as optional transfer | ||||
| directives, are carried within the SMTP control channel. Other | ||||
| envelope information, such as trace records, is carried within the | ||||
| content header fields. Upon delivery, SMTP-level envelope | ||||
| information is typically encoded within additional content header | ||||
| fields, such as Return-Path. | ||||
| 4.1.2 Message Header Fields | ||||
| Header fields are attribute/value pairs covering an extensible range | ||||
| of email service, user content and user transaction meta-information. | ||||
| The core set of header fields is defined in [RFC2822], [RFC0822]. It | ||||
| is common to extend this set, for different applications. A complete | ||||
| set of registered header fields is being developed through | ||||
| [ID-hdr-reg]. | ||||
| One danger with placing additional information in header fields is | ||||
| that Gateways often alter or delete them. | ||||
| 4.1.3 Body | ||||
| The body of a message might simply be lines of ASCII text or it might | ||||
| be structured into a composition of multi-media, body-part | ||||
| attachments, using MIME [RFC2045], [RFC2046], [RFC2047], [RFC2048], | ||||
| and [RFC2049]. It should be noted that MIME structures each | ||||
| body-part into a recursive set of MIME header field meta-data and | ||||
| MIME Content sections. | ||||
| 4.1.4 Identity References in a Message | ||||
| For a message in transit, the core uses of identity references | ||||
| combine into: | ||||
| +-----------------------+-------------+---------------------+ | ||||
| | Layer | Field | Set By | | ||||
| +-----------------------+-------------+---------------------+ | ||||
| | Message Body | MIME Header | Originator | | ||||
| | Message header fields | From | Originator | | ||||
| | | Sender | Source | | ||||
| | | Reply-To | Originator | | ||||
| | | To, CC, BCC | Originator | | ||||
| | | Message-ID | Source | | ||||
| | | Received | Source, Relay, Dest | | ||||
| | | Return-Path | MDA, from MailFrom | | ||||
| | | Resent-* | Mediator | | ||||
| | SMTP | HELO | Latest Relay Client | | ||||
| | | MailFrom | Source | | ||||
| | | RcptTo | Originator | | ||||
| | IP | IP Address | Latest Relay Client | | ||||
| +-----------------------+-------------+---------------------+ | ||||
| 4.2 Mail User Agent (MUA) | ||||
| A Mail User Agent (MUA) works on behalf of end-users and end-user | A Mail User Agent (MUA) works on behalf of end-users and end-user | |||
| applications. It is their "representative" within the email service. | applications. It is their "representative" within the email service. | |||
| At the origination side of the service, the oMUA is used to create a | At the origination side of the service, the oMUA is used to create a | |||
| message and perform initial "submission" into the transfer | message and perform initial "submission" into the transfer | |||
| infrastructure, via a Mail Submission Agent (MSA). It may also | infrastructure, via a Mail Submission Agent (MSA). It may also | |||
| perform any creation- and posting-time archival. An MUA outbox is | perform any creation- and posting-time archival. An MUA outbox is | |||
| part of the origination-side MUA. | part of the origination-side MUA. | |||
| The recipient-side rMUA works on behalf of the end-user recipient to | The Recipient-side rMUA works on behalf of the end-user Recipient to | |||
| process received mail. This includes generating user-level return | process received mail. This includes generating user-level return | |||
| control messages, display and disposition of the received message, | control messages, display and disposition of the received message, | |||
| and closing or expanding the user communication loop, by initiating | and closing or expanding the user communication loop, by initiating | |||
| replies and forwarding new messages. | replies and forwarding new messages. | |||
| An MUA may, itself, have a distributed architecture, such as | An MUA may, itself, have a distributed architecture, such as | |||
| implementing a "thin" user interface module on a limited end-user | implementing a "thin" user interface module on a limited end-user | |||
| device, with the bulk of the MUA functionality operated remotely on a | device, with the bulk of the MUA functionality operated remotely on a | |||
| more capable server. An example of such an architecture might use | more capable server. An example of such an architecture might use | |||
| IMAP [RFC3501] for most of the interactions between an MUA client and | IMAP [RFC3501] for most of the interactions between an MUA client and | |||
| an MUA server. | an MUA server. | |||
| A special class of MUA performs message re-posting, as discussed in | A Mediator is special class of MUA performs message re-posting, as | |||
| the <Mediator> section. | discussed in Section 2.1. | |||
| Identity fields set by the MUA include: | Identity fields relevant to the MUA include: | |||
| RFC2822.From | RFC2822.From | |||
| Actor: Originator | Set by: Originator | |||
| Names and addresses for author(s) of the message content are | Names and addresses for author(s) of the message content are | |||
| listed in the From header field | listed in the From field | |||
| RFC2822.Reply-To | RFC2822.Reply-To | |||
| Actor: Originator | Set by: Originator | |||
| If a message recipient sends a reply message that would otherwise | If a message Recipient sends a reply message that would otherwise | |||
| use RFC2822.From field address(es) contained in the original | use the RFC2822.From field address(es) contained in the original | |||
| message, then they are instead to use the address(es) in the | message, then they are instead to use the address(es) in the | |||
| RFC2822.Reply-To field. In other words, this field is a direct | RFC2822.Reply-To field. In other words, this field is a direct | |||
| override of the From field, for responses from recipients. | override of the From field, for responses from Recipients. | |||
| RFC2822.Sender | RFC2822.Sender | |||
| Actor: Source | Set by: Source | |||
| This specifies the address responsible for submission into the | This specifies the address responsible for submitting the message | |||
| transfer service. For efficiency, this field should be omitted if | into the transfer service. For efficiency, this field should be | |||
| it contains the same address as RFC2822.From. However this does | omitted if it contains the same address as RFC2822.From. However | |||
| not mean there is no Sender specified. Rather, it means that that | this does not mean there is no Sender specified. Rather, it means | |||
| header field is virtual and that the address in the From field | that that header field is virtual and that the address in the From | |||
| must be used. Specification of the error return addresses -- the | field must be used. Specification of the error return addresses | |||
| "notifications" (or "bounces") address, contained in | -- the "Notifications" (or "bounces") address, contained in | |||
| RFC2821.MailFrom -- is made by the RFC2822.Sender. Typically the | RFC2821.MailFrom -- is made by the RFC2822.Sender. Typically the | |||
| notifications address is the same as the Sender address. However | Notifications address is the same as the Sender address. However | |||
| some usage scenarios require it to be different. | some usage scenarios require it to be different. | |||
| RFC2822.To, RFC2822.CC | RFC2822.To, RFC2822.CC | |||
| Actor: Recipient | Set by: Originator | |||
| These specify MUA recipient addresses. The distinction between To | These specify MUA Recipient addresses. The addresses in the | |||
| and CC is subjective. Generally, a To addressee is considered | fields might not be present in the RFC2821.RcptTo command. The | |||
| primary and is expected to take action on the message. A CC | distinction between To and CC is subjective. Generally, a To | |||
| addressee typically receives a copy only for their information. | addressee is considered primary and is expected to take action on | |||
| the message. A CC addressee typically receives a copy only for | ||||
| their information. | ||||
| RFC2822.BCC | RFC2822.BCC | |||
| Actor: Recipient | Set by: Originator | |||
| A message might be copied to an addressee whose participation is | A message might be copied to an addressee whose participation is | |||
| not to be disclosed to the RFC2822.To or RFC2822.CC recipients. | not to be disclosed to the RFC2822.To or RFC2822.CC Recipients | |||
| The BCC header field indicates a message copy to such a recipient. | and, usually, not to the other BCC Recipients. The BCC header | |||
| Typically, the field lists no addresses or only lists the address | field indicates a message copy to such a Recipient. Typically, | |||
| of the single recipient receiving the copy. This usually ensures | the field lists no addresses or only lists the address of the | |||
| that even other BCC recipients do not know of each other. An MUA | Recipient receiving this copy. An MUA will typically make | |||
| will typically make separate postings for TO and CC recipients, | separate postings for TO and CC Recipients, versus BCC Recipients. | |||
| versus BCC recipients. The former will see no indication that any | The former will see no indication that any BCCs were sent, whereas | |||
| BCCs were sent, whereas the latter have a BCC field present. It | the latter have a BCC field present. It might be empty, contain a | |||
| might be empty, contain a comment, or contain one or more BCC | comment, or contain one or more BCC addresses, depending upon the | |||
| addresses, depending upon the preferences or the Originator. | preferences or the Originator. | |||
| 4.1.2 Mail Submission Agent (MSA) | 4.3 Mail Submission Agent (MSA) | |||
| A Mail Submission Agent (MSA) accepts the message submission from the | A Mail Submission Agent (MSA) accepts the message submission from the | |||
| oMUA and enforces the policies of the hosting network and the | oMUA and enforces the policies of the hosting AD and the requirements | |||
| requirements of Internet standards. Enforcement might be passive, | of Internet standards. Enforcement might be passive, involving | |||
| involving review and approval or rejection, or it might be active, | review and approval or rejection, or it might be active, involving | |||
| involving direct modification of the message. An MSA implements a | direct modification of the message. An MSA implements a server | |||
| server function to MUAs and a client function to MTAs (or MDAs). | function to MUAs and a client function to MTAs (or MDAs). | |||
| Examples of MSA-styled functions, in the world of paper mail, might | Examples of MSA-styled functions, in the world of paper mail, might | |||
| range across the very different capabilities of administrative | range across the very different capabilities of administrative | |||
| assistants, postal drop boxes, and post office front-counter | assistants, postal drop boxes, and post office front-counter | |||
| employees. | employees. | |||
| The MUA/MSA interface can be implemented within single host and use | The MUA/MSA interface can be implemented within a single host and use | |||
| private conventions for their interactions. Historically, | private conventions for its interactions. Historically, | |||
| standards-based MUA/MSA interactions have used SMTP [RFC2821]. | standards-based MUA/MSA interactions have used SMTP [RFC2821]. | |||
| However a recent alternative is SUBMISSION [RFC2476]. Although | However a recent alternative is SUBMISSION [RFC2476]. Although | |||
| SUBMISSION derives from SMTP, it operates on a separate TCP port, and | SUBMISSION derives from SMTP, it operates on a separate TCP port, and | |||
| will typically impose distinct requirements, such as access | will typically impose distinct requirements, such as access | |||
| authorization. | authorization. | |||
| Identities set by the MSA include: | Identities relevant to the MSA include: | |||
| RFC2821.HELO or RFC2821.EHLO | RFC2821.HELO or RFC2821.EHLO | |||
| Set by: Source | ||||
| Actor: Source | ||||
| The MSA may specify its hosting domain identity for the SMTP HELO | The MSA may specify its hosting domain identity for the SMTP HELO | |||
| or EHLO command operation. | or EHLO command operation. | |||
| RFC2821.MailFrom | RFC2821.MailFrom | |||
| Actor: Source | Set by: Source | |||
| This is an end-to-end string that specifies an email address for | This is an end-to-end string that specifies an email address for | |||
| receiving return control information, such as "bounces". The name | receiving return control information, such as "bounces". The name | |||
| of this field is misleading, because it is not required to specify | of this field is misleading, because it is not required to specify | |||
| either the author or the agent responsible for submitting the | either the author or the agent responsible for submitting the | |||
| message. Rather, the agent responsible for submission specifies | message. Rather, the agent responsible for submission specifies | |||
| the RFC2821.MailFrom address. Ultimately the simple basis for | the RFC2821.MailFrom address. Ultimately the simple basis for | |||
| deciding what address needs to be in the RFC2821.MailFrom is to | deciding what address needs to be in the RFC2821.MailFrom is to | |||
| determine what address needs to be informed about | determine what address needs to be informed about | |||
| transmission-level problems (and, possibly, successes. | transmission-level problems (and, possibly, successes.) | |||
| RFC2821.Rcpt-To | RFC2821.RcptTo | |||
| Actor: Recipient | Set by: Originator | |||
| This specifies the MUA inbox address of a recipient. The string | This specifies the MUA mailbox address of a recipient. The string | |||
| might not be visible in the message content header. For example, | might not be visible in the message content header. For example, | |||
| the message destination address header fields, such as RFC2822.To, | the message destination address header fields, such as RFC2822.To, | |||
| might specify a mailing list address, while the RFC2821.Rcpt-To | might specify a mailing list address, while the RFC2821.RcptTo | |||
| address specifies a member of that list. | address specifies a member of that list. | |||
| RFC2821.Received | RFC2821.Received | |||
| Actor: Source | Set by: Source | |||
| An MSA may record a Received header field, to indicate initial | An MSA may record a Received header field, to indicate initial | |||
| submission trace information, including originating host and MSA | submission trace information, including originating host and MSA | |||
| host domain names and/or IP Addresses. | host domain names and/or IP Addresses. | |||
| 4.1.3 Mail Transfer Agent (MTA) | 4.4 Mail Transfer Agent (MTA) | |||
| An <MTA> relays a message to another other MTA or to an <MDA>, in a | A Mail Transfer Agent (MTA) relays mail. It is like a packet-switch | |||
| point-to-point exchange. Relaying is performed by a sequence of | or IP router in that its job is to make routing assessments and to | |||
| MTAs, until the message reaches its destination MDA. Hence an MTA | move the message closer to the Recipient(s). Relaying is performed | |||
| implements both client and server MTA functionality. | by a sequence of MTAs, until the message reaches its destination MDA. | |||
| Hence an MTA implements both client and server MTA functionality. It | ||||
| does not make changes to addresses in the envelope or reformulate the | ||||
| content, except as transfer-encoding requirements dictate. Also it | ||||
| may add trace information. | ||||
| The basic functionality of an MTA is similar to that of a packet | The primary "routing" mechanism for Internet mail is the DNS MX | |||
| switch or IP router. That is, it does email store-and-forward email, | record [RFC1035]. As with most network layer mechanisms Internet | |||
| with a routing decision determining where the next-hop destination | mail's SMTP supports a basic level of reliability, by virtue of | |||
| shall be. The primary "routing" mechanism for Internet mail is the | providing for retransmission after a temporary transfer failure. | |||
| DNS MX record [RFC1035]. As with most "link layer" mechanisms | However the degree of persistence by an MTA can be highly variable. | |||
| Internet mail's SMTP supports a basic level of reliability, by virtue | ||||
| of providing for retransmission after al transfer failure. However | ||||
| the degree of persistence by an MTA can be highly variable. | ||||
| However email objects are typically much larger than the payload of a | Of course email objects are typically much larger than the payload of | |||
| packet or datagram, and the end-to-end latencies are typically much | a packet or datagram, and the end-to-end latencies are typically much | |||
| higher. Contrary to typical packet switches (and Instant Messaging | higher. Contrary to typical packet switches (and Instant Messaging | |||
| services) Internet mail MTAs typically store messages in a manner | services) Internet mail MTAs typically store messages in a manner | |||
| that allows recovery across services interruptions, such as host | that allows recovery across service interruptions, such as host | |||
| system shutdown. | system shutdown. | |||
| Internet mail primarily uses SMTP [RFC2821], [RFC0821] to effect | Internet mail primarily uses SMTP [RFC2821], [RFC0821] to effect | |||
| point-to-point transfers between peer MTAs. Other transfer | point-to-point transfers between peer MTAs. Other transfer | |||
| mechanisms include Batch SMTP [RFC2442] and ODMR [RFC2645] | mechanisms include Batch SMTP [RFC2442] and ODMR [RFC2645]. | |||
| An important characteristic of MTA-MTA communications, over the open | An important characteristic of MTA-MTA communications, over the open | |||
| Internet, is that they do not require prior arrangement between the | Internet, is that they do not require prior arrangement between the | |||
| independent administrations operating the different MTAs. Given the | independent administrations operating the different MTAs. Given the | |||
| importance of spontaneity and serendipity in the world of human | importance of spontaneity and serendipity in the world of human | |||
| communications, this lack of prearrangement, between the | communications, this lack of prearrangement, between the | |||
| participants, is a core benefit of Internet mail and remains a core | participants, is a core benefit of Internet mail and remains a core | |||
| requirement for it. | requirement for it. | |||
| Identities set by the MTA include: | Identities relevant to the MTA include: | |||
| RFC2821.HELO | RFC2821.HELO | |||
| Actor: Relay | Set by: Relay | |||
| The MTA may specify its hosting domain identity for the SMTP HELO | The MTA may specify its hosting domain identity for the SMTP HELO | |||
| or EHLO command operation. | or EHLO command. This is the only standardized way of identifying | |||
| the agent responsible for operation of the Relay, during the | ||||
| transfer operation. | ||||
| RFC2821.Return-Path | RFC2821.MailFrom | |||
| Actor: Source | Set by: Source | |||
| The MDA records the RFC2821.MailFrom address into an RFC2822 | This is an end-to-end string that specifies an email address for | |||
| header field named Return-Path. | receiving return control Notifications, such as "bounces". The | |||
| name of this field is misleading, because it is not required to | ||||
| specify either the author or the agent responsible for submitting | ||||
| the message. Rather, the agent responsible for submission | ||||
| specifies the MailFrom address. Ultimately the simple basis for | ||||
| deciding what address needs to be in the RFC2821.MailFrom is to | ||||
| determine what address needs to be informed about | ||||
| transmission-level problems (and, possibly, successes.) | ||||
| RFC2821.RcptTo | ||||
| Set by: Originator | ||||
| This specifies the MUA mailbox address of a Recipient. The string | ||||
| might not be visible in the message content header. For example, | ||||
| the message destination address header fields, such as RFC2822.To, | ||||
| might specify a mailing list address, while the RFC2821.RcptTo | ||||
| address specifies a member of that list. | ||||
| RFC2822.Received | RFC2822.Received | |||
| Actor: Relay | Set by: Relay | |||
| An MTA must record a Received header field, to indicate trace | An MTA must record a Received header field, to indicate trace | |||
| information, including source host and receiving host domain names | information, including source host and receiving host domain names | |||
| and/or IP Addresses. | and/or IP Addresses. | |||
| 4.1.4 Mail Delivery Agent (MDA) | 4.5 Mail Delivery Agent (MDA) | |||
| The <MDA> delivers email to the recipient's inbox. | ||||
| A Mail Delivery Agent (MDA) can provide distinctive, address-based | A Mail Delivery Agent (MDA) delivers email to the Recipient's | |||
| functionality, made possible by its detailed knowledge of the | mailbox. It can provide distinctive, address-based functionality, | |||
| properties of the destination address. This knowledge might also be | made possible by its detailed knowledge of the properties of the | |||
| present elsewhere in the recipient's Administrative Domain, such as | destination address. This knowledge might also be present elsewhere | |||
| at an organizational border gateway. However it is required for the | in the Recipient's Administrative Domain, such as at an | |||
| MDA, if only because the MDA must know where to store the message. | organizational border Relay. However it is required for the MDA, if | |||
| This knowledge is used to achieve differential handling of messages. | only because the MDA must know where to deliver the message. | |||
| Using Internet protocols, delivery is effected with POP [RFC1939] or | Using Internet protocols, delivery can be effected by a variety of | |||
| IMAP [RFC3501]. When coupled with an internal, local mechanism, SMTP | standard protocols. When coupled with an internal, local mechanism, | |||
| permits "push" delivery to the recipient system, at the initative of | SMTP [RFC2821] and LMTP [RFC2033] permit "push" delivery to the | |||
| the upstream email service. POP is used for "pull" delivery at the | Recipient system, at the initiative of the upstream email service. | |||
| initiative of the recipient system. Notably, SMTP and POP effect a | POP [RFC1939] and IMAP [RFC3501] are used for "pull" delivery at the | |||
| transfer of message control from the email service to the recipient | initiative of the Recipient system. POP and IMAP can also be used | |||
| host. In contrast, IMAP provides on-going, interactive access to a | for repeated access to messages on a remote MS. | |||
| message store, and does not effect a transfer of message control to | ||||
| the end-user host. Instead, control stays with the message store | ||||
| host that is being access by the user. | ||||
| Identities set by the MDA include: | Identities relevant to the MDA include: | |||
| RFC2821.HELO or RFC2821.EHLO | RFC2821.Return-Path | |||
| Actor: Relay | Set by: Source | |||
| The MDA may specify its hosting domain identity for the SMTP HELO | The MDA records the RFC2821.MailFrom address into the | |||
| or EHLO command operation. | RFC2822.Return-Path field. | |||
| RFC2822.Received | RFC2822.Received | |||
| Actors: Source, Relay, Dest | Set by: Destination | |||
| An MTA must record a Received header field, to indicate trace | An MDA must record a Received header field, to indicate trace | |||
| information, including source host and receiving host domain names | information, including source host and receiving host domain names | |||
| and/or IP Addresses. | and/or IP Addresses. | |||
| 4.1.5 Message Store | 4.6 Message Store (MS) | |||
| An MUA's uses a long-term Message Store (MS). A rich set of choices | An MUA can use a long-term Message Store (MS). A rich set of choices | |||
| for the use of that store derives from permitting more than one to be | for the use of that store derives from permitting more than one to be | |||
| associated with a single user, demonstrated as MS-1 and MS-2 in the | associated with a single user, demonstrated as MS-1 and MS-2 in | |||
| Figure. MS-1 is shown as being remote from the MUA and MS-2 as being | Figure 5. MS-1 is shown as being remote from the MUA and MS-2 as | |||
| local. Further the relationship between two message store may vary. | being local. Further the relationship between two message store may | |||
| Between the MDA and the MUA, these choices are supported by a wide | vary. Between the MDA and the MUA, these choices are supported by a | |||
| variety of protocol options. | wide variety of protocol options. | |||
| The operational relationship among two MSs can be: | The operational relationship among two MSs can be: | |||
| Online: Only a remote MS is used, with messages being accessible | Online: | |||
| only when the MUA is attached to the MS, and the MUA repeatedly | ||||
| fetches all or part of a message, from one session to the next. | ||||
| Offline: The MS is local to the user, and messages are moved from | Only a remote MS is used, with messages being accessible only when | |||
| any remote store, rather than (also) being retained there. | the MUA is attached to the MS, and the MUA repeatedly fetches all | |||
| or part of a message, from one session to the next. | ||||
| Disconnected: A remote MS and a local MS synchronize all or parts of | Offline: | |||
| their contents, while connected. The user may make changes while | ||||
| The MS is local to the user, and messages are moved from any | ||||
| remote store, rather than (also) being retained there. | ||||
| Disconnected: | ||||
| A remote MS and a local MS synchronize all or parts of their | ||||
| contents, while connected. The user may make changes while | ||||
| disconnected, and the two stores are re-synchronized upon | disconnected, and the two stores are re-synchronized upon | |||
| reconnection. | reconnection. | |||
| 4.2 Operational Configuration | 5. Mediators | |||
| Mail service components can be arranged into numerous organizational | Basic email transfer is accomplished with an asynchronous | |||
| structures, each with independent software and administration. One | store-and-forward communication infrastructure, in a sequence of | |||
| common arrangement is to distinguish: | independent transmissions through some number of MTAs. A very | |||
| different task is a User-level sequence of postings and deliveries, | ||||
| through Mediators. For such re-postings, a Mediator does share some | ||||
| functionality with basic MTA relaying, but it enjoys a degree of | ||||
| freedom with both addressing and content that is not available to | ||||
| MTAs. | ||||
| 1. an open, core, global email transfer infrastructure | RFC2821.HELO or RFC2821.EHLO | |||
| 2. independent transfer services in networks at the edge of the core | Set by: Source or Relay | |||
| 3. end-user services | The MSA may specify its hosting domain identity for the SMTP HELO | |||
| or EHLO command operation. | ||||
| Edge networks may use proprietary email standards. However the | RFC2821.MailFrom | |||
| distinction between "public" network and edge network transfer | ||||
| services is primarily significant because it highlights the need for | ||||
| concern over interaction and protection between independent | ||||
| administrations. In particular, this distinctions calls for | ||||
| additional care in assessing transitions of responsibility, as well | ||||
| as the accountability and authorization relationships among | ||||
| participants in email transfer. | ||||
| On the other hand, real-world operations of Internet mail | Set by: Source | |||
| environments do impose boundaries such as access control at | ||||
| organizational firewalls to the Internet. It should be noted that | ||||
| the current Internet Mail architecture offers no special constructs | ||||
| for these configuration choices. The current design of Internet mail | ||||
| is for a seamless, end-to-end store-and-forward sequence. It is | ||||
| possible that the architectural enhancement will not require new | ||||
| protocols, but rather will require clarification of best practises, | ||||
| as exemplified by a recent effort [ID-spamops] | ||||
| 4.3 Layers of Identity References | This is an end-to-end string that specifies an email address for | |||
| receiving return control Notifications, such as "bounces". The | ||||
| name of this field is misleading, because it is not required to | ||||
| specify either the author or the agent responsible for submitting | ||||
| the message. Rather, the agent responsible for submission | ||||
| specifies the RFC2821.MailFrom address. Ultimately the simple | ||||
| basis for deciding what address needs to be in the | ||||
| RFC2821.MailFrom is to determine what address needs to be informed | ||||
| about transmission-level problems (and, possibly, successes.) | ||||
| For a message in transit, the core identity fields combine into: | RFC2821.RcptTo | |||
| +-----------------------+-------------+---------------------+ | Set by: Mediator | |||
| | Layer | Field | Set By | | ||||
| +-----------------------+-------------+---------------------+ | ||||
| | Message Content | MIME Header | Originator | | ||||
| | Message header fields | From | Originator | | ||||
| | | Sender | Source | | ||||
| | | Reply-To | Originator | | ||||
| | | To, CC, BCC | Originator | | ||||
| | | Received | Source, Relay, Dest | | ||||
| | | Return-Path | MDA, from MailFrom | | ||||
| | SMTP | HELO | Latest Relay Client | | ||||
| | | MailFrom | Source | | ||||
| | | RCPT-TO | Originator | | ||||
| | IP | IP Address | Latest Relay Client | | ||||
| +-----------------------+-------------+---------------------+ | ||||
| 5. Message Data | This specifies the MUA mailbox address of a Recipient. The string | |||
| might not be visible in the message content header. For example, | ||||
| the message destination address header fields, such as RFC2822.To, | ||||
| might specify a mailing list address, while the RFC2821.RcptTo | ||||
| address specifies a member of that list. | ||||
| 5.1 Envelope | RFC2821.Received | |||
| Information that is directly used or produced by the email transfer | Set by: Mediator | |||
| service is called the "envelope". It controls and records handling | ||||
| activities by the transfer service. Internet mail has a fragmented | ||||
| framework for handling this "handling" information. The envelope | ||||
| exists partly in the transfer protocol SMTP [RFC2821] and partly in | ||||
| the message object [RFC2822]. | ||||
| Direct envelope addressing information, as well as optional transfer | An MSA may record a Received header field, to indicate initial | |||
| directives, are carried in-band by MTAs. All other envelope | submission trace information, including originating host and MSA | |||
| information, such as trace records, is carried within the content | host domain names and/or IP Addresses. | |||
| header fields. Upon delivery, SMTP-level envelope information is | ||||
| typically encoded within additional content header fields, such as | ||||
| Return-Path and Received (From and For). | ||||
| 5.2 Message Header Fields | The salient aspect of a Mediator, that distinguishes it from any | |||
| other MUA creating an entirely new message, is that a Mediator | ||||
| preserves the integrity and tone of the original message, including | ||||
| the essential aspects of the original origination information. The | ||||
| Mediator might also add commentary. | ||||
| Header fields are attribute/value pairs covering an extensible range | Examples of MUA message creation that are not performed by Mediators | |||
| of email service, user content and user transaction meta-information. | include: | |||
| The core set of header fields is defined in [RFC2822], [RFC0822]. It | ||||
| is common to extend this set, for different applications. A complete | ||||
| set of registered header fields is being developed through | ||||
| [ID-hdr-reg]. | ||||
| One danger with placing additional information in header fields is | New Message Forwarding Existing Message: | |||
| that gateways often alter or delete them. | ||||
| 5.3 Body | Curiously, this action provides a basic template for a class of | |||
| Mediators. However by itself, it's typical occurrence is not, in | ||||
| fact, an example of a Mediator. The new message is viewed as | ||||
| being from the Agent doing the forwarding, rather than being from | ||||
| the original Originator. | ||||
| The body of a message might simply be lines of ASCII text or it might | A new message encapsulates the original message and is seen as | |||
| be structured into a composition of multi-media, body-part | strictly "from" the Mediator. The Mediator might add commentary | |||
| attachments, using MIME [RFC2045], [RFC2046], [RFC2047], [RFC2048], | and certainly has the opportunity to modify the original message | |||
| and [RFC2049]. It should be noted that MIME structures each | content. The forwarded message is therefore independent of the | |||
| body-part into a recursive set of MIME header field meta-data and | original message exchange and creates a new message dialogue. | |||
| MIME Content sections. | However the final Recipient sees the contained message as from the | |||
| original Originator. | ||||
| 6. Two Levels of Store-And-Forward | Reply: | |||
| Basic email transfer is accomplished with an asynchronous | When a Recipient formulates a response to a message, the new | |||
| store-and-forward communication infrastructure. This means that | message is not typically viewed as being a "forwarding" of the | |||
| moving a message from an originator to a recipient involves a | original. It's focus is the new content; any inclusion of | |||
| sequence of independent transmissions through some number of | material from the original message is contextual and secondary. | |||
| intermediaries, called MTAs. A very different task is the user-level | ||||
| process of re-posting a message through a new submission process, | ||||
| after final delivery for an earlier transfer sequence. Such | ||||
| MUA-based re-posting shares some functionality with basic MTA | ||||
| relaying, but it enjoys a degree of freedom with both addressing and | ||||
| content that is not available to MTAs. | ||||
| The primary "routing" mechanism for Internet mail is the DNS MX | Annotator: | |||
| record [RFC1035]. It is an advertisement, by a recipient domain, of | ||||
| hosts that are able to relay mail to it, within the portion of the | ||||
| Internet served by this instance of the DNS. | ||||
| 6.1 MTA Relaying | The integrity of the original message is usually preserved, but | |||
| one or more comments about the message are added in a manner that | ||||
| distinguishes commentary from original text. The tone of the new | ||||
| message is that it is primarily commentary from a new Originator, | ||||
| similar to a Reply. | ||||
| MTAs relay mail. They are like packet-switches and IP routers. | The remainder of this section describes common examples of Mediators. | |||
| Their job is to make routing assessments and to move the message | ||||
| payload data closer to the recipient. It is not their job to | ||||
| reformulate the payload or to change addresses in the envelope or the | ||||
| content. | ||||
| 6.2 MUA Forwarding | 5.1 Aliasing | |||
| As discussed in <Mediator> section, forwarding is performed by MUAs | A simple re-addressing facility that is available in most MDA | |||
| that take a received message and submit it back to the transfer | implementations is called Aliasing. It is performed just before | |||
| service, for delivery to one or more different addresses. A | delivering a message to the specified Recipient's mailbox. Instead, | |||
| forwarded message may appear identical to a relayed message, such as | the message is submitted back to the transfer service, for delivery | |||
| for Alias forwarders, or it may have minimal similarity, as with a | to one or more alternate addresses. Although implemented as part of | |||
| Reply. | the message delivery service, this facility is strictly a Recipient | |||
| user function. It resubmits the message, replacing the envelope | ||||
| address, on behalf of the mailbox address that was listed in the | ||||
| envelope. | ||||
| 6.2.1 MUA Basic Forwarding | What is most distinctive about this forwarding mechanism is how | |||
| closely it compares to normal MTA store-and-forward Relaying. In | ||||
| reality its only interesting difference is that it changes the | ||||
| RFC2821.RcptTo value. | ||||
| The simplest type of forwarding involves creating an entirely new | An MDA that is re-posting a message to an alias typically changes | |||
| message, with new content, that includes the original message between | only envelope information: | |||
| Originator-1 and Recipient-1. However this forwarded communication | ||||
| is between Recipient-1 (who could also be called Originator-2) and a | ||||
| new recipient, Recipient-2. The forwarded message is therefore | ||||
| independent of the original message exchange and creates a new | ||||
| message dialogue. | ||||
| 6.2.2 MUA Re-Sending | RFC2822.TO, RFC2822.CC, RFC2822.BCC | |||
| A recipient may wish to declare that an alternate addressee should | Set by: Originator | |||
| take on responsibility for a message, or otherwise become involved in | ||||
| the original communication. They do this through a user-level | These retain their original addresses. | |||
| forwarding function, called re-sending. The act of re-sending, or | ||||
| re-directing, splices a communication between Originator-1 and | RFC2821.RcptTo | |||
| Recipient-1, to become a communication between Originator-1 and new | ||||
| Recipient-2. In this case, the content of the new message is the old | Set by: Mediator | |||
| message, including preservation of the essential aspects of the | ||||
| original message's origination information. | This field contains an alias address. | |||
| RFC2821.MailFrom | ||||
| Set by: Mediator or original Source | ||||
| The agent responsible for submission to an alias address will | ||||
| often retain the original address to receive handling | ||||
| Notifications. The benefit of retaining the original MailFrom | ||||
| value is to ensure that the origination-side agent knows that | ||||
| there has been a delivery problem. On the other hand, the | ||||
| responsibility for the problem usually lies with the Recipient, | ||||
| since the Alias mechanism is strictly under the Recipient's | ||||
| control. | ||||
| RFC2821.Received | ||||
| Set by: Mediator | ||||
| The agent should record Received information, to indicate the | ||||
| delivery to the original address and submission to the alias | ||||
| address. The trace of Received header fields should therefore | ||||
| include everything from original posting through final delivery to | ||||
| the alias. | ||||
| 5.2 ReSending | ||||
| Also called ReDirecting, ReSending differs from Forwarding by virtue | ||||
| of having the Mediator "splice" a message's addressing information, | ||||
| to connect the Originator of the original message and the Recipient | ||||
| of the new message. This permits them to have direct exchange, using | ||||
| their normal MUA Reply functions. Hence the new Recipient sees the | ||||
| message as being From the original Originator, even if the Mediator | ||||
| adds commentary. | ||||
| Identities specified in a resent message include | Identities specified in a resent message include | |||
| RFC2822.From | RFC2822.From | |||
| Actor: Originator | Set by: original Originator | |||
| Names and email addresses for the original author(s) of the | Names and email addresses for the original author(s) of the | |||
| message content are retained. The free-form (display-name) | message content are retained. The free-form (display-name) | |||
| portion of the address might be modified to provide informal | portion of the address might be modified to provide informal | |||
| reference to the agent responsible for the redirection. | reference to the agent responsible for the redirection. | |||
| RFC2822.Reply-To | RFC2822.Reply-To | |||
| Actor: Originator | Set by: original Originator | |||
| If this field is present in the original message, it should be | If this field is present in the original message, it is retained | |||
| retained in the Re-sent message. | in the Resent message. | |||
| RFC2822.Sender | RFC2822.Sender | |||
| Actor: Source | Set by: original Source | |||
| This field is expected to contain the original Sender value. | This field is expected to contain the original Sender value. | |||
| RFC2822.TO, RFC2822.CC, RFC2822.BCC | RFC2822.TO, RFC2822.CC, RFC2822.BCC | |||
| Actor: Recipient | Set by: original Originator | |||
| These specify the original message recipients. | ||||
| These specify the original message Recipients. | ||||
| RFC2822.Resent-From | RFC2822.Resent-From | |||
| Actor: Mediating Originator | Set by: Mediator | |||
| The address of the original recipient who is redirecting the | The address of the original Recipient who is redirecting the | |||
| message. Otherwise, the same rules apply for the Resent-From | message. Otherwise, the same rules apply for the Resent-From | |||
| field as for an original RFC2822.From field | field as for an original RFC2822.From field | |||
| RFC2822.Resent-Sender | RFC2822.Resent-Sender | |||
| Set by: Mediator | ||||
| Actor: Mediating Source | ||||
| The address of the agent responsible for re-submitting the | The address of the agent responsible for re-submitting the | |||
| message. For efficiency, this field should be omitted if it | message. For efficiency this field is often omitted if it | |||
| contains the same address as RFC2822.Resent-From. However this | contains the same address as RFC2822.Resent-From. However this | |||
| does not mean there is no Resend-Sender specified. Rather, it | does not mean there is no Resend-Sender specified. Rather, it | |||
| means that that header field is virtual and that the address in | means that that header field is virtual and that the address in | |||
| the Resent-From field must be used. Specification of the error | the Resent-From field must be used. Specification of the error | |||
| return addresses (the "bounces" address, contained in | return addresses (the Notification address, contained in | |||
| RFC2821.MailFrom) is made by the Resent-Sender. Typically the | RFC2821.MailFrom) is made by the Resent-Sender. Typically the | |||
| bounce address is the same as the Resent-Sender address. However | Notifications address is the same as the Resent-Sender address. | |||
| some usage scenarios require it to be different. | However some usage scenarios require it to be different. | |||
| RFC2822.Resent-To, RFC2822.Resent-cc, RFC2822.Resent-bcc: Actor: | RFC2822.Resent-To, RFC2822.Resent-cc, RFC2822.Resent-bcc: | |||
| Recipient | ||||
| The addresses of the new recipients who will now be able to reply | Set by: Mediator | |||
| The addresses of the new Recipients who will now be able to reply | ||||
| to the original author. | to the original author. | |||
| RFC2821.MailFrom | RFC2821.MailFrom | |||
| Actor: Mediating Source | Set by: Mediator | |||
| The agent responsible for re-submission (RFC2822.Resent-Sender) is | The agent responsible for re-submission (RFC2822.Resent-Sender) is | |||
| also responsible for specifying the new RFC2821.MailFrom address. | also responsible for specifying the new MailFrom address. | |||
| RFC2821.Rcpt-to | RFC2821.RcptTo | |||
| Actor: Recipient | Set by: Mediator | |||
| This will contain the address of a new recipient | This will contain the address of a new Recipient | |||
| RFC2822.Received | RFC2822.Received | |||
| Actor: Mediating Source | ||||
| When re-sending a message, the submission agent may record a | Set by: Mediator | |||
| When resending a message, the submission agent may record a | ||||
| Received header field, to indicate the transition from original | Received header field, to indicate the transition from original | |||
| posting to resubmission. | posting to resubmission. | |||
| 6.2.3 MUA Reply | 5.3 Mailing Lists | |||
| When a recipient formulates a response to a message, the new message | ||||
| is not typically viewed as being a "forwarding" of the original. | ||||
| 6.2.4 MUA Gateways | ||||
| Gateways perform the basic routing and transfer work of message | ||||
| relaying, but they also make any message or address modifications | ||||
| that are needed to send the message into the next messaging | ||||
| environment. When a gateway connects two differing messaging | ||||
| services, its role is easy to identify and understand. When it | ||||
| connects environments that have technical similarity, but may have | ||||
| significant administrative differences, it is easy to think that a | ||||
| gateway is merely an MTA. The critical distinguish between an MTA | ||||
| and a gateway is that the latter modifies addresses and/or message | ||||
| content. | ||||
| A gateway may set any identity field available to a regular MUA. | ||||
| Identities typically set by gateways include: | ||||
| RFC2822.From | ||||
| Actor: Originator | ||||
| Names and email addresses for the original author(s) of the | ||||
| message content are retained. As for all original addressing | ||||
| information in the message, the gateway may translate addresses in | ||||
| whatever way will allow them continue to be useful in the target | ||||
| environment. | ||||
| RFC2822.Reply-To | ||||
| Actor: Originator | ||||
| The gateway should retain this information, if it is originally | ||||
| present. The ability to perform a successful reply by a gatewayed | ||||
| recipient is a typical test of gateway functionality. | ||||
| RFC2822.Sender | ||||
| Actor: Source | ||||
| This may retain the original value or may be set to a new address | ||||
| RFC2822.TO, RFC2822.CC, RFC2822.BCC | ||||
| Actor: Recipient | ||||
| These usually retain their original addresses. | ||||
| RFC2821.MailFrom | ||||
| Actor: Source | ||||
| The agent responsible for gatewaying the message may choose to | ||||
| specify a new address to receive handling notices. | ||||
| RFC2822.Receive | ||||
| Actors - Source, Relay, Dest | ||||
| The gateway may record a Received header field, to indicate the | ||||
| transition from original posting to the new messaging environment. | ||||
| 6.2.5 MUA Alias Handling | ||||
| A simple re-addressing facility that is available in most MDA | ||||
| implementations is called Aliasing. It is performed just before | ||||
| placing a message into the specified recipient's inbox. Instead, the | ||||
| message is submitted back to the transfer service, for delivery to | ||||
| one or more alternate addresses. Although implemented as part of the | ||||
| message delivery service, this facility is strictly a recipient user | ||||
| function. In effect it resubmits the message to a new address, on | ||||
| behalf of the listed recipient. | ||||
| What is most distinctive about this forwarding mechanism is how | ||||
| closely it compares to normal MTA store-and-forward. In reality its | ||||
| only interesting difference is that it changes the RFC2821.RCPT-TO | ||||
| value. Notably it does not typically change the RFC2821.Mailfrom | ||||
| An MDA that is re-posting a message to an alias typically changes | ||||
| only envelope information: | ||||
| RFC2822.TO, RFC2822.CC, RFC2822.BCC | ||||
| Actor: Recipient | ||||
| These retain their original addresses. | ||||
| RFC2821.Rcpt-To | ||||
| Actor: Recipient | ||||
| This field contains an alias address. | ||||
| RFC2821.MailFrom | ||||
| Actor: Mediating Source | ||||
| The agent responsible for submission to an alias address will | ||||
| usually retain the original address to receive handling | ||||
| notifications. The benefit of retaining the original MailFrom | ||||
| value is to ensure that the origination-side agent knows of that | ||||
| there has been a delivery problem. On the other hand, the | ||||
| responsibility for the problem usually lies with the recipient, | ||||
| since the Alias mechanism is strictly under the recipient's | ||||
| control. | ||||
| RFC2821.Received | ||||
| Actor: Mediating Recipient | ||||
| The agent should record Received information, to indicate the | ||||
| delivery to the original address and submission to the alias | ||||
| address. The trace of Received header fields should include | ||||
| everything from original posting through final delivery to the | ||||
| alias. | ||||
| 6.2.6 MUA Mailing Lists | ||||
| Mailing lists have explicit email addresses and they forward messages | Mailing lists have explicit email addresses and they forward messages | |||
| to a list of subscribed members. Mailing list processing is a | to a list of subscribed members. The Mailing List Actor performs a | |||
| user-level activity, outside of the core email transfer service. The | task that can be viewed as an elaboration of the ReDirector role. In | |||
| mailing list address is, therefore, associated with a distinct | addition to sending the new message to a potentially large number of | |||
| user-level entity that can perform arbitrary actions upon the | new Recipients, the Mediator can modify content, such as deleting | |||
| original message, before submitting it to the mailing list | attachments, formatting conversion, and adding list-specific | |||
| membership. Hence, mailing lists are similar to gateways. | comments. In addition, archiving list messages is common. Still, | |||
| the message retains characteristics of being "from" the original | ||||
| Originator. | ||||
| Identities set by a mailing list processor, when submitting a | Identities relevant to a mailing list processor, when submitting a | |||
| message, include: | message, include: | |||
| RFC2919.List-id | RFC2919.List-id | |||
| Actor: Mediating Originator | Set by: Mediator | |||
| This provides a global mailing list naming framework that is | This provides a global mailing list naming framework that is | |||
| independent of particular hosts. Although [RFC2919] is a | independent of particular hosts. Although [RFC2919] is a | |||
| standards-track specification, it has not gained significant | standards-track specification, it has not gained significant | |||
| adoption. | adoption. | |||
| RFC2369.List-* | RFC2369.List-* | |||
| Actor: Mediating Recipient | Set by: Mediator | |||
| [RFC2369] defines a collection of message header fields for use by | [RFC2369] defines a collection of message header fields for use by | |||
| mailing lists. In effect, they supply list-specific parameters | mailing lists. In effect, they supply list-specific parameters | |||
| for common mailing list user operations. The identifiers for | for common mailing list user operations. The identifiers for | |||
| these operations are for the list, itself, and the | these operations are for the list, itself, and the | |||
| user-as-subscriber. | user-as-subscriber. | |||
| RFC2822.From | RFC2822.From | |||
| Actor: Originator | Set by: original Originator | |||
| Names and email addresses for the original author(s) of the | Names and email addresses for the original author(s) of the | |||
| message content are specified. | message content are specified. | |||
| RFC2822.Reply-To | RFC2822.Reply-To | |||
| Actor: Originator | Set by: original Originator or Mediator | |||
| Mailing lists have introduced an ambiguity for the Reply-To field. | Mailing lists have introduced an ambiguity for the Reply-To field. | |||
| Some List operations choose to force all replies to go to all list | Some List operations choose to force all replies to go to all list | |||
| members. They achieve this by placing the list address into the | members. They achieve this by placing the list address into the | |||
| RFC2822.Reply-To field. Hence, direct, "private" replies only to | RFC2822.Reply-To field. Hence, direct, "private" replies only to | |||
| the original author cannot be achieved by using the MUA's typical | the original author cannot be achieved by using the MUA's typical | |||
| "reply to author" function. If the author created a Reply-To | "reply to author" function. If the author created a Reply-To | |||
| field, its information is lost. | field, its information is lost. | |||
| RFC2822.Sender | RFC2822.Sender | |||
| Actor: Source | Set by: original Source or Mediator | |||
| This will usually specify the address of the agent responsible for | This will usually specify the address of the agent responsible for | |||
| mailing list operations. However, some mailing lists operate in a | mailing list operations. However, some mailing lists operate in a | |||
| manner very similar to a simple MTA relay, so that they preserve | manner very similar to a simple MTA Relay, so that they preserve | |||
| as much of the original handling information as possible, | as much of the original handling information as possible, | |||
| including the original RFC2822.Sender field. | including the original RFC2822.Sender field. | |||
| RFC2822.TO, RFC2822.CC | RFC2822.TO, RFC2822.CC | |||
| Actor: Mediating Recipient | Set by: original Originator | |||
| These will usually contain the original list of recipient | These will usually contain the original list of Recipient | |||
| addresses. | addresses. | |||
| RFC2821.MailFrom | RFC2821.MailFrom | |||
| Actor: Mediating Source | Set by: original Source or Mediator | |||
| This may contain the original address to be notified of | This may contain the original address to be notified of | |||
| transmission issues, or the mailing list agent may set it to | transmission issues, or the mailing list agent may set it to | |||
| contain a new notification address. Typically, the value is set | contain a new Notification address. Typically, the value is set | |||
| to a new address, so that mailing list members and posters are not | to a new address, so that mailing list members and posters are not | |||
| burdened with transmission-related notifications. | burdened with transmission-related Notifications. | |||
| RFC2821.Rcpt-To | RFC2821.RcptTo | |||
| Actor: Recipient | Set by: Mediator | |||
| This contains the address of a mailing list member. | This contains the address of a mailing list member. | |||
| RFC2821.Received | RFC2821.Received | |||
| Actor: Mediating Recipient | Set by: Mediator | |||
| An Mailing List Agent should record a Received header field, to | An Mailing List Agent should record a Received header field, to | |||
| indicate the transition from original posting to mailing list | indicate the transition from original posting to mailing list | |||
| forwarding. The Agent may choose to have the message retain the | forwarding. The Agent may choose to have the message retain the | |||
| original set of Received header fields or may choose to remove | original set of Received header fields or may choose to remove | |||
| them. In the latter case, it should ensure that the original | them. In the latter case, it should ensure that the original | |||
| Received header fields are otherwise available, to ensure later | Received header fields are otherwise available, to ensure later | |||
| accountability and diagnostic access to it. | accountability and diagnostic access to it. | |||
| 7. Security Considerations | 5.4 Gateways | |||
| Gateways perform the basic routing and transfer work of message | ||||
| relaying, but they also make any message or address modifications | ||||
| that are needed to send the message into the next messaging | ||||
| environment. When a Gateway connects two differing messaging | ||||
| services, its role is easy to identify and understand. When it | ||||
| connects environments that have technical similarity, but may have | ||||
| significant administrative differences, it is easy to think that a | ||||
| Gateway is merely an MTA. The critical distinction between an MTA | ||||
| and a Gateway is that the latter transforms addresses and/or message | ||||
| content, in order to map between the standards of two, different | ||||
| messaging services. In virtually all cases, this mapping process | ||||
| results in some degree of semantic loss. The challenge of Gateway | ||||
| design is to minimize this loss. | ||||
| A Gateway may set any identity field available to a regular MUA. | ||||
| Identities typically relevant to Gateways include: | ||||
| RFC2822.From | ||||
| Set by: original Originator | ||||
| Names and email addresses for the original author(s) of the | ||||
| message content are retained. As for all original addressing | ||||
| information in the message, the Gateway may translate addresses in | ||||
| whatever way will allow them continue to be useful in the target | ||||
| environment. | ||||
| RFC2822.Reply-To | ||||
| Set by: original Originator | ||||
| The Gateway should retain this information, if it is originally | ||||
| present. The ability to perform a successful reply by a Gatewayed | ||||
| Recipient is a typical test of Gateway functionality. | ||||
| RFC2822.Sender | ||||
| Set by: original Source or Mediator | ||||
| This may retain the original value or may be set to a new address | ||||
| RFC2822.TO, RFC2822.CC, RFC2822.BCC | ||||
| Set by: original Recipient | ||||
| These usually retain their original addresses. | ||||
| RFC2821.MailFrom | ||||
| Set by: original Source or Mediator | ||||
| The agent responsible for gatewaying the message may choose to | ||||
| specify a new address to receive handling notices. | ||||
| RFC2822.Received | ||||
| Set by: Mediator | ||||
| The Gateway may record a Received header field, to indicate the | ||||
| transition from original posting to the new messaging environment. | ||||
| 5.5 Security Filter | ||||
| Organizations often enforce security boundaries by having message | ||||
| subjected to analysis for conformance with the organization's safety | ||||
| policies. Examples are detection of content classed as spam or a | ||||
| virus. A Security Filter might alter the content, to render it safe, | ||||
| such as by removing content deemed unacceptable. Typically these | ||||
| actions will result in the addition of content that records the | ||||
| actions. | ||||
| 6. Security Considerations | ||||
| This document does not specify any new Internet mail functionality. | This document does not specify any new Internet mail functionality. | |||
| Consequently it should introduce no new security considerations. | Consequently it should introduce no new security considerations. | |||
| However its discussion of the roles and responsibilities for | However its discussion of the roles and responsibilities for | |||
| different mail service modules, and the information they create, | different mail service modules, and the information they create, | |||
| highlights the considerable security considerations that must be | highlights the considerable security considerations that must be | |||
| present when implementing any component of the Internet mail service. | present when implementing any component of the Internet mail service. | |||
| 8 References | 7. References | |||
| 7.1 References - Normative | ||||
| [ID-hdr-reg] | [ID-hdr-reg] | |||
| "Registration of mail and MIME header fields", | "Registration of mail and MIME header fields", | |||
| draft-klyne-hdrreg-mail-04.txt (work in progress), Apr | draft-klyne-hdrreg-mail-04.txt (work in progress), Apr | |||
| 2004. | 2004. | |||
| [ID-spamops] | ||||
| Hutzler, C., Crocker, D., Resnick, P., Sanderson, R. and | ||||
| E. Allman, "Email Submission Between Independent | ||||
| Networks", draft-spamops-00 (work in progress), March | ||||
| 2004. | ||||
| [RFC0821] Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC | [RFC0821] Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC | |||
| 821, August 1982. | 821, August 1982. | |||
| [RFC0822] Crocker, D., "Standard for the format of ARPA Internet | [RFC0822] Crocker, D., "Standard for the format of ARPA Internet | |||
| text messages", STD 11, RFC 822, August 1982. | text messages", STD 11, RFC 822, August 1982. | |||
| [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | |||
| STD 13, RFC 1034, November 1987. | STD 13, RFC 1034, November 1987. | |||
| [RFC1035] Mockapetris, P., "Domain names - implementation and | [RFC1035] Mockapetris, P., "Domain names - implementation and | |||
| skipping to change at page 32, line 34 ¶ | skipping to change at page 36, line 19 ¶ | |||
| Sub-type Registration", RFC 2423, September 1998. | Sub-type Registration", RFC 2423, September 1998. | |||
| [RFC2442] "The Batch SMTP Media Type", RFC 2442, November 1998. | [RFC2442] "The Batch SMTP Media Type", RFC 2442, November 1998. | |||
| [RFC2476] Gellens, R. and J. Klensin, "Message Submission", RFC | [RFC2476] Gellens, R. and J. Klensin, "Message Submission", RFC | |||
| 2476, December 1998. | 2476, December 1998. | |||
| [RFC2645] "On-Demand Mail Relay (ODMR) SMTP with Dynamic IP | [RFC2645] "On-Demand Mail Relay (ODMR) SMTP with Dynamic IP | |||
| Addresses", RFC 2465, August 1999. | Addresses", RFC 2465, August 1999. | |||
| [RFC2782] Gulbrandsen, A., Vixie, P. and L. Esibov, "A DNS RR for | ||||
| specifying the location of services (DNS SRV)", RFC 2782, | ||||
| February 2000. | ||||
| [RFC2821] Klensin, J., "Simple Mail Transfer Protocol", RFC 2821, | [RFC2821] Klensin, J., "Simple Mail Transfer Protocol", RFC 2821, | |||
| April 2001. | April 2001. | |||
| [RFC2822] Resnick, P., "Internet Message Format", RFC 2822, April | [RFC2822] Resnick, P., "Internet Message Format", RFC 2822, April | |||
| 2001. | 2001. | |||
| [RFC2919] Chandhok, R. and G. Wenger, "List-Id: A Structured Field | [RFC2919] Chandhok, R. and G. Wenger, "List-Id: A Structured Field | |||
| and Namespace for the Identification of Mailing Lists", | and Namespace for the Identification of Mailing Lists", | |||
| RFC 2919, March 2001. | RFC 2919, March 2001. | |||
| [RFC3028] Showalter, T., "Sieve: A Mail Filtering Language", RFC | [RFC3028] Showalter, T., "Sieve: A Mail Filtering Language", RFC | |||
| 3028, January 2001. | 3028, January 2001. | |||
| [RFC3297] Klyne, G., Iwazaki, R. and D. Crocker, "Content | ||||
| Negotiation for Messaging Services based on Email", RFC | ||||
| 3297, July 2002. | ||||
| [RFC3458] Burger, E., Candell, E., Eliot, C. and G. Klyne, "Message | ||||
| Context for Internet Mail", RFC 3458, January 2003. | ||||
| [RFC3461] Moore, K., "Simple Mail Transfer Protocol (SMTP) Service | [RFC3461] Moore, K., "Simple Mail Transfer Protocol (SMTP) Service | |||
| Extension for Delivery Status Notifications (DSNs)", RFC | Extension for Delivery Status Notifications (DSNs)", RFC | |||
| 3461, January 2003. | 3461, January 2003. | |||
| [RFC3501] Crispin, M., "Internet Message Access Protocol - Version | [RFC3501] Crispin, M., "Internet Message Access Protocol - Version | |||
| 4rev1", RFC 3501, March 2003. | 4rev1", RFC 3501, March 2003. | |||
| 7.2 Reference - Descriptive | ||||
| [ID-ffpim] | ||||
| Crocker, D. and G. Klyne, "Full-mode Fax Profile for | ||||
| Internet Mail: FFPIM", March 2004. | ||||
| [ID-spamops] | ||||
| Hutzler, C., Crocker, D., Resnick, P., Sanderson, R. and | ||||
| E. Allman, "Email Submission Between Independent | ||||
| Networks", draft-spamops-00 (work in progress), March | ||||
| 2004. | ||||
| [RFC1767] Crocker, D., "MIME Encapsulation of EDI Objects", RFC | ||||
| 1767, March 1995. | ||||
| Author's Address | Author's Address | |||
| Dave Crocker | Dave Crocker | |||
| Brandenburg InternetWorking | Brandenburg InternetWorking | |||
| 675 Spruce Drive | 675 Spruce Drive | |||
| Sunnyvale, CA 94086 | Sunnyvale, CA 94086 | |||
| USA | USA | |||
| Phone: +1.408.246.8253 | Phone: +1.408.246.8253 | |||
| EMail: dcrocker@bbiw.net | EMail: dcrocker@bbiw.net | |||
| Appendix A. Acknowledgements | Appendix A. Acknowledgements | |||
| The Email Architecture section derives from draft-hutzler-spamops | This work derives from a section in draft-hutzler-spamops | |||
| [ID-spamops]. The text has been further elaborated. | [ID-spamops]. Discussion of the Source actor role was greatly | |||
| clarified during discussions in the IETF's Marid working group. | ||||
| Discussion of the Source actor role was greatly clarified during | ||||
| discussions in the IETF's Marid working group. | ||||
| Graham Klyne, Pete Resnick and Steve Atkins provided thoughtful | Graham Klyne, Pete Resnick and Steve Atkins provided thoughtful | |||
| insight on the framework and details of early drafts. Additional | insight on the framework and details of early drafts. | |||
| review and suggestions were provided by Nathaniel Borenstein, Ed | ||||
| Bradford, Cyrus Daboo, Tony Finch, Ned Freed, Eric Hall, Bruce Lilly, | Additional review and suggestions were provided by Nathaniel | |||
| Eric Hall, Chris Newman, Jochen Topf. | Borenstein, Ed Bradford, Cyrus Daboo, Frank Ellermann, Tony Finch, | |||
| Ned Freed, Eric Hall, Bruce Lilly, Mark E. Mallett, Chris Newman, | ||||
| Daryl Odnert, Rahmat M. Samik-Ibrahim, Hector Santos, Jochen Topf, | ||||
| Willemien. | ||||
| Intellectual Property Statement | Intellectual Property Statement | |||
| The IETF takes no position regarding the validity or scope of any | The IETF takes no position regarding the validity or scope of any | |||
| Intellectual Property Rights or other rights that might be claimed to | Intellectual Property Rights or other rights that might be claimed to | |||
| pertain to the implementation or use of the technology described in | pertain to the implementation or use of the technology described in | |||
| this document or the extent to which any license under such rights | this document or the extent to which any license under such rights | |||
| might or might not be available; nor does it represent that it has | might or might not be available; nor does it represent that it has | |||
| made any independent effort to identify any such rights. Information | made any independent effort to identify any such rights. Information | |||
| on the procedures with respect to rights in RFC documents can be | on the procedures with respect to rights in RFC documents can be | |||
| End of changes. 221 change blocks. | ||||
| 780 lines changed or deleted | 974 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||