draft-ietf-eai-popimap-downgrade-03.txt   draft-ietf-eai-popimap-downgrade-04.txt 
Email Address Internationalization K. Fujiwara Email Address Internationalization K. Fujiwara
(EAI) JPRS (EAI) JPRS
Internet-Draft Oct 31, 2011 Internet-Draft Feb 27, 2012
Updates: 5322 (if approved) Updates: 5322 (if approved)
Intended status: Standards Track Intended status: Standards Track
Expires: May 3, 2012 Expires: August 30, 2012
Post-delivery Message Downgrading for Internationalized Email Messages Post-delivery Message Downgrading for Internationalized Email Messages
draft-ietf-eai-popimap-downgrade-03.txt draft-ietf-eai-popimap-downgrade-04.txt
Abstract Abstract
The Email Address Internationalization (UTF8SMTP) extension allows The Email Address Internationalization (SMTPUTF8) extension allows
UTF-8 characters in mail header fields. POP and IMAP servers support UTF-8 characters in mail header fields. Upgraded POP and IMAP
internationalized email messages. If a POP/IMAP client does not servers support internationalized email messages. If a POP/IMAP
support Email Address Internationalization, POP/IMAP servers cannot client does not support Email Address Internationalization, POP/IMAP
send Internationalized Email Headers to the client and cannot remove servers cannot send Internationalized Email Headers to the client and
the message. To avoid the situation, this document describes a cannot remove the message. To avoid the situation, this document
conversion mechanism for internationalized Email messages to be describes a conversion mechanism for internationalized Email messages
traditional message format. to be traditional message format. The purpose of post-delivery
message downgrading is to enable POP/IMAP servers to deliver
internationalized messages to traditional POP/IMAP clients. In the
process, message elements requiring internationalized treatment can
be removed or recoded and receivers can know they received messages
containing such elements even if they cannot receive the elements
themselves.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
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."
This Internet-Draft will expire on May 3, 2012. This Internet-Draft will expire on August 30, 2012.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2012 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 Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Problem statement . . . . . . . . . . . . . . . . . . . . 4
1.2. Possible solutions . . . . . . . . . . . . . . . . . . . . 4
1.3. Approach taken in this specification . . . . . . . . . . . 4
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Updating RFC 5322 . . . . . . . . . . . . . . . . . . . . . . 5 3. Updating RFC 5322 . . . . . . . . . . . . . . . . . . . . . . 6
4. New Header Fields Definition . . . . . . . . . . . . . . . . . 6 4. New Header Fields Definition . . . . . . . . . . . . . . . . . 7
4.1. Preservation Header Fields . . . . . . . . . . . . . . . . 6 5. Email Header Fields Downgrading . . . . . . . . . . . . . . . 8
5. Email Header Fields Downgrading . . . . . . . . . . . . . . . 7 5.1. Downgrading Method for Each ABNF Element . . . . . . . . . 8
5.1. Downgrading Method for Each ABNF Element . . . . . . . . . 7 5.1.1. RECEIVED Downgrading . . . . . . . . . . . . . . . . . 8
5.1.1. RECEIVED Downgrading . . . . . . . . . . . . . . . . . 7 5.1.2. UNSTRUCTURED Downgrading . . . . . . . . . . . . . . . 8
5.1.2. UNSTRUCTURED Downgrading . . . . . . . . . . . . . . . 7 5.1.3. WORD Downgrading . . . . . . . . . . . . . . . . . . . 8
5.1.3. WORD Downgrading . . . . . . . . . . . . . . . . . . . 7 5.1.4. COMMENT Downgrading . . . . . . . . . . . . . . . . . 8
5.1.4. COMMENT Downgrading . . . . . . . . . . . . . . . . . 7 5.1.5. MIME-VALUE Downgrading . . . . . . . . . . . . . . . . 9
5.1.5. MIME-VALUE Downgrading . . . . . . . . . . . . . . . . 7 5.1.6. DISPLAY-NAME Downgrading . . . . . . . . . . . . . . . 9
5.1.6. DISPLAY-NAME Downgrading . . . . . . . . . . . . . . . 8 5.1.7. GROUP Downgrading . . . . . . . . . . . . . . . . . . 9
5.1.7. GROUP Downgrading . . . . . . . . . . . . . . . . . . 8 5.1.8. MAILBOX Downgrading . . . . . . . . . . . . . . . . . 9
5.1.8. MAILBOX Downgrading . . . . . . . . . . . . . . . . . 8 5.1.9. ENCAPSULATION Downgrading . . . . . . . . . . . . . . 10
5.1.9. ENCAPSULATION Downgrading . . . . . . . . . . . . . . 9 5.1.10. TYPED-ADDRESS Downgrading . . . . . . . . . . . . . . 10
5.1.10. TYPED-ADDRESS Downgrading . . . . . . . . . . . . . . 9 5.2. Downgrading Method for Each Header Field . . . . . . . . . 10
5.2. Downgrading Method for Each Header Field . . . . . . . . . 9 5.2.1. Address Header Fields That Contain <address>s . . . . 10
5.2.1. Address Header Fields That Contain <address>s . . . . 9 5.2.2. Address Header Fields with Typed Addresses . . . . . . 11
5.2.2. Address Header Fields with Typed Addresses . . . . . . 10 5.2.3. Downgrading Non-ASCII in Comments . . . . . . . . . . 11
5.2.3. Downgrading Non-ASCII in Comments . . . . . . . . . . 10 5.2.4. Message-ID Header Fields . . . . . . . . . . . . . . . 11
5.2.4. Message-ID Header Fields . . . . . . . . . . . . . . . 10 5.2.5. Received Header Field . . . . . . . . . . . . . . . . 12
5.2.5. Received Header Field . . . . . . . . . . . . . . . . 11 5.2.6. MIME Content Header Fields . . . . . . . . . . . . . . 12
5.2.6. MIME Content Header Fields . . . . . . . . . . . . . . 11 5.2.7. Non-ASCII in <unstructured> . . . . . . . . . . . . . 12
5.2.7. Non-ASCII in <unstructured> . . . . . . . . . . . . . 11 5.2.8. Non-ASCII in <phrase> . . . . . . . . . . . . . . . . 12
5.2.8. Non-ASCII in <phrase> . . . . . . . . . . . . . . . . 11 5.2.9. Other Header Fields . . . . . . . . . . . . . . . . . 12
5.2.9. Other Header Fields . . . . . . . . . . . . . . . . . 11 6. MIME Body-Part Header Field Downgrading . . . . . . . . . . . 13
6. MIME Body-Part Header Field Downgrading . . . . . . . . . . . 12 7. Security Considerations . . . . . . . . . . . . . . . . . . . 13
7. Security Considerations . . . . . . . . . . . . . . . . . . . 12 8. Implementation Notes . . . . . . . . . . . . . . . . . . . . . 14
8. Implementation Notes . . . . . . . . . . . . . . . . . . . . . 13 8.1. RFC 2047 Encoding . . . . . . . . . . . . . . . . . . . . 14
8.1. RFC 2047 Encoding . . . . . . . . . . . . . . . . . . . . 13 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 16
9.1. Statement about Downgraded- registration . . . . . . . . . 14 11. Change History . . . . . . . . . . . . . . . . . . . . . . . . 16
9.2. Existing Downgraded- registrations . . . . . . . . . . . . 14 11.1. Version 00 . . . . . . . . . . . . . . . . . . . . . . . . 16
9.3. Additional header fields . . . . . . . . . . . . . . . . . 14 11.2. Version 01 . . . . . . . . . . . . . . . . . . . . . . . . 16
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 15
11. Change History . . . . . . . . . . . . . . . . . . . . . . . . 15
11.1. Version 00 . . . . . . . . . . . . . . . . . . . . . . . . 15
11.2. Version 01 . . . . . . . . . . . . . . . . . . . . . . . . 15
11.3. Version 02 . . . . . . . . . . . . . . . . . . . . . . . . 16 11.3. Version 02 . . . . . . . . . . . . . . . . . . . . . . . . 16
11.4. Version 03 . . . . . . . . . . . . . . . . . . . . . . . . 16 11.4. Version 03 . . . . . . . . . . . . . . . . . . . . . . . . 16
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 16 11.5. Version 04 . . . . . . . . . . . . . . . . . . . . . . . . 17
12.1. Normative References . . . . . . . . . . . . . . . . . . . 16 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 17
12.2. Informative References . . . . . . . . . . . . . . . . . . 17 12.1. Normative References . . . . . . . . . . . . . . . . . . . 17
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 17 12.2. Informative References . . . . . . . . . . . . . . . . . . 18
A.1. Downgrading Example . . . . . . . . . . . . . . . . . . . 17 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 18
A.1. Downgrading Example . . . . . . . . . . . . . . . . . . . 18
1. Introduction 1. Introduction
Traditional mail systems, which are defined by [RFC5322], allow ASCII 1.1. Problem statement
characters in mail header field values. The UTF8SMTP extension
([I-D.ietf-eai-frmwrk-4952bis] and [I-D.ietf-eai-rfc5335bis] allows Traditional (legacy) mail systems, which are defined by [RFC5322],
UTF-8 characters in mail header field values. allow only ASCII characters in mail header field values. The
SMTPUTF8 extension ([RFC6530] and [RFC6532] allows UTF-8 characters
in those mail header fields.
If a header field contains non-ASCII characters, POP/IMAP servers If a header field contains non-ASCII characters, POP/IMAP servers
cannot send Internationalized Email Headers to the client and cannot cannot send Internationalized Email Headers to legacy clients and,
remove the message. This message downgrading mechanism converts mail because they have no obvious or standardized way to explain what is
header fields to an all-ASCII representation. The POP/IMAP servers going on to those clients, cannot even safely discard the message.
can use the downgrading mechanism and send the Internationalized
Email message as a traditional form.
[I-D.ietf-eai-rfc5335bis] allows UTF-8 characters to be used in mail 1.2. Possible solutions
header fields and MIME header fields. The message downgrading
mechanism specified here describes the conversion method from the
internationalized email messages that are defined in
[I-D.ietf-eai-frmwrk-4952bis], and [I-D.ietf-eai-rfc5335bis] to the
traditional email messages defined in [RFC5322].
There is no good way to convert "From:" and "Sender:" header fields, Discussions leading to this specification concluded that there are
the draft need to update [RFC5322] to allow empty "From:" and four plausible approaches to the problem, with the preferred one
"Sender:" header fields and it is described in Section 3. depending on the particular circumstances and relationship among the
delivery SMTP server, the mail store, the POP or IMAP server, and the
users and their MUA clients:
Message Downgrading may be implemented in POP server and IMAP server 1. If the delivery MTA has sufficient knowledge about the POP and/or
only. IMAP servers and clients being used, the message may be rejected
as undeliverable.
This document tries to define the message downgrading process 2. The message may be downgraded by the POP or IMAP server, in a way
clearly. that preserves maximum information at the expense of some
complexity.
Downgrading consists of the following four parts: 3. Some intermediate downgrading may be applied that balances more
information loss against lower complexity and greater ease of
implementation.
o Updating RFC 5322 4. The POP or IMAP server may fabricate a message whose intent is to
notify the client that an internationalized message is waiting
but cannot be delivered until an upgraded client is available.
1.3. Approach taken in this specification
This specification describes the second of those options. It is
worth noticing that, at least in the general case, none of these
options preserve sufficient information to guarantee that it is
possible to reply to an incoming message without loss of information,
so the choice may be considered to be among "least bad" options.
This message downgrading mechanism converts mail header fields to an
all-ASCII representation. The POP/IMAP servers can use the
downgrading mechanism and send the Internationalized Email message as
a traditional form. Receivers can know they received some
internationalized messages or some unknown/broken messages.
[RFC6532] allows UTF-8 characters to be used in mail header fields
and MIME header fields. The message downgrading mechanism specified
here describes the conversion method from the internationalized email
messages that are defined in [RFC6530], and [RFC6532] to the
traditional email messages defined in [RFC5322].
There is no good way to convert "From:" and "Sender:" header fields,
this document updates [RFC5322] by redefining "From:" and "Sender:"
header fields in Section 3.
This document provides a precise definition of the minimum-
information-loss message downgrading process.
Downgrading consists of the following three parts:
o New header field definitions o New header field definitions
o Email header field downgrading o Email header field downgrading
o MIME header field downgrading o MIME header field downgrading
In Section 4 of this document, header fields starting with In Section 4 of this document, header fields starting with
"Downgraded-" are introduced. They preserve the original header "Downgraded-" are introduced. They preserve the information that
fields. appeared in the original header fields.
Email header field downgrading is described in Section 5. It Email header field downgrading is described in Section 5. It
generates ASCII-only header fields. generates ASCII-only header fields.
MIME header fields are expanded in [I-D.ietf-eai-rfc5335bis]. MIME MIME header fields are expanded in [RFC6532]. MIME header field
header field downgrading is described in Section 6. It generates downgrading is described in Section 6. It generates ASCII-only MIME
ASCII-only MIME header fields. header fields.
Displaying downgraded messages that originally contained Displaying downgraded messages that originally contained
internationalized header fields is out of scope of this document. A internationalized header fields is out of scope of this document. A
POP/IMAP client which does not support UTF8 extension does not know POP/IMAP client which does not support UTF8 extension does not know
internationalized message format described in internationalized message format described in [RFC6532].
[I-D.ietf-eai-rfc5335bis].
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
All specialized terms used in this specification are defined in the All specialized terms used in this specification are defined in the
Email Address Internationalization (EAI) overview Overview and Framework for Internationalized Email [RFC6530], in the
[I-D.ietf-eai-frmwrk-4952bis], in the mail message specifications mail message specifications [RFC5322], or in the MIME documents
[RFC5322], or in the MIME documents [RFC2045] [RFC2047] [RFC2183] [RFC2045] [RFC2047] [RFC2183] [RFC2231]. The terms "ASCII address",
[RFC2231]. The terms "ASCII address", "internationalized email "internationalized email address", "non-ASCII address", "i18mail
address", "non-ASCII address", "i18mail address", "UTF8SMTP", address", "SMTPUTF8", "message", and "mailing list" are used with the
"message", and "mailing list" are used with the definitions from definitions from [RFC6530].
[I-D.ietf-eai-frmwrk-4952bis].
This document depends on [I-D.ietf-eai-rfc5335bis]. Key words used This document depends on [RFC6532]. Key words used in those
in those documents are used in this document, too. documents are used in this document, too.
The term "non-ASCII" refers to a UTF-8 string that contains at least The term "non-ASCII" refers to a UTF-8 string that contains at least
one non-ASCII character. one non-ASCII character.
A "UTF8SMTP message" is an email message expanded by A "SMTPUTF8 message" is an email message expanded by [RFC6532].
[I-D.ietf-eai-rfc5335bis].
3. Updating RFC 5322 3. Updating RFC 5322
"From:" header field or "Sender:" header field may contain non-ASCII "From:" header field or "Sender:" header field may contain non-ASCII
addresses in internationalized Email messages. These non-ASCII addresses in internationalized Email messages. These non-ASCII
addresses are not allowed in [RFC5322]. The draft proposes that the addresses are not allowed in [RFC5322]. The draft proposes that the
pop/imap downgrading uses <group> syntax and encodes non-ASCII pop/imap downgrading uses <group> syntax and encodes non-ASCII
addresses into <display-name> with empty <group-list> described in addresses into <display-name> with empty <group-list> described in
Section 5. Section 5.
This specification redefines "From:", "Sender:", "Resent-From:" and This specification redefines "From:", "Sender:", "Resent-From:" and
"Resent-Sender:" header fields defined in Section 3.6.2 and 3.6.6 of "Resent-Sender:" header fields defined in Section 3.6.2 and 3.6.6 of
[RFC5322] to allow <group> in the header fields. [RFC5322] to allow <group> in the header fields.
from = "From:" address-list CRLF from = "From:" address-list CRLF
resent-from = "Resent-From:" address-list CRLF resent-from = "Resent-From:" address-list CRLF
sender = "Sender:" address CRLF sender = "Sender:" address CRLF
resent-sender = "Resent-Sender:" address CRLF resent-sender = "Resent-Sender:" address CRLF
4. New Header Fields Definition This adds group syntax to "From" and "Sender" that was previously
allowed only in destination fields such as "To" and "cc". It is
anticipated that when existing implementations encounter a downgraded
field from this set, many will tolerate the appearance of a group,
even though [RFC5322] does not permit it. Implementations that do
not tolerate it will fail in unpredictable ways, and they might
refuse to process such messages.
New header fields starting with "Downgraded-" are defined here to [[ Notes in Draft: If this update is rejected, one possible solution
preserve those mail header field values that contain UTF-8 is to rewrite each <addr-spec> element in "From" and "Sender" header
characters. During downgrading, one new "Downgraded-" header field fields as
is added for each mail header field that cannot be passed as-is to a ENCODED-WORD "<" NO_EXISTING_ADDRESS ">"
POP/IMAP client that does not support UTF8 extension. The original
mail header field is removed. Only those mail header fields that
contain non-ASCII characters are affected. The result of this
process is a message that is compliant with existing email
specifications [RFC5322]. The original internationalized information
can be retrieved by examining the "Downgraded-" header fields that
were added.
4.1. Preservation Header Fields where the <ENCODED-WORD> is the original <addr-spec> encoded
according to [RFC2047] and NO_EXISTING_ADDRESS is an ASCII email
address which does not exist, should, as illustrated in the example
below, always generate an error and is specified by the administrator
of the POP3 or IMAP server.
New preservation header fields are defined to preserve information For example, if the local-part of the "From:" address were the
that appeared in non-ASCII text in header fields of the incoming Russian (in Cyrillic) equivalent of Ivan, with domain-part
message. The values of the new fields holds the original header "foo.example.net" and the IMAP server being used by the recipient was
field value in encoded form. The revised header field syntax is "imap.example.com", the encoded word from suggested in this note
specified as follows: might appear as:
fields =/ known-downgraded-headers ":" From: =?UTF-8?Q?=d0=b8=d0=b2=d0=b0=d0=bd@foo.example.net?=
unstructured CRLF <invalid-i18n-address@imap.example.com>
known-downgraded-headers = "Downgraded-" original-headers That would lead to immediate rejection if a user attempted to reply
uncritically to the message.
original-headers = "Message-Id" / "Resent-Message-Id" / 4. New Header Fields Definition
"In-Reply-To:" / "References:" /
"Original-Recipient" / "Final-Recipient" New header fields are defined to preserve information that appeared
in non-ASCII text in header fields of the incoming message. The
values of the new fields holds the original header field value in
encoded form. The revised header field syntax is specified as
follows:
fields =/ downgraded
downgraded = "Downgraded-Message-Id:" unstructured CRLF /
"Downgraded-Resent-Message-Id:" unstructured CRLF /
"Downgraded-In-Reply-To:" unstructured CRLF /
"Downgraded-References:" unstructured CRLF /
"Downgraded-Original-Recipient:" unstructured CRLF /
"Downgraded-Final-Recipient:" unstructured CRLF
To preserve a header field in a "Downgraded-" header field: To preserve a header field in a "Downgraded-" header field:
1. Generate a new "Downgraded-" header field whose value is the 1. Generate a new header field.
original header field value.
2. Treat the generated header field content as if it were * The field name is a concatenation of "Downgraded-" and the
original field name.
* The initial new field value is the original header field
value.
2. Treat the initial new header field value as if it were
unstructured, and then apply [RFC2047] encoding with charset unstructured, and then apply [RFC2047] encoding with charset
UTF-8 as necessary so that the result is ASCII. UTF-8 as necessary so that the resulting new header field value
is completely in ASCII.
3. Remove the original header field. 3. Remove the original header field.
5. Email Header Fields Downgrading 5. Email Header Fields Downgrading
This section defines the conversion method to ASCII for each header This section defines the conversion method to ASCII for each header
field that may contain non-ASCII characters. field that may contain non-ASCII characters.
[I-D.ietf-eai-rfc5335bis] expands "Received:" header fields; [RFC6532] expands "Received:" header fields; [RFC5322] describes ABNF
[RFC5322] describes ABNF elements <mailbox>, <word>, <comment>, elements <mailbox>, <word>, <comment>, <unstructured>; [RFC2045]
<unstructured>; [RFC2045] describes ABNF element <value>. describes ABNF element <value>.
5.1. Downgrading Method for Each ABNF Element 5.1. Downgrading Method for Each ABNF Element
Header field downgrading is defined below for each ABNF element. Header field downgrading is defined below for each ABNF element.
Converting the header field terminates when no non-ASCII characters Converting the header field terminates when no non-ASCII characters
remain in the header field. remain in the header field.
5.1.1. RECEIVED Downgrading 5.1.1. RECEIVED Downgrading
If the header field name is "Received:" and the FOR clause contains a If the header field name is "Received:" and the FOR clause contains a
skipping to change at page 8, line 22 skipping to change at page 9, line 31
5.1.7. GROUP Downgrading 5.1.7. GROUP Downgrading
<group> is defined in Section 3.4 of [RFC5322]. The <group> elements <group> is defined in Section 3.4 of [RFC5322]. The <group> elements
may contain <mailbox>s which contain non-ASCII addresses. may contain <mailbox>s which contain non-ASCII addresses.
If the header field has any <group> elements that contain <mailbox> If the header field has any <group> elements that contain <mailbox>
elements, and those <mailbox> elements in turn contain non-ASCII elements, and those <mailbox> elements in turn contain non-ASCII
addresses, rewrite each <group> element as addresses, rewrite each <group> element as
"Internationalized address removed" display-name ENCODED_WORD ":;" display-name ENCODED_WORD " :;"
where the <ENCODED_WORD> is the original <group-list> encoded where the <ENCODED_WORD> is the original <group-list> encoded
according to [RFC2047]. according to [RFC2047].
5.1.8. MAILBOX Downgrading 5.1.8. MAILBOX Downgrading
The <mailbox> elements have no equivalent format for non-ASCII The <mailbox> elements have no equivalent format for non-ASCII
addresses. If the header field has any <mailbox> elements that addresses. If the header field has any <mailbox> elements that
contain non-ASCII characters in their <addr-spec> element, rewrite contain non-ASCII characters in their <addr-spec> element, rewrite
each <addr-spec> element to ASCII-only format. The <addr-spec> each <addr-spec> element to ASCII-only format. The <addr-spec>
element that contains non-ASCII characters may appear in two forms element that contains non-ASCII characters may appear in two forms
as: as:
"<" addr-spec ">" "<" addr-spec ">"
addr-spec addr-spec
Rewrite both as: Rewrite both as:
"Internationalized address " ENCODED-WORD " removed:;" ENCODED-WORD " :;"
where the <ENCODED-WORD> is the original <addr-spec> encoded where the <ENCODED-WORD> is the original <addr-spec> encoded
according to [RFC2047]. according to [RFC2047].
5.1.9. ENCAPSULATION Downgrading 5.1.9. ENCAPSULATION Downgrading
Encapsulate the header field in a "Downgraded-" header field as Encapsulate the header field in a "Downgraded-" header field as
described in Section 4 as a last resort. described in Section 4 as a last resort.
Applying this procedure to "Received:" header field is prohibited. Applying this procedure to "Received:" header field is prohibited.
ENCAPSULATION Downgrading is allowed for "Message-ID", ENCAPSULATION Downgrading is allowed for "Message-ID",
"In-Reply-To:", "References:", "Original-Recipient" and "Final- "In-Reply-To:", "References:", "Original-Recipient" and "Final-
Recipient" header fields. Recipient" header fields.
5.1.10. TYPED-ADDRESS Downgrading 5.1.10. TYPED-ADDRESS Downgrading
If the header field contains <utf-8-type-addr> and the <utf-8-type- If the header field contains <utf-8-type-addr> and the <utf-8-type-
addr> contains raw non-ASCII characters, it is in utf-8-address form. addr> contains raw non-ASCII characters, it is in utf-8-address form.
Convert it to utf-8-addr-xtext form. Those forms are described in Convert it to utf-8-addr-xtext form. Those forms are described in
[I-D.ietf-eai-rfc5337bis-dsn]. COMMENT downgrading is also performed [RFC6533]. COMMENT downgrading is also performed in this case. If
in this case. If the address type is unrecognized and the header the address type is unrecognized and the header field contains non-
field contains non-ASCII characters, then fall back to using ASCII characters, then fall back to using ENCAPSULATION downgrading
ENCAPSULATION downgrading on the entire header field. on the entire header field.
5.2. Downgrading Method for Each Header Field 5.2. Downgrading Method for Each Header Field
Header fields are listed in [RFC4021]. This section describes the Header fields are listed in [RFC4021]. This section describes the
downgrading method for each header field. downgrading method for each header field.
If the whole mail header field does not contain non-ASCII characters, If the whole mail header field does not contain non-ASCII characters,
email header field downgrading is not required. Each header field's email header field downgrading is not required. Each header field's
downgrading method is described below. downgrading method is described below.
skipping to change at page 12, line 8 skipping to change at page 13, line 13
downgrading algorithm other than UNSTRUCTURED is applicable, that downgrading algorithm other than UNSTRUCTURED is applicable, that
software SHOULD use that algorithm; UNSTRUCTURED downgrading is used software SHOULD use that algorithm; UNSTRUCTURED downgrading is used
as a last resort. as a last resort.
Mailing list header fields (those that start in "List-") are part of Mailing list header fields (those that start in "List-") are part of
this category. this category.
6. MIME Body-Part Header Field Downgrading 6. MIME Body-Part Header Field Downgrading
MIME body-part header fields may contain non-ASCII characters MIME body-part header fields may contain non-ASCII characters
[I-D.ietf-eai-rfc5335bis]. This section defines the conversion [RFC6532]. This section defines the conversion method to ASCII-only
method to ASCII-only header fields for each MIME header field that header fields for each MIME header field that contains non-ASCII
contains non-ASCII characters. Parse the message body's MIME characters. Parse the message body's MIME structure at all levels
structure at all levels and check each MIME header field to see and check each MIME header field to see whether it contains non-ASCII
whether it contains non-ASCII characters. If the header field characters. If the header field contains non-ASCII characters in the
contains non-ASCII characters in the header field value, the header header field value, the header field is a target of the MIME body-
field is a target of the MIME body-part header field's downgrading. part header field's downgrading. Each MIME header field's
Each MIME header field's downgrading method is described below. downgrading method is described below. COMMENT downgrading, MIME-
COMMENT downgrading, MIME-VALUE downgrading, and UNSTRUCTURED VALUE downgrading, and UNSTRUCTURED downgrading are described in
downgrading are described in Section 5. Section 5.
Content-ID: Content-ID:
The "Content-ID:" header field does not contain non-ASCII The "Content-ID:" header field does not contain non-ASCII
characters except in comments. If the header field contains UTF-8 characters except in comments. If the header field contains UTF-8
characters in comments, perform COMMENT downgrading. characters in comments, perform COMMENT downgrading.
Content-Type: Content-Type:
Content-Disposition: Content-Disposition:
Perform MIME-VALUE downgrading and COMMENT downgrading. Perform MIME-VALUE downgrading and COMMENT downgrading.
Content-Description: Perform UNSTRUCTURED downgrading. Content-Description: Perform UNSTRUCTURED downgrading.
7. Security Considerations 7. Security Considerations
Existing clients do not know new From: and Sender: header fields The purpose of post-delivery message downgrading is to allow POP/IMAP
syntax updated by Section 3 and may get wrong when they confront servers to deliver internationalized messages to traditional POP/IMAP
<group> syntax in From: and Sender: fields. clients and permit them to work with those messages. Users who
receive such messages can know that they were internationalized. It
does not permit receivers to read the messages in their original form
and, in general, will not permit generating replies, at least without
significant user intervention.
This specification is designed so that MUAs that receive converted
messages may be traditional and SMTPUTF8-unaware. The specification
assumes that such MUAs have no special provisions for either
"Downgraded-" header fields or the new syntax of From and Sender
header fields described in Section 3.
A downgraded message's header fields contain ASCII characters only. A downgraded message's header fields contain ASCII characters only.
But they still contain MIME-encapsulated header fields that contain But they still contain MIME-encapsulated header fields that contain
non-ASCII UTF-8 characters. Furthermore, the body part may contain non-ASCII UTF-8 characters. Furthermore, the body part may contain
UTF-8 characters. Implementations parsing Internet messages need to UTF-8 characters. Implementations parsing Internet messages need to
accept UTF-8 body parts and UTF-8 header fields that are MIME- accept UTF-8 body parts and UTF-8 header fields that are MIME-
encoded. Thus, this document inherits the security considerations of encoded. Thus, this document inherits the security considerations of
MIME-encoded header fields ([RFC2047] and [RFC3629]). MIME-encoded header fields ([RFC2047] and [RFC3629]).
Rewriting header fields increases the opportunities for undetected Rewriting header fields increases the opportunities for undetected
spoofing by malicious senders. However, rewritten header fields are spoofing by malicious senders. However, the rewritten header field
preserved into Downgraded-* header fields, and parsing Downgraded-* values are preserved in equivalent MIME form or in newly defined
header fields enables the detection of spoofing caused by header fields which traditional MUAs do not care.
downgrading.
The techniques described here invalidate methods that depend on The techniques described here invalidate methods that depend on
digital signatures over any part of the message, which includes the digital signatures over any part of the message, which includes the
top-level header fields and body-part header fields. Depending on top-level header fields and body-part header fields. Depending on
the specific message being downgraded, the following techniques are the specific message being downgraded, at least the following
likely to break: DomainKeys Identified Mail (DKIM), and possibly techniques are likely to break: DomainKeys Identified Mail (DKIM),
S/MIME and Pretty Good Privacy (PGP). The two obvious mitigations and possibly S/MIME and Pretty Good Privacy (PGP). Receivers may
are to stick to 7-bit transport when using these techniques (as most/ know they need to update their MUAs, or they don't care.
all of them presently require) or to make sure to have UTF8SMTP end-
to-end when needed.
While information in any email header field should usually be treated While information in any email header field should usually be treated
with some suspicion, current email systems commonly employ various with some suspicion, current email systems commonly employ various
mechanisms and protocols to make the information more trustworthy. mechanisms and protocols to make the information more trustworthy.
Currently, information in the new Downgraded-* header fields is Information in the new Downgraded-* header fields is not inspected by
usually not inspected by these mechanisms, and may be even less MUAs, and may be even less trustworthy than the traditional header
trustworthy than the traditional header fields. Note that the fields. Note that the Downgraded-* header fields could have been
Downgraded-* header fields could have been inserted with malicious inserted with malicious intent (and with content unrelated to the
intent (and with content unrelated to the traditional header fields). traditional header fields), however traditional MUAs do not parse
Downgraded-* header fields.
See the "Security Considerations" section in In addition, if an Authentication-Results header field [RFC5451] is
[I-D.ietf-eai-frmwrk-4952bis] for more discussion. present, traditional MUAs may treat that the digital signatures are
valid.
See the "Security Considerations" section in [RFC6530] for more
discussion.
8. Implementation Notes 8. Implementation Notes
8.1. RFC 2047 Encoding 8.1. RFC 2047 Encoding
While [RFC2047] has a specific algorithm to deal with whitespace in While [RFC2047] has a specific algorithm to deal with whitespace in
adjacent encoded words, there are a number of deployed adjacent encoded words, there are a number of deployed
implementations that fail to implement the algorithm correctly. As a implementations that fail to implement the algorithm correctly. As a
result, whitespace behavior is somewhat unpredictable in practice result, whitespace behavior is somewhat unpredictable in practice
when multiple encoded words are used. While RFC 5322 states that when multiple encoded words are used. While RFC 5322 states that
skipping to change at page 13, line 47 skipping to change at page 15, line 17
mechanism to limit line length to 78 characters. mechanism to limit line length to 78 characters.
9. IANA Considerations 9. IANA Considerations
[[RFC Editor: Please change "should now be" and "should be" to "have [[RFC Editor: Please change "should now be" and "should be" to "have
been" when the IANA actions are complete.]] been" when the IANA actions are complete.]]
[[ Notes in draft: this section is not finished, to be reviewed with [[ Notes in draft: this section is not finished, to be reviewed with
IANA. ]] IANA. ]]
Following instructions in the now-obsolete [RFC5504], IANA has made a [RFC5504] registered many "Downgraded-" header fields and requested
series of entries in the the Permanent Message Header Field registry. that 'IANA will refuse registration of all field names that start
Those registrations should now be changed as follows: with "Downgraded-", to avoid possible conflict with the procedure for
unknown header fields' preservation described in Section 3.3 of
9.1. Statement about Downgraded- registration [RFC5504].' However [RFC6530] obsoleted [RFC5504] and this document
does not use all "Downgraded-" header fields registered by [RFC5504].
The statement about refusing any "Downgraded-" registrations should
be updated to refer to this document and to provide for registering
such fields as specified in Section 9.3.
[[ Note in draft: The restriction may become useless if unknown
header fields may be treated as unstructured. ]]
9.2. Existing Downgraded- registrations
Individual existing registrations for
Downgraded-Bcc
Downgraded-Cc
Downgraded-Disposition-Notification-To
Downgraded-From
Downgraded-Mail-From
Downgraded-Rcpt-To
Downgraded-Reply-To
Downgraded-Resent-Bcc
Downgraded-Resent-Cc
Downgraded-Resent-From
Downgraded-Resent-Reply-To
Downgraded-Resent-Sender
Downgraded-Resent-To
Downgraded-Return-Path
Downgraded-Sender
Downgraded-To
should be updated to replace "experimental" with "obsoleted" and to
reference this document.
9.3. Additional header fields
The following header fields should be registered in the Permanent The following header fields should be registered in the Permanent
Message Header Field registry, in accordance with the procedures set Message Header Field registry, in accordance with the procedures set
out in [RFC3864]. out in [RFC3864].
Header field name: Downgraded-Message-Id Header field name: Downgraded-Message-Id
Applicable protocol: mail Applicable protocol: mail
Status: standard Status: standard
Author/change controller: IETF Author/change controller: IETF
Specification document(s): This document (Section 4) Specification document(s): This document (Section 4)
skipping to change at page 15, line 33 skipping to change at page 16, line 19
Applicable protocol: mail Applicable protocol: mail
Status: standard Status: standard
Author/change controller: IETF Author/change controller: IETF
Specification document(s): This document (Section 4) Specification document(s): This document (Section 4)
10. Acknowledgements 10. Acknowledgements
This document draws heavily from the experimental in-transit message This document draws heavily from the experimental in-transit message
downgrading procedure described in RFC 5504 [RFC5504]. The downgrading procedure described in RFC 5504 [RFC5504]. The
contribution of the co-author of that earlier document, Y. Yoneya, contribution of the co-author of that earlier document, Y. Yoneya,
are gratefully acknowledged. are gratefully acknowledged. Significant comments and suggestions
were received from John Klensin, Barry Leiba, Randall Gellens, Pete
Resnick, and other WG participants.
11. Change History 11. Change History
[[RFC Editor: Please remove this section prior to publication.]]
This section is used for tracking the update of this document. Will This section is used for tracking the update of this document. Will
be removed after finalize. be removed after finalize.
11.1. Version 00 11.1. Version 00
o Initial version o Initial version
o Imported header field downgrading from RFC 5504 o Imported header field downgrading from RFC 5504
11.2. Version 01 11.2. Version 01
skipping to change at page 16, line 15 skipping to change at page 17, line 4
11.3. Version 02 11.3. Version 02
o Added updating RFC 5322 to allow <group> syntax in From: and o Added updating RFC 5322 to allow <group> syntax in From: and
Sender Sender
o Added GROUP Downgrading o Added GROUP Downgrading
11.4. Version 03 11.4. Version 03
o Replaced <utf8-addr-spec> with <addr-spec> o Replaced <utf8-addr-spec> with <addr-spec>
o Added updating RFC 5322 to allow <group> syntax in From: and o Added updating RFC 5322 to allow <group> syntax in From: and
Sender Sender
o Added one sentence in Security considerations o Added one sentence in Security considerations
o Updated IANA considerations o Updated IANA considerations
11.5. Version 04
o Removed "Internationalized Address removed" from GROUP and MAILBOX
downgrading
o Updated "Updating RFC 5322"
o Compacted new header field definition
o Compacted security considerations
o Updated IANA considerations to remove obsoleting header fields
that are registered by RFC 5504
o Added a discussion of alternate downgrading models for the POP and
IMAP cases.
o Incorporated a large number of editorial changes to improve
clarity.
12. References 12. References
12.1. Normative References 12.1. Normative References
[I-D.ietf-eai-frmwrk-4952bis] Klensin, J. and Y. Ko, "Overview and [RFC6530] Klensin, J. and Y. Ko, "Overview and Framework for
Framework for Internationalized Internationalized Email", RFC 6530, February 2012.
Email",
draft-ietf-eai-frmwrk-4952bis-12 (work
in progress), October 2011.
[I-D.ietf-eai-rfc5335bis] Yang, A., Steele, S., and N. Freed, [RFC6532] Yang, A., Steele, S., and N. Freed, "Internationalized
"Internationalized Email Headers", Email Headers", RFC 6532, February 2012.
draft-ietf-eai-rfc5335bis-13 (work in
progress), October 2011.
[I-D.ietf-eai-rfc5337bis-dsn] Hansen, T., Newman, C., and A. [RFC6533] Hansen, T., Newman, C., and A. Melnikov,
Melnikov, "Internationalized Delivery "Internationalized Delivery Status and Disposition
Status and Disposition Notifications", Notifications", RFC 6533, February 2012.
draft-ietf-eai-rfc5337bis-dsn-05 (work
in progress), October 2011.
[RFC2045] Freed, N. and N. Borenstein, [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
"Multipurpose Internet Mail Extensions Extensions (MIME) Part One: Format of Internet Message
(MIME) Part One: Format of Internet Bodies", RFC 2045, November 1996.
Message Bodies", RFC 2045,
November 1996.
[RFC2047] Moore, K., "MIME (Multipurpose [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions)
Internet Mail Extensions) Part Three: Part Three: Message Header Extensions for Non-ASCII Text",
Message Header Extensions for Non- RFC 2047, November 1996.
ASCII Text", RFC 2047, November 1996.
[RFC2183] Troost, R., Dorner, S., and K. Moore, [RFC2183] Troost, R., Dorner, S., and K. Moore, "Communicating
"Communicating Presentation Presentation Information in Internet Messages: The
Information in Internet Messages: The Content-Disposition Header Field", RFC 2183, August 1997.
Content-Disposition Header Field",
RFC 2183, August 1997.
[RFC2231] Freed, N. and K. Moore, "MIME [RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded
Parameter Value and Encoded Word Word Extensions:
Extensions: Character Sets, Languages, Character Sets, Languages, and Continuations", RFC 2231,
and Continuations", RFC 2231, November 1997.
November 1997.
[RFC5322] Resnick, P., Ed., "Internet Message [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
Format", RFC 5322, October 2008. October 2008.
[RFC3629] Yergeau, F., "UTF-8, a transformation [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
format of ISO 10646", STD 63, 10646", STD 63, RFC 3629, November 2003.
RFC 3629, November 2003.
[RFC4021] Klyne, G. and J. Palme, "Registration [RFC4021] Klyne, G. and J. Palme, "Registration of Mail and MIME
of Mail and MIME Header Fields", Header Fields", RFC 4021, March 2005.
RFC 4021, March 2005.
[RFC2119] Bradner, S., "Key words for use in [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
RFCs to Indicate Requirement Levels", Requirement Levels", BCP 14, RFC 2119, March 1997.
BCP 14, RFC 2119, March 1997.
[RFC3864] Klyne, G., Nottingham, M., and J. [RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration
Mogul, "Registration Procedures for Procedures for Message Header Fields", BCP 90, RFC 3864,
Message Header Fields", BCP 90, September 2004.
RFC 3864, September 2004.
12.2. Informative References 12.2. Informative References
[RFC5504] Fujiwara, K. and Y. Yoneya, [RFC5451] Kucherawy, M., "Message Header Field for Indicating
"Downgrading Mechanism for Email Message Authentication Status", RFC 5451, April 2009.
Address Internationalization",
RFC 5504, March 2009. [RFC5504] Fujiwara, K. and Y. Yoneya, "Downgrading Mechanism for
Email Address Internationalization", RFC 5504, March 2009.
Appendix A. Examples Appendix A. Examples
A.1. Downgrading Example A.1. Downgrading Example
This appendix shows an message downgrading example. Consider a This appendix shows an message downgrading example. Consider a
received mail message where: received mail message where:
o The sender address is a non-ASCII address, o The sender address is a non-ASCII address,
"NON-ASCII-local@example.com". Its display-name is "DISPLAY- "NON-ASCII-local@example.com". Its display-name is "DISPLAY-
skipping to change at page 19, line 8 skipping to change at page 20, line 5
MAIL_BODY MAIL_BODY
Figure 1: Received message in a mail drop Figure 1: Received message in a mail drop
The downgraded message is shown in Figure 2. "Return-Path:", The downgraded message is shown in Figure 2. "Return-Path:",
"From:", "To:" and "Cc:" header fields are rewritten. "Subject:" and "From:", "To:" and "Cc:" header fields are rewritten. "Subject:" and
"X-Unknown-Header:" header fields are encoded using [RFC2047]. "X-Unknown-Header:" header fields are encoded using [RFC2047].
"Message-Id:" header field is encapsulated as "Message-Id:" header field is encapsulated as
"Downgraded-Message-Id:" header field. "Downgraded-Message-Id:" header field.
Return-Path: Internationalized address Return-Path: =?UTF-8?Q?NON-ASCII-local@example.com?= :;
=?UTF-8?Q?NON-ASCII-local@example.com?= removed:;
Received: from ... by ... Received: from ... by ...
Received: from ... by ... Received: from ... by ...
From: =?UTF-8?Q?DISPLAY-local?= Internationalized address From: =?UTF-8?Q?DISPLAY-local?=
=?UTF-8?Q?NON-ASCII-local@example.com?= removed:; =?UTF-8?Q?NON-ASCII-local@example.com?= :;
To: =?UTF-8?Q?DISPLAY-remote1?= Internationalized address To: =?UTF-8?Q?DISPLAY-remote1?=
=?UTF-8?Q?NON-ASCII-remote1@example.net?= removed:;, =?UTF-8?Q?NON-ASCII-remote1@example.net?= :;,
=?UTF-8?Q?DISPLAY-remote2?= Internationalized address =?UTF-8?Q?DISPLAY-remote2?=
=?UTF-8?Q?NON-ASCII-remote2@example.com?= removed:;, =?UTF-8?Q?NON-ASCII-remote2@example.com?= :;,
Cc: =?UTF-8?Q?DISPLAY-remote3?= Internationalized address Cc: =?UTF-8?Q?DISPLAY-remote3?=
=?UTF-8?Q?NON-ASCII-remote3@example.org?= removed:; =?UTF-8?Q?NON-ASCII-remote3@example.org?= :;
Subject: =?UTF-8?Q?NON-ASCII-SUBJECT?= Subject: =?UTF-8?Q?NON-ASCII-SUBJECT?=
Date: DATE Date: DATE
Downgraded-Message-Id: =?UTF-8?Q?MESSAGE_ID?= Downgraded-Message-Id: =?UTF-8?Q?MESSAGE_ID?=
Mime-Version: 1.0 Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8" Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
X-Unknown-Header: =?UTF-8?Q?NON-ASCII-CHARACTERS?= X-Unknown-Header: =?UTF-8?Q?NON-ASCII-CHARACTERS?=
MAIL_BODY MAIL_BODY
 End of changes. 63 change blocks. 
266 lines changed or deleted 310 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/