| rfc9228.original | rfc9228.txt | |||
|---|---|---|---|---|
| Network Working Group D. Crocker, Ed. | Independent Submission D. Crocker, Ed. | |||
| Internet-Draft Brandenburg InternetWorking | Request for Comments: 9228 Brandenburg InternetWorking | |||
| Intended status: Experimental 9 February 2022 | Category: Experimental April 2022 | |||
| Expires: 13 August 2022 | ISSN: 2070-1721 | |||
| Delivered-To Email Header Field | Delivered-To Email Header Field | |||
| draft-crocker-email-deliveredto-10 | ||||
| Abstract | Abstract | |||
| The address to which email is delivered might be different than any | The address to which email is delivered might be different than any | |||
| of the addresses shown in any of the content header fields that were | of the addresses shown in any of the content header fields that were | |||
| created by the email's author. For example, the address used by the | created by the email's author. For example, the address used by the | |||
| email transport service is provided separately, such as through | email transport service is provided separately, such as through | |||
| SMTP's "RCPT TO" command, and might not match any address in the To: | SMTP's "RCPT TO" command, and might not match any address in the To: | |||
| or cc: fields. In addition before final delivery, handling can | or cc: fields. In addition, before final delivery, handling can | |||
| entail a sequence of submission/delivery events, using a sequence of | entail a sequence of submission/delivery events, using a sequence of | |||
| different destination addresses that (eventually) lead to the | different destination addresses that (eventually) lead to the | |||
| recipient. As well, a receiving system's delivery process can | recipient. As well, a receiving system's delivery process can | |||
| produce local address transformations. | produce local address transformations. | |||
| It can be helpful for a message to have a common way to record each | It can be helpful for a message to have a common way to record each | |||
| delivery in such a sequence, and to note each address used in the | delivery in such a sequence, noting each address used in the sequence | |||
| sequence to that recipient, such as for analyzing the path a message | to that recipient, such as for (1) analyzing the path a message has | |||
| has taken, or for loop detection, or for formulating the author's | taken, (2) loop detection, or (3) formulating the author's address in | |||
| address in a reply message. This document defines a header field for | a reply message. This document defines a header field for this | |||
| this information. | information. | |||
| Email handling information discloses details about the email | Email handling information discloses details about the email | |||
| infrastructure, as well as about a particular recipient; this can | infrastructure, as well as about a particular recipient; this can | |||
| raise privacy concerns. | raise privacy concerns. | |||
| A header field such as this is not automatically assured of | A header field such as this is not automatically assured of | |||
| widespread use. Therefore this is being published as an Experiment, | widespread use. Therefore, this document is being published as an | |||
| looking for constituency and for operational utility. The document | Experimental RFC, looking for constituency and for operational | |||
| is produced through the Independent RFC stream and was not subject to | utility. This document was produced through the Independent | |||
| the IETF's approval process. | Submission Stream and was not subject to the IETF's approval process. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This document is not an Internet Standards Track specification; it is | |||
| provisions of BCP 78 and BCP 79. | published for examination, experimental implementation, and | |||
| evaluation. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document defines an Experimental Protocol for the Internet | |||
| and may be updated, replaced, or obsoleted by other documents at any | community. This is a contribution to the RFC Series, independently | |||
| time. It is inappropriate to use Internet-Drafts as reference | of any other RFC stream. The RFC Editor has chosen to publish this | |||
| material or to cite them other than as "work in progress." | document at its discretion and makes no statement about its value for | |||
| implementation or deployment. Documents approved for publication by | ||||
| the RFC Editor are not candidates for any level of Internet Standard; | ||||
| see Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 13 August 2022. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9228. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2022 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. | carefully, as they describe your rights and restrictions with respect | |||
| to this document. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 2. Background . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Background | |||
| 3. Framework & Terminology . . . . . . . . . . . . . . . . . . . 5 | 3. Framework & Terminology | |||
| 4. Delivered-To . . . . . . . . . . . . . . . . . . . . . . . . 5 | 4. Delivered-To | |||
| 5. Multi-delivery Example . . . . . . . . . . . . . . . . . . . 6 | 5. Multi-Delivery Example | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 6. Security Considerations | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 7. IANA Considerations | |||
| 8. Experimental Goals . . . . . . . . . . . . . . . . . . . . . 9 | 8. Experimental Goals | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 9. References | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 10 | 9.1. Normative References | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 11 | 9.2. Informative References | |||
| Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 11 | Acknowledgements | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 11 | Author's Address | |||
| 1. Introduction | 1. Introduction | |||
| The address to which email is delivered might be different than any | The address to which email is delivered might be different than any | |||
| of the addresses shown in any of the content header fields | of the addresses shown in any of the content header fields | |||
| [Mail-Fmt], such as the To: and cc: fields that were created by the | [Mail-Fmt], such as the To: and cc: fields that were created by the | |||
| author's Mail User Agent (MUA) [Mail-Arch]. The address used by the | author's Message User Agent (MUA) [Mail-Arch]. The address used by | |||
| Message Handling Service (MHS) is provided separately, in envelope | the Message Handling Service (MHS) is provided separately, in | |||
| information, such as through an "RCPT TO" command in [SMTP]. | envelope information, such as through a "RCPT TO" command in [SMTP]. | |||
| Delivery is a transition of responsibility for a message, from the | As noted in Section 4.3.3 of [Mail-Arch], 'A transfer of | |||
| MHS, over to an agent of the destination, as represented by the | responsibility from the MHS to a Recipient's environment (mailbox) is | |||
| envelope address (Section 4.3.3 [Mail-Arch]). That is, when the | called "delivery".' That is, when the destination address is fully | |||
| destination address is fully and successfully processed, and any | and successfully processed, and any additional processing is by an | |||
| additional processing is by an agent working on behalf of that | agent working on behalf of that address, the message has been | |||
| address, the message has been delivered. Rather than placing the | delivered. Rather than placing the message into a recipient inbox or | |||
| message into a recipient inbox, or otherwise completing the handling | otherwise completing the handling of the message, that agent might | |||
| of the message, that agent might create additional processing, | create additional processing, including to one or more different | |||
| including to one or more, different addresses. Each transition of | addresses. Each transition of responsibility, from the MHS to an | |||
| responsibility, from the MHS to an agent of a current addressee, | agent of a current addressee, constitutes a distinct delivery. Given | |||
| constitutes a distinct delivery. Given handling sequences that can | handling sequences that can include aliasing, mailing lists, and the | |||
| include aliasing, mailing lists, and the like, the transit of a | like, the transit of a message from its author to a final recipient | |||
| message from its author to a final recipient might include a series | might include a series of submission/delivery events. Also, the | |||
| of submission/delivery events. Also, the delivery process at a | delivery process at a receiving system can produce local (internal) | |||
| receiving system can produce local (internal) address | address transformations. | |||
| transformations. | ||||
| Header fields that provide information about handling can be used | Header fields that provide information about handling can be used | |||
| when assessing email traffic issues and when diagnosing specific | when assessing email traffic issues and when diagnosing specific | |||
| handling problems. To this end, it can be helpful for a message to | handling problems. To this end, it can be helpful for a message to | |||
| have a common way of indicating each delivery in the handling | have a common way to indicate each delivery in the handling sequence | |||
| sequence, and to include each address that led to the final delivery. | and to include each address that led to the final delivery. This can | |||
| This can aid in the analysis of a message's transit handling. | aid in the analysis of a message's transit handling. | |||
| An additional use can as be an aid in detecting a delivery sequence | An additional use can be to aid in detecting a delivery sequence | |||
| loop, based on a specific address. With a problematic loop, the same | loop, based on a specific address. With a problematic loop, the same | |||
| copy of a message is delivered to the same email address more than | copy of a message is delivered to the same email address more than | |||
| once. This is different from having different copies delivered to | once. This is different from having different copies delivered to | |||
| the same address, such as happens when a message is sent directly to | the same address, such as happens when a message is sent directly to | |||
| an address, as well as via a mailing list. It is also different from | an address, as well as via a mailing list. It is also different from | |||
| having two copies of the same message arrive at the same, ultimate | having two copies of the same message arrive at the same, ultimate | |||
| destination address, having been originally posted to two different | destination address, having been originally posted to two different | |||
| addresses. Further, this is different from noting when a message | addresses. Further, this is different from noting when a message | |||
| simply transits the same MTA more than once, which might be | simply transits the same Message Transfer Agent (MTA) more than once, | |||
| necessary, such as when it is processed through a mailing list; an | which might be necessary, such as when it is processed through a | |||
| MTA services many addresses. | mailing list; an MTA services many addresses. | |||
| Delivering the same copy of a message more than once, to the same | Delivering the same copy of a message more than once, to the same | |||
| address, is almost certainly not an intended activity. An example of | address, is almost certainly not an intended activity. An example of | |||
| a problematic arrangement would be to send a message to mailing list | a problematic arrangement would be to send a message to mailing list | |||
| List-A, where List-A contains an entry for List-B, and List-B | List-A, where List-A contains an entry for List-B, and List-B | |||
| contains an entry for List-A. The message will enter an infinite | contains an entry for List-A. The message will enter an infinite | |||
| loop. Loop detection for email can be a complicated affair. The | loop. Loop detection for email can be a complicated affair. The | |||
| Delivered-To: header field provides helpful information, with a | Delivered-To: header field provides helpful information, with a | |||
| definitive indication that this copy of a message has (already) been | definitive indication that this copy of a message has (already) been | |||
| delivered to a specific address. | delivered to a specific address. | |||
| When specifying new activity that is related to existing activity, | When specifying new activity that is related to existing activity, | |||
| there is a choice of design approach: | there is a choice of design approach: | |||
| * Seeking to change (some) of the existing behavior | * Seeking to change (some of) the existing behavior | |||
| * Adding to the activity without changing what is already being done | * Adding to the activity without changing what is already being done | |||
| * Calling for separate, new activity | * Calling for separate, new activity | |||
| On the average, attempting to change existing activities is the least | On the average, attempting to change existing activities is the least | |||
| likely to obtain adoption; it can create operational confusion | likely to obtain adoption; it can create operational confusion | |||
| between old and new activities, which in turn creates resistance to | between old and new activities, which in turn creates resistance to | |||
| adoption. Seeking new activity can make sense when that activity is | adoption. Seeking new activity can make sense when that activity is | |||
| sufficiently different and deemed sufficiently beneficial. Adding to | sufficiently different and deemed sufficiently beneficial. Adding to | |||
| existing activity has the selling point of building upon an installed | existing activity has the selling point of building upon an installed | |||
| base. The current specification builds upon an existing installed | base. The current specification builds upon an existing installed | |||
| base of Delivered-To: activity. It calls for little technical | base of Delivered-To: activity. It calls for little technical | |||
| enhancement, but rather, it simply provides for wider range of | enhancement; rather, it simply provides for a wider range of | |||
| application. | application. | |||
| Considerations: | Considerations: | |||
| * Email handling information, such as this, provides information | * Email handling information, such as this, provides information | |||
| about the email infrastructure, as well as about the recipient. | about the email infrastructure, as well as about the recipient. | |||
| Disclosure of this information might engender privacy concerns. | Disclosure of this information might engender privacy concerns. | |||
| * A specification, is not automatically assured of adoption or use. | * A specification is not automatically assured of adoption or use. | |||
| Therefore it is being published as an Experiment, looking for | Therefore, this document is being published as an Experimental | |||
| extended constituency and for general operational utility. | RFC, looking for extended constituency and for general operational | |||
| utility. | ||||
| * This document was produced through the Independent RFC stream and | * This document was produced through the Independent RFC Stream and | |||
| was not subject to the IETF's approval process. | was not subject to the IETF's approval process. | |||
| 2. Background | 2. Background | |||
| Ad hoc use of a "Delivered-To:" email header field appears to date | Ad hoc use of a Delivered-To: email header field appears to date back | |||
| back to the 1990s, primarily for loop detection, although | to the 1990s, primarily for loop detection, although documentation is | |||
| documentation is spotty and system-specific. A listing of some | spotty and system specific. A listing of some implementations is | |||
| implementations is offered in [Prior]. | offered in [Prior]. | |||
| It appears that all uses include a string in the form of an email | It appears that all uses include a string in the form of an email | |||
| address, although at least one example has leading text that is a | address, although at least one example has leading text that is a | |||
| comment about the address. In some cases, the string appears to be | comment about the address. In some cases, the string appears to be | |||
| the email transport destination address, such as used in SMTP's "RCPT | the email transport destination address, such as the address used in | |||
| TO" command. In other cases, it appears to be the result of some | SMTP's "RCPT TO" command. In other cases, it appears to be the | |||
| internal mapping at the receiving system, although tending to be a | result of some internal mapping at the receiving system, although | |||
| variant of the transport address. | tending to be a variant of the transport address. | |||
| Email loop detection tends to be accomplished through a variety of | Email loop detection tends to be accomplished through a variety of | |||
| different methods, such as counting Received: header fields. These | different methods, such as counting Received: header fields. These | |||
| methods are often combined to greater effect. | methods are often combined to greater effect. | |||
| The Received: header field's 'for' clause is sometimes useful for | The Received: header field's 'for' clause is sometimes useful for | |||
| disclosing the recipient's address. However the clause is not used | disclosing the recipient's address. However, the clause is not used | |||
| reliably and its semantics are not thoroughly defined. Also it | reliably, and its semantics are not thoroughly defined. Also, it | |||
| references an addressing value that is received, but might be | references an addressing value that is received but might be | |||
| different from the value that is ultimately used (as the result of a | different from the value that is ultimately used (as the result of a | |||
| transformation.) That is, the value in a 'for' clause might be a | transformation). That is, the value in a 'for' clause might be a | |||
| sufficient indicator of delivery addressing, but it might not. | sufficient indicator of delivery addressing, but it might not. | |||
| 3. Framework & Terminology | 3. Framework & Terminology | |||
| Unless otherwise indicated, basic architecture and terminology used | Unless otherwise indicated, basic architecture and terminology used | |||
| in this document are taken from: | in this document are taken from: | |||
| * [Mail-Arch] | * [Mail-Arch] | |||
| * [SMTP] | * [SMTP] | |||
| * [Mail-Fmt] | * [Mail-Fmt] | |||
| and syntax is specified with: | and syntax is specified with: | |||
| * [ABNF] | * [ABNF] | |||
| Normative language, is per [RFC8174]: | Normative language is per [RFC8174]: | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | |||
| NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | |||
| "MAY", and "OPTIONAL" in this document are to be interpreted as | "MAY", and "OPTIONAL" in this document are to be interpreted as | |||
| described in BCP 14 [RFC2119] [RFC8174] when, and only when, they | described in BCP 14 [RFC2119] [RFC8174] when, and only when, they | |||
| appear in all capitals, as shown here. | appear in all capitals, as shown here. | |||
| 4. Delivered-To | 4. Delivered-To | |||
| The "Delivered-To:" header field annotates an email delivery event. | The Delivered-To: header field annotates an email delivery event. | |||
| The header field contains information about the individual address | The header field contains information about the individual address | |||
| used to effect that transition. | used to effect that transition. | |||
| * When a message is delivered, as a transition from control by the | * When a message is delivered, as a transition from control by the | |||
| MHS to the recipient's store or their agent, a Delivered-To: | MHS to the recipient's store or their agent, a Delivered-To: | |||
| header field SHOULD be added, with the _addr-spec_ value | header field SHOULD be added, with the _addr-spec_ value | |||
| containing the address that was used by the service to reach the | containing the address that was used by the service to reach the | |||
| recipient. | recipient. | |||
| * If a receiving system's delivery process applies mappings or | * If a receiving system's delivery process applies mappings or | |||
| transformations, from the address used by the MHS, to a local | transformations from the address used by the MHS to a local value, | |||
| value, this new value SHOULD also be recorded into a separate | this new value SHOULD also be recorded into a separate Delivered- | |||
| Delivered-To: field, when transit and processing using that | To: field when transit and processing using that address | |||
| addresses successfully completes. This ensures a detailed record | successfully complete. This ensures a detailed record of the | |||
| of the sequence of handling addresses used for the message. | sequence of handling addresses used for the message. | |||
| * As with some other information, each additional Delivered-To: | * As with some other information, each additional Delivered-To: | |||
| header field MUST be placed at the current 'top' of the message's | header field MUST be placed at the current 'top' of the message's | |||
| set of header fields -- that is, as the first header field, in a | set of header fields -- that is, as the first header field, in a | |||
| fashion similar to the trace fields specified in [SMTP], such as | fashion similar to the trace fields specified in [SMTP] (for | |||
| in its Section 4.1.1.4. This produces a sequence of Delivered-To: | example, Section 4.1.1.4 of [SMTP]). This produces a sequence of | |||
| header fields that represent the sequence of deliveries, with the | Delivered-To: header fields that represent the sequence of | |||
| first being at the 'bottom' of the sequence and the final one | deliveries, with the first being at the 'bottom' of the sequence | |||
| being at the top. | and the final one being at the top. | |||
| * As with other fields placed incrementally in this way, with each | * As with other fields placed incrementally in this way, with each | |||
| added at the current top, the Delivered-To: header field MUST NOT | added at the current top, the Delivered-To: header field MUST NOT | |||
| be reordered with respect to other Delivered-To: fields and those | be reordered with respect to other Delivered-To: fields and those | |||
| other fields. This is intended to preserve the fields as | other fields. This is intended to preserve the fields as | |||
| representing the message handling sequence. | representing the message handling sequence. | |||
| The Delivered-To: header field is added at the time of delivery, when | The Delivered-To: header field is added at the time of delivery, when | |||
| responsibility for a message transitions from the Message Handling | responsibility for a message transitions from the Message Handling | |||
| (Transport) Service (MHS) to an agent of the specified individual | Service (MHS) to an agent of the specified individual recipient | |||
| recipient address. The field can also be added as a result of | address. The field can also be added as a result of internal system | |||
| internal system processing, to note address transformations. | processing, to note address transformations. | |||
| Note: The presence of an existing Delivered-To: header field, for | | Note: The presence of an existing Delivered-To: header field, | |||
| the same address, typically indicates a handling loop for this | | for the same address, typically indicates a handling loop for | |||
| instance of the message. | | this instance of the message. | |||
| The syntax of the header field is: | The syntax of the header field is: | |||
| "Delivered-To:" FWS addr-spec FWS CRLF ; addr-spec is from [Mail-Fmt] | "Delivered-To:" FWS addr-spec FWS CRLF ; addr-spec is from [Mail-Fmt] | |||
| The field records information about a single address, for one | The field records information about a single address, for one | |||
| recipient. See [Section 6] for the privacy-related concerns about | recipient. See Section 6 for the privacy-related concerns about | |||
| divulging addresses. | divulging addresses. | |||
| 5. Multi-delivery Example | 5. Multi-Delivery Example | |||
| The Delivered-To: header field can be used to document a sequence of | The Delivered-To: header field can be used to document a sequence of | |||
| deliveries of a message. Each time an address is fully processed, a | deliveries of a message. Each time an address is fully processed, a | |||
| Delivered-To: header field is added, recording a handling sequence, | Delivered-To: header field is added, recording a handling sequence, | |||
| with the most recent one being towards the 'top' of the sequence of | with the most recent one being towards the 'top' of the sequence of | |||
| header fields. | header fields. | |||
| This example demonstrates a message traveling from its original | This example demonstrates a message traveling from its original | |||
| posting, through a remote group mailing list, on through an | posting, through a remote group mailing list, on through an | |||
| independent personal aliasing mechanism, and then reaching final | independent personal aliasing mechanism, and then reaching final | |||
| delivery at yet another independent email provider. | delivery at yet another independent email provider. | |||
| 1. Origination @ com.example | 1. Origination at com.example | |||
| The message, as submitted. The destination address is the | The message, as submitted. The destination address is the | |||
| same as the value in the message's To: header field. | same as the value in the message's To: header field. | |||
| From: Ann Author <aauthor@com.example> | From: Ann Author <aauthor@com.example> | |||
| Date: Mon, 25 Jan 2021 18:29:00 -0500 | Date: Mon, 25 Jan 2021 18:29:06 -0500 | |||
| To: list@org.example | To: list@org.example | |||
| Subject: [list] Sending through a list and alias | Subject: [list] Sending through a list and alias | |||
| Sender: Ann Author <aauthor@com.example> | Sender: Ann Author <aauthor@com.example> | |||
| 2. List @ org.example | 2. List processing at org.example | |||
| As delivered, with one Delivered-To: header field, to the list | As delivered, with one Delivered-To: header field, to the list | |||
| processing module, which will then re-submit the message for | processing module, which will then resubmit the message for | |||
| further transport to the list member "Recipient- | further transport to the list member "Recipient- | |||
| alumn@edu.example". | alumn@edu.example". | |||
| Delivered-To: list@org.example | Delivered-To: list@org.example | |||
| Received: by submit.org.example with SMTP id i17so17480689ljn.1 | Received: by submit.org.example with SMTP id i17so17480689ljn.1 | |||
| for <list@org.example> from mail.com.example; | for <list@org.example> from mail.com.example; | |||
| Mon, 25 Jan 2021 15:29:19 -0800 (PST) | Mon, 25 Jan 2021 15:29:19 -0800 (PST) | |||
| Received: by mail.com.example; Mon, 25 Jan 2021 15:29:00 -0800 (PST) | Received: by mail.com.example; Mon, 25 Jan 2021 15:29:00 -0800 (PST) | |||
| From: Ann Author <aauthor@com.example> | From: Ann Author <aauthor@com.example> | |||
| Date: Mon, 25 Jan 2021 18:29:06 -0500 | Date: Mon, 25 Jan 2021 18:29:06 -0500 | |||
| To: list@org.example | To: list@org.example | |||
| Subject: [list] Sending through a list and alias | Subject: [list] Sending through a list and alias | |||
| Sender: Ann Author <aauthor@com.example> | Sender: Ann Author <aauthor@com.example> | |||
| 3. Alias @ edu.example | 3. Alias processing at edu.example | |||
| The message, as delivered with two Delivered-To: header | The message, as delivered with two Delivered-To: header | |||
| fields, to the alias processing module, which sends the | fields, to the alias processing module, which sends the | |||
| message on to "theRecipient@example.net". | message on to "theRecipient@example.net". | |||
| Delivered-To: Recipient-alumn@edu.example | Delivered-To: Recipient-alumn@edu.example | |||
| Received: from mail.org.example | Received: from mail.org.example | |||
| by relay.edu.example; Mon, 25 Jan 2021 23:29:24 +0000 (UTC) | by relay.edu.example; Mon, 25 Jan 2021 23:29:24 +0000 (UTC) | |||
| Received: by submit.org.example; | Received: by submit.org.example; | |||
| Mon, 25 Jan 2021 23:29:21 +0000 (UTC) | Mon, 25 Jan 2021 23:29:21 +0000 (UTC) | |||
| skipping to change at page 8, line 5 ¶ | skipping to change at line 340 ¶ | |||
| Received: by submit.org.example with SMTP id i17so17480689ljn.1 | Received: by submit.org.example with SMTP id i17so17480689ljn.1 | |||
| for <list@org.example> from mail.com.example; | for <list@org.example> from mail.com.example; | |||
| Mon, 25 Jan 2021 15:29:19 -0800 (PST) | Mon, 25 Jan 2021 15:29:19 -0800 (PST) | |||
| Received: by mail.com.example; Mon, 25 Jan 2021 15:29:00 -0800 (PST) | Received: by mail.com.example; Mon, 25 Jan 2021 15:29:00 -0800 (PST) | |||
| From: Ann Author <aauthor@com.example> | From: Ann Author <aauthor@com.example> | |||
| Date: Mon, 25 Jan 2021 18:29:06 -0500 | Date: Mon, 25 Jan 2021 18:29:06 -0500 | |||
| To: list@org.example | To: list@org.example | |||
| Subject: [list] Sending through a list and alias | Subject: [list] Sending through a list and alias | |||
| Sender: list-bounces@org.example | Sender: list-bounces@org.example | |||
| 4. Delivery @ example.net | 4. Final delivery to the recipient at example.net | |||
| The message, as finally delivered with three Delivered-To: | The message, as finally delivered with three Delivered-To: | |||
| header fields, to the recipient at "theRecipient@example.net". | header fields, to the recipient at "theRecipient@example.net". | |||
| Delivered-To: theRecipient@example.net | Delivered-To: theRecipient@example.net | |||
| Received: from mail.edu.example (mail.edu.example [4.31.198.45]) | Received: from mail.edu.example (mail.edu.example [4.31.198.45]) | |||
| by relay.example.net; Mon, 25 Jan 2021 23:29:24 +0000 (UTC) | by relay.example.net; Mon, 25 Jan 2021 23:29:24 +0000 (UTC) | |||
| Delivered-To: Recipient-alumn@edu.example | Delivered-To: Recipient-alumn@edu.example | |||
| Received: from mail.org.example | Received: from mail.org.example | |||
| by relay.edu.example; Mon, 25 Jan 2021 23:29:24 +0000 (UTC) | by relay.edu.example; Mon, 25 Jan 2021 23:29:24 +0000 (UTC) | |||
| skipping to change at page 8, line 40 ¶ | skipping to change at line 375 ¶ | |||
| As with Received: header fields, the presence of a Delivered-To: | As with Received: header fields, the presence of a Delivered-To: | |||
| header field discloses handling information and, possibly, personal | header field discloses handling information and, possibly, personal | |||
| information. | information. | |||
| Security and privacy are essential, if challenging, topics for email | Security and privacy are essential, if challenging, topics for email | |||
| in general and for the handling of metadata in particular. The | in general and for the handling of metadata in particular. The | |||
| purpose of this section is to note points of potential concern, | purpose of this section is to note points of potential concern, | |||
| rather than to provide details for mitigation. The basic mechanism | rather than to provide details for mitigation. The basic mechanism | |||
| described here has a long history of use, with no history of being | described here has a long history of use, with no history of being | |||
| problematic. However the expanded use described here might create | problematic. However, the expanded use described here might create | |||
| new scenarios that are problematic. | new scenarios that are problematic. | |||
| An issue specific to this mechanism is disclosure of a sequence of | An issue specific to this mechanism is disclosure of a sequence of | |||
| addresses, applied to the same recipient, if a message goes through a | addresses, applied to the same recipient, if a message goes through a | |||
| series of recipient address replacements. The document calls for | series of recipient address replacements. This document calls for | |||
| each of these addresses to be recorded in a separate Delivered-To: | each of these addresses to be recorded in a separate Delivered-To: | |||
| field. This does not disclose addresses of other recipients, but it | field. This does not disclose addresses of other recipients, but it | |||
| does disclose a address-transformation handling path for the | does disclose an address-transformation handling path for the | |||
| recipient. | recipient. | |||
| Where this disclosure is most likely to be a concern is when a | This disclosure is most likely to be a concern when a recipient | |||
| recipient manually forwards a message and includes all of the | manually forwards a message and includes all of the original header | |||
| original header fields. This will expose, to a later recipient, any | fields. This will expose, to a later recipient, any intermediate | |||
| intermediate addresses used for getting the original message to the | addresses used for getting the original message to the original | |||
| original recipient. Such a disclosure is likely to be unintended and | recipient. Such a disclosure is likely to be unintended and might be | |||
| might be (highly) problematic. Note that a basic version of this | (highly) problematic. Note that a basic version of this unintended | |||
| unintended disclosure has long existed, by virtue of a later | disclosure has long existed, by virtue of a later recipient's seeing | |||
| recipient's seeing Received: header fields, but especially any with a | Received: header fields, but especially any with a 'for' clause. | |||
| 'for' clause. However a Delivered-To: header field sequence can | However, a Delivered-To: header field sequence can disclose | |||
| disclose significantly more recipient-specific handling detail. | significantly more recipient-specific handling detail. | |||
| An issue that is entirely implementation specific -- and therefore | An issue that is entirely implementation specific -- and therefore | |||
| out of scope to this document -- is that in some systems, a message | out of scope for this document -- is that in some systems, a message | |||
| that is for multiple (local) recipients is stored as a single, shared | that is for multiple (local) recipients is stored as a single, shared | |||
| version. Supporting Delivered-To:, while maintaining recipient | version. Supporting Delivered-To:, while maintaining recipient | |||
| privacy, creates a challenge in this case, since exposing different | privacy, creates a challenge in this case, since exposing different | |||
| recipient addresses to other recipients can be problematic. | recipient addresses to other recipients can be problematic. | |||
| 7. IANA Considerations | 7. IANA Considerations | |||
| Registration of the "Delivered-To:" header field is requested, per | IANA has registered the Delivered-To: header field as below, per | |||
| [RFC3864]: | [RFC3864] in the "Provisional Message Header Field Names" registry: | |||
| Header field name: Delivered-To | Header Field Name: Delivered-To | |||
| Applicable protocol: mail | Protocol: mail | |||
| Status: Provisional | Status: Provisional | |||
| Author/Change controller: Dave Crocker | Author/Change controller: Dave Crocker | |||
| Specification document(s): *** This document *** | Specification document(s): *** This document *** | |||
| Related information: None. | Related information: None. | |||
| 8. Experimental Goals | 8. Experimental Goals | |||
| Specific feedback is sought concerning: | Specific feedback is sought concerning: | |||
| * Technical issues in recording the Delivered-To: field into a | * Technical issues in recording the Delivered-To: field into a | |||
| message, through its entire submission/delivery sequence | message, through its entire submission/delivery sequence | |||
| * Market interest in the uses described here | * Market interest in the uses described here | |||
| * Utility for the purposes described here, or for other uses | * Utility for the purposes described here, or for other uses | |||
| So the questions to answer for this Experimental document are: | So the questions to answer for this Experimental RFC are: | |||
| * Is there demonstrated interest by MSA/MTA/MDA developers? | * Is there demonstrated interest by MSA/MTA/MDA (Message Submission | |||
| Agent / Message Transfer Agent / Message Delivery Agent) | ||||
| developers? | ||||
| * If the capability is implemented and the header field generated, | * If the capability is implemented and the header field generated, | |||
| is it used by operators or MUAs? | is it used by operators or MUAs? | |||
| * Does the presence of the header field create any operational | * Does the presence of the header field create any operational | |||
| problems? | problems? | |||
| * Does the presence of the header field demonstrate additional | * Does the presence of the header field demonstrate additional | |||
| security issues? | security issues? | |||
| * What specific changes to the document are needed? | * What specific changes to the document are needed? | |||
| * What other comments will aid in use of this mechanism? | * What other comments will aid in use of this mechanism? | |||
| Please send comments to ietf-smtp@ietf.org. | Please send comments to ietf-smtp@ietf.org. | |||
| 9. References | 9. References | |||
| 9.1. Normative References | 9.1. Normative References | |||
| [ABNF] Crocker, D. and P. Overell, "Augmented BNF for Syntax | [ABNF] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | |||
| Specifications: ABNF", RFC 5234, January 2008, | Specifications: ABNF", STD 68, RFC 5234, | |||
| <https://www.rfc-editor.org/rfc/rfc5234>. | DOI 10.17487/RFC5234, January 2008, | |||
| <https://www.rfc-editor.org/info/rfc5234>. | ||||
| [Mail-Arch] | [Mail-Arch] | |||
| Crocker, D., "Internet Mail Architecture", RFC 5598, July | Crocker, D., "Internet Mail Architecture", RFC 5598, | |||
| 2009, <https://www.rfc-editor.org/rfc/rfc5598>. | DOI 10.17487/RFC5598, July 2009, | |||
| <https://www.rfc-editor.org/info/rfc5598>. | ||||
| [Mail-Fmt] Resnick, P., Ed., "Internet Message Format", RFC 5322, | [Mail-Fmt] Resnick, P., Ed., "Internet Message Format", RFC 5322, | |||
| October 2008, <https://www.rfc-editor.org/rfc/rfc5322>. | DOI 10.17487/RFC5322, October 2008, | |||
| <https://www.rfc-editor.org/info/rfc5322>. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration | [RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration | |||
| Procedures for Message Header Fields", BCP 90, RFC 3864, | Procedures for Message Header Fields", BCP 90, RFC 3864, | |||
| DOI 10.17487/RFC3864, September 2004, | DOI 10.17487/RFC3864, September 2004, | |||
| <https://www.rfc-editor.org/info/rfc3864>. | <https://www.rfc-editor.org/info/rfc3864>. | |||
| skipping to change at page 11, line 11 ¶ | skipping to change at line 491 ¶ | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [SMTP] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321, | [SMTP] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321, | |||
| DOI 10.17487/RFC5321, October 2008, | DOI 10.17487/RFC5321, October 2008, | |||
| <https://www.rfc-editor.org/info/rfc5321>. | <https://www.rfc-editor.org/info/rfc5321>. | |||
| 9.2. Informative References | 9.2. Informative References | |||
| [Prior] Dukhovni, V. and J. J. Levine, "The Delivered-To Message | [Prior] Dukhovni, V. and J. Levine, "The Delivered-To Message | |||
| Header Field", I-D draft-duklev-deliveredto-00, 16 August | Header Field", Work in Progress, Internet-Draft, draft- | |||
| 2021. | duklev-deliveredto-01, 6 February 2022, | |||
| <https://datatracker.ietf.org/doc/html/draft-duklev- | ||||
| deliveredto-01>. | ||||
| Appendix A. Acknowledgements | Acknowledgements | |||
| Even a simple, narrow specification can elicit a remarkable range and | Even a simple, narrow specification can elicit a remarkable range and | |||
| intensity of debate. In spite of the current document's being a case | intensity of debate. In spite of the current document's being a case | |||
| of that challenge, useful discussion has taken place, first in the | of that challenge, useful discussion has taken place, first in the | |||
| IETF's emailcore working group mailing list, and then on the long- | IETF's emailcore working group mailing list, and then on the long- | |||
| standing ietf-smtp mailing list. | standing ietf-smtp mailing list. | |||
| Helpful information and suggestions were provided by: Anonymous, | Helpful information and suggestions were provided by Anonymous, | |||
| Richard Clayton, Viktor Dukhovni, Adrian Farrel, Ned Freed, John | Stéphane Bortzmeyer, Richard Clayton, Viktor Dukhovni, Adrian Farrel, | |||
| Klensin, Barry Leiba, Brandon Long, George Michaelson, Michael | Ned Freed, John Klensin, Barry Leiba, Brandon Long, George | |||
| Peddemors, Phil Pennock, Pete Resnick, Sam Varshavchik, Alessandro | Michaelson, Michael Peddemors, Phil Pennock, Pete Resnick, Sam | |||
| Vesely, Tim Wicinski. | Varshavchik, Alessandro Vesely, and Tim Wicinski. | |||
| Author's Address | Author's Address | |||
| Dave Crocker (editor) | Dave Crocker (editor) | |||
| Brandenburg InternetWorking | Brandenburg InternetWorking | |||
| Email: dcrocker@bbiw.net | Email: dcrocker@bbiw.net | |||
| End of changes. 59 change blocks. | ||||
| 154 lines changed or deleted | 163 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/ | ||||