draft-ietf-eai-popimap-downgrade-04.txt   draft-ietf-eai-popimap-downgrade-05.txt 
Email Address Internationalization K. Fujiwara Email Address Internationalization K. Fujiwara
(EAI) JPRS (EAI) JPRS
Internet-Draft Feb 27, 2012 Internet-Draft Apr 13, 2012
Updates: 5322 (if approved) Updates: 5322 (if approved)
Intended status: Standards Track Intended status: Standards Track
Expires: August 30, 2012 Expires: October 15, 2012
Post-delivery Message Downgrading for Internationalized Email Messages Post-delivery Message Downgrading for Internationalized Email Messages
draft-ietf-eai-popimap-downgrade-04.txt draft-ietf-eai-popimap-downgrade-05.txt
Abstract Abstract
The Email Address Internationalization (SMTPUTF8) extension allows The Email Address Internationalization (SMTPUTF8) extension allows
UTF-8 characters in mail header fields. Upgraded POP and IMAP UTF-8 characters in mail header fields. Upgraded POP and IMAP
servers support internationalized email messages. If a POP/IMAP servers support internationalized Email messages. If a POP/IMAP
client does not support Email Address Internationalization, POP/IMAP client does not support Email Address Internationalization, POP/IMAP
servers cannot send Internationalized Email Headers to the client and servers cannot send Internationalized Email Headers to the client and
cannot remove the message. To avoid the situation, this document cannot remove the message. To avoid the situation, this document
describes a conversion mechanism for internationalized Email messages describes a conversion mechanism for internationalized Email messages
to be traditional message format. The purpose of post-delivery to be in traditional message format. In the process, message
message downgrading is to enable POP/IMAP servers to deliver elements requiring internationalized treatment are recoded or removed
internationalized messages to traditional POP/IMAP clients. In the and receivers are able to know that they received messages containing
process, message elements requiring internationalized treatment can such elements even if they cannot treat the internationalized
be removed or recoded and receivers can know they received messages elements.
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 August 30, 2012. This Internet-Draft will expire on October 15, 2012.
Copyright Notice Copyright Notice
Copyright (c) 2012 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
skipping to change at page 2, line 22 skipping to change at page 2, line 21
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.1. Problem statement . . . . . . . . . . . . . . . . . . . . 4
1.2. Possible solutions . . . . . . . . . . . . . . . . . . . . 4 1.2. Possible solutions . . . . . . . . . . . . . . . . . . . . 4
1.3. Approach taken in this specification . . . . . . . . . . . 4 1.3. Approach taken in this specification . . . . . . . . . . . 4
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6
3. Updating RFC 5322 . . . . . . . . . . . . . . . . . . . . . . 6 3. Updating RFC 5322 . . . . . . . . . . . . . . . . . . . . . . 6
4. New Header Fields Definition . . . . . . . . . . . . . . . . . 7 4. New Header Fields Definition . . . . . . . . . . . . . . . . . 7
5. Email Header Fields Downgrading . . . . . . . . . . . . . . . 8 5. Email Header Fields Downgrading . . . . . . . . . . . . . . . 8
5.1. Downgrading Method for Each ABNF Element . . . . . . . . . 8 5.1. Downgrading Method for Each ABNF Element . . . . . . . . . 8
5.1.1. RECEIVED Downgrading . . . . . . . . . . . . . . . . . 8 5.1.1. UNSTRUCTURED Downgrading . . . . . . . . . . . . . . . 8
5.1.2. UNSTRUCTURED Downgrading . . . . . . . . . . . . . . . 8 5.1.2. WORD Downgrading . . . . . . . . . . . . . . . . . . . 8
5.1.3. WORD Downgrading . . . . . . . . . . . . . . . . . . . 8 5.1.3. COMMENT Downgrading . . . . . . . . . . . . . . . . . 8
5.1.4. COMMENT Downgrading . . . . . . . . . . . . . . . . . 8 5.1.4. MIME-VALUE Downgrading . . . . . . . . . . . . . . . . 8
5.1.5. MIME-VALUE Downgrading . . . . . . . . . . . . . . . . 9 5.1.5. DISPLAY-NAME Downgrading . . . . . . . . . . . . . . . 9
5.1.6. DISPLAY-NAME Downgrading . . . . . . . . . . . . . . . 9 5.1.6. GROUP Downgrading . . . . . . . . . . . . . . . . . . 9
5.1.7. GROUP Downgrading . . . . . . . . . . . . . . . . . . 9 5.1.7. MAILBOX Downgrading . . . . . . . . . . . . . . . . . 9
5.1.8. MAILBOX Downgrading . . . . . . . . . . . . . . . . . 9 5.1.8. ENCAPSULATION Downgrading . . . . . . . . . . . . . . 10
5.1.9. ENCAPSULATION Downgrading . . . . . . . . . . . . . . 10 5.1.9. TYPED-ADDRESS Downgrading . . . . . . . . . . . . . . 10
5.1.10. TYPED-ADDRESS Downgrading . . . . . . . . . . . . . . 10
5.2. Downgrading Method for Each Header Field . . . . . . . . . 10 5.2. Downgrading Method for Each Header Field . . . . . . . . . 10
5.2.1. Address Header Fields That Contain <address>s . . . . 10 5.2.1. Address Header Fields That Contain <address>s . . . . 10
5.2.2. Address Header Fields with Typed Addresses . . . . . . 11 5.2.2. Address Header Fields with Typed Addresses . . . . . . 11
5.2.3. Downgrading Non-ASCII in Comments . . . . . . . . . . 11 5.2.3. Downgrading Non-ASCII in Comments . . . . . . . . . . 11
5.2.4. Message-ID Header Fields . . . . . . . . . . . . . . . 11 5.2.4. Message-ID Header Fields . . . . . . . . . . . . . . . 11
5.2.5. Received Header Field . . . . . . . . . . . . . . . . 12 5.2.5. Received Header Field . . . . . . . . . . . . . . . . 12
5.2.6. MIME Content Header Fields . . . . . . . . . . . . . . 12 5.2.6. MIME Content Header Fields . . . . . . . . . . . . . . 12
5.2.7. Non-ASCII in <unstructured> . . . . . . . . . . . . . 12 5.2.7. Non-ASCII in <unstructured> . . . . . . . . . . . . . 12
5.2.8. Non-ASCII in <phrase> . . . . . . . . . . . . . . . . 12 5.2.8. Non-ASCII in <phrase> . . . . . . . . . . . . . . . . 12
5.2.9. Other Header Fields . . . . . . . . . . . . . . . . . 12 5.2.9. Other Header Fields . . . . . . . . . . . . . . . . . 12
skipping to change at page 3, line 11 skipping to change at page 3, line 8
8. Implementation Notes . . . . . . . . . . . . . . . . . . . . . 14 8. Implementation Notes . . . . . . . . . . . . . . . . . . . . . 14
8.1. RFC 2047 Encoding . . . . . . . . . . . . . . . . . . . . 14 8.1. RFC 2047 Encoding . . . . . . . . . . . . . . . . . . . . 14
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 16 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 16
11. Change History . . . . . . . . . . . . . . . . . . . . . . . . 16 11. Change History . . . . . . . . . . . . . . . . . . . . . . . . 16
11.1. Version 00 . . . . . . . . . . . . . . . . . . . . . . . . 16 11.1. Version 00 . . . . . . . . . . . . . . . . . . . . . . . . 16
11.2. Version 01 . . . . . . . . . . . . . . . . . . . . . . . . 16 11.2. Version 01 . . . . . . . . . . . . . . . . . . . . . . . . 16
11.3. Version 02 . . . . . . . . . . . . . . . . . . . . . . . . 16 11.3. Version 02 . . . . . . . . . . . . . . . . . . . . . . . . 16
11.4. Version 03 . . . . . . . . . . . . . . . . . . . . . . . . 16 11.4. Version 03 . . . . . . . . . . . . . . . . . . . . . . . . 16
11.5. Version 04 . . . . . . . . . . . . . . . . . . . . . . . . 17 11.5. Version 04 . . . . . . . . . . . . . . . . . . . . . . . . 17
11.6. Version 05 . . . . . . . . . . . . . . . . . . . . . . . . 17
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 17 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 17
12.1. Normative References . . . . . . . . . . . . . . . . . . . 17 12.1. Normative References . . . . . . . . . . . . . . . . . . . 17
12.2. Informative References . . . . . . . . . . . . . . . . . . 18 12.2. Informative References . . . . . . . . . . . . . . . . . . 18
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 18 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 18
A.1. Downgrading Example . . . . . . . . . . . . . . . . . . . 18 A.1. Downgrading Example . . . . . . . . . . . . . . . . . . . 18
1. Introduction 1. Introduction
1.1. Problem statement 1.1. Problem statement
Traditional (legacy) mail systems, which are defined by [RFC5322], Traditional (legacy) mail systems, which are defined by [RFC5322],
allow only ASCII characters in mail header field values. The allow only ASCII characters in mail header field values. The
SMTPUTF8 extension ([RFC6530] and [RFC6532] allows UTF-8 characters SMTPUTF8 extension ([RFC6530] and [RFC6532]) allow raw UTF-8 in those
in those mail header fields. mail header fields.
If a header field contains non-ASCII characters, POP/IMAP servers If a header field contains non-ASCII strings, POP/IMAP servers cannot
cannot send Internationalized Email Headers to legacy clients and, send Internationalized Email Headers to legacy clients and, because
because they have no obvious or standardized way to explain what is they have no obvious or standardized way to explain what is going on
going on to those clients, cannot even safely discard the message. to those clients, cannot even safely discard the message.
1.2. Possible solutions 1.2. Possible solutions
Discussions leading to this specification concluded that there are Discussions leading to this specification concluded that there are
four plausible approaches to the problem, with the preferred one four plausible approaches to the problem, with the preferred one
depending on the particular circumstances and relationship among the depending on the particular circumstances and relationship among the
delivery SMTP server, the mail store, the POP or IMAP server, and the delivery SMTP server, the mail store, the POP or IMAP server, and the
users and their MUA clients: users and their MUA clients:
1. If the delivery MTA has sufficient knowledge about the POP and/or 1. If the delivery MTA has sufficient knowledge about the POP and/or
skipping to change at page 5, line 10 skipping to change at page 5, line 10
so the choice may be considered to be among "least bad" options. so the choice may be considered to be among "least bad" options.
This message downgrading mechanism converts mail header fields to an This message downgrading mechanism converts mail header fields to an
all-ASCII representation. The POP/IMAP servers can use the all-ASCII representation. The POP/IMAP servers can use the
downgrading mechanism and send the Internationalized Email message as downgrading mechanism and send the Internationalized Email message as
a traditional form. Receivers can know they received some a traditional form. Receivers can know they received some
internationalized messages or some unknown/broken messages. internationalized messages or some unknown/broken messages.
[RFC6532] allows UTF-8 characters to be used in mail header fields [RFC6532] allows UTF-8 characters to be used in mail header fields
and MIME header fields. The message downgrading mechanism specified and MIME header fields. The message downgrading mechanism specified
here describes the conversion method from the internationalized email here describes the conversion method from the internationalized
messages that are defined in [RFC6530], and [RFC6532] to the messages that are defined in [RFC6530], and [RFC6532] to the
traditional email messages defined in [RFC5322]. traditional email messages defined in [RFC5322].
There is no good way to convert "From:" and "Sender:" header fields, There is no good way to convert "From:" and "Sender:" header fields,
this document updates [RFC5322] by redefining "From:" and "Sender:" this document updates [RFC5322] by redefining "From:" and "Sender:"
header fields in Section 3. header fields in Section 3.
This document provides a precise definition of the minimum- This document provides a precise definition of the minimum-
information-loss message downgrading process. information-loss message downgrading process.
skipping to change at page 5, line 36 skipping to change at page 5, line 36
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 information that "Downgraded-" are introduced. They preserve the information that
appeared in the original header 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 [RFC6532]. MIME header field The definition of MIME header fields in Internationalized Email
downgrading is described in Section 6. It generates ASCII-only MIME Messages is described in [RFC6532]. MIME header field downgrading is
header fields. described in Section 6. It generates ASCII-only MIME 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 [RFC6532]. internationalized message format described in [RFC6532].
The purpose of post-delivery message downgrading is to enable POP/
IMAP servers to deliver internationalized messages to traditional
POP/IMAP clients.
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
Overview and Framework for Internationalized Email [RFC6530], in the Overview and Framework for Internationalized Email [RFC6530], in the
mail message specifications [RFC5322], or in the MIME documents mail message specifications [RFC5322], or in the MIME documents
[RFC2045] [RFC2047] [RFC2183] [RFC2231]. The terms "ASCII address", [RFC2045] [RFC2047] [RFC2183] [RFC2231]. The terms "ASCII address",
"internationalized email address", "non-ASCII address", "i18mail "non-ASCII address", "SMTPUTF8", "message", "internationalized
address", "SMTPUTF8", "message", and "mailing list" are used with the message" are used with the definitions from [RFC6530]. The term
definitions from [RFC6530]. "non-ASCII string" is used with the definitions from [RFC6532].
This document depends on [RFC6532]. Key words used in those
documents are used in this document, too.
The term "non-ASCII" refers to a UTF-8 string that contains at least
one non-ASCII character.
A "SMTPUTF8 message" is an email message expanded by [RFC6532].
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.
skipping to change at page 7, line 4 skipping to change at page 6, line 48
allowed only in destination fields such as "To" and "cc". It is allowed only in destination fields such as "To" and "cc". It is
anticipated that when existing implementations encounter a downgraded anticipated that when existing implementations encounter a downgraded
field from this set, many will tolerate the appearance of a group, field from this set, many will tolerate the appearance of a group,
even though [RFC5322] does not permit it. Implementations that do even though [RFC5322] does not permit it. Implementations that do
not tolerate it will fail in unpredictable ways, and they might not tolerate it will fail in unpredictable ways, and they might
refuse to process such messages. refuse to process such messages.
[[ Notes in Draft: If this update is rejected, one possible solution [[ Notes in Draft: If this update is rejected, one possible solution
is to rewrite each <addr-spec> element in "From" and "Sender" header is to rewrite each <addr-spec> element in "From" and "Sender" header
fields as fields as
ENCODED-WORD "<" NO_EXISTING_ADDRESS ">"
ENCODED-WORD "<" NON_EXISTING_ADDRESS ">"
where the <ENCODED-WORD> is the original <addr-spec> encoded where the <ENCODED-WORD> is the original <addr-spec> encoded
according to [RFC2047] and NO_EXISTING_ADDRESS is an ASCII email according to [RFC2047] and NON_EXISTING_ADDRESS is an ASCII email
address which does not exist, should, as illustrated in the example address which does not exist, should, as illustrated in the example
below, always generate an error and is specified by the administrator below, always generate an error and is specified by the administrator
of the POP3 or IMAP server. of the POP3 or IMAP server.
For example, if the local-part of the "From:" address were the For example, if the local-part of the "From:" address were the
Russian (in Cyrillic) equivalent of Ivan, with domain-part Russian (in Cyrillic) equivalent of Ivan, with domain-part
"foo.example.net" and the IMAP server being used by the recipient was "foo.example.net" and the IMAP server being used by the recipient was
"imap.example.com", the encoded word from suggested in this note "imap.example.com", the encoded word from suggested in this note
might appear as: might appear as:
From: =?UTF-8?Q?=d0=b8=d0=b2=d0=b0=d0=bd@foo.example.net?= From: =?UTF-8?Q?=d0=b8=d0=b2=d0=b0=d0=bd@foo.example.net?=
<invalid-i18n-address@imap.example.com> <invalid-i18n-address@imap.example.com>
That would lead to immediate rejection if a user attempted to reply That would lead to immediate rejection if a user attempted to reply
uncritically to the message. uncritically to the message. ]]
4. New Header Fields Definition 4. New Header Fields Definition
New header fields are defined to preserve information that appeared New header fields are defined to preserve information that appeared
in non-ASCII text in header fields of the incoming message. The in non-ASCII strings in header fields of the incoming message. The
values of the new fields holds the original header field value in values of the new fields holds the original header field value in
encoded form. The revised header field syntax is specified as encoded form. The revised header field syntax is specified as
follows: follows:
fields =/ downgraded fields =/ downgraded
downgraded = "Downgraded-Message-Id:" unstructured CRLF / downgraded = "Downgraded-Message-Id:" unstructured CRLF /
"Downgraded-Resent-Message-Id:" unstructured CRLF / "Downgraded-Resent-Message-Id:" unstructured CRLF /
"Downgraded-In-Reply-To:" unstructured CRLF / "Downgraded-In-Reply-To:" unstructured CRLF /
"Downgraded-References:" unstructured CRLF / "Downgraded-References:" unstructured CRLF /
skipping to change at page 8, line 18 skipping to change at page 8, line 15
2. Treat the initial new header field value as if it were 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 resulting new header field value UTF-8 as necessary so that the resulting new header field value
is completely in ASCII. 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 strings.
[RFC6532] expands "Received:" header fields; [RFC5322] describes ABNF [RFC6532] expands "Received:" header fields; [RFC5322] describes ABNF
elements <mailbox>, <word>, <comment>, <unstructured>; [RFC2045] elements <mailbox>, <word>, <comment>, <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 strings
remain in the header field. remain in the header field.
5.1.1. RECEIVED Downgrading 5.1.1. UNSTRUCTURED Downgrading
If the header field name is "Received:" and the FOR clause contains a
non-ASCII address, remove the FOR clause from the header field.
Other parts (not counting <comment>s) should not contain non-ASCII
values.
5.1.2. UNSTRUCTURED Downgrading
If the header field has an <unstructured> field that contains non- If the header field has an <unstructured> field that contains non-
ASCII characters, apply [RFC2047] encoding with charset UTF-8. ASCII strings, apply [RFC2047] encoding with charset UTF-8.
5.1.3. WORD Downgrading 5.1.2. WORD Downgrading
If the header field has any <word> fields that contain non-ASCII If the header field has any <word> fields that contain non-ASCII
characters, apply [RFC2047] encoding with charset UTF-8. strings, apply [RFC2047] encoding with charset UTF-8.
5.1.4. COMMENT Downgrading 5.1.3. COMMENT Downgrading
If the header field has any <comment> fields that contain non-ASCII If the header field has any <comment> fields that contain non-ASCII
characters, apply [RFC2047] encoding with charset UTF-8. strings, apply [RFC2047] encoding with charset UTF-8.
5.1.5. MIME-VALUE Downgrading 5.1.4. MIME-VALUE Downgrading
If the header field has any <value> elements defined by [RFC2045] and If the header field has any <value> elements defined by [RFC2045] and
the elements contain non-ASCII characters, encode the <value> the elements contain non-ASCII strings, encode the <value> elements
elements according to [RFC2231] with charset UTF-8 and leave the according to [RFC2231] with charset UTF-8 and leave the language
language information empty. If the <value> element is <quoted- information empty. If the <value> element is <quoted-string> and it
string> and it contains <CFWS> outside the DQUOTE, remove the <CFWS> contains <CFWS> outside the DQUOTE, remove the <CFWS> before this
before this conversion. conversion.
5.1.6. DISPLAY-NAME Downgrading 5.1.5. DISPLAY-NAME Downgrading
If the header field has any <address> (<mailbox> or <group>) elements If the header field has any <address> (<mailbox> or <group>) elements
and they have <display-name> elements that contain non-ASCII and they have <display-name> elements that contain non-ASCII strings,
characters, encode the <display-name> elements according to [RFC2047] encode the <display-name> elements according to [RFC2047] with
with charset UTF-8. DISPLAY-NAME downgrading is the same algorithm charset UTF-8. DISPLAY-NAME downgrading is the same algorithm as
as WORD downgrading. WORD downgrading.
5.1.7. GROUP Downgrading 5.1.6. 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
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.7. 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 strings in their <addr-spec> element, rewrite each
each <addr-spec> element to ASCII-only format. The <addr-spec> <addr-spec> element to ASCII-only format. The <addr-spec> element
element that contains non-ASCII characters may appear in two forms that contains non-ASCII strings may appear in two forms as:
as:
"<" addr-spec ">" "<" addr-spec ">"
addr-spec addr-spec
Rewrite both as: Rewrite both as:
ENCODED-WORD " :;" 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.8. 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.9. 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 strings, 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
[RFC6533]. COMMENT downgrading is also performed in this case. If [RFC6533]. COMMENT downgrading is also performed in this case. If
the address type is unrecognized and the header field contains non- the address type is unrecognized and the header field contains non-
ASCII characters, then fall back to using ENCAPSULATION downgrading ASCII strings, then fall back to using ENCAPSULATION downgrading on
on the entire header field. 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 [RFC4021] establishes a registry of header fields. This section
downgrading method for each header field. describes the 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 strings,
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.
5.2.1. Address Header Fields That Contain <address>s 5.2.1. Address Header Fields That Contain <address>s
From: From:
Sender: Sender:
To: To:
Cc: Cc:
Bcc: Bcc:
skipping to change at page 11, line 27 skipping to change at page 11, line 21
If the header field contains <mailbox> elements that contain non- If the header field contains <mailbox> elements that contain non-
ASCII addresses, perform COMMENT downgrading, DISPLAY-NAME ASCII addresses, perform COMMENT downgrading, DISPLAY-NAME
downgrading, and MAILBOX downgrading. downgrading, and MAILBOX downgrading.
5.2.2. Address Header Fields with Typed Addresses 5.2.2. Address Header Fields with Typed Addresses
Original-Recipient: Original-Recipient:
Final-Recipient: Final-Recipient:
If the header field contains non-ASCII characters, perform TYPED- If the header field contains non-ASCII strings, perform TYPED-ADDRESS
ADDRESS downgrading. downgrading.
5.2.3. Downgrading Non-ASCII in Comments 5.2.3. Downgrading Non-ASCII in Comments
Date: Date:
Resent-Date: Resent-Date:
MIME-Version: MIME-Version:
Content-ID: Content-ID:
Content-Transfer-Encoding: Content-Transfer-Encoding:
Content-Language: Content-Language:
Accept-Language: Accept-Language:
Auto-Submitted: Auto-Submitted:
These header fields do not contain non-ASCII characters except in These header fields do not contain non-ASCII strings except in
comments. If the header field contains UTF-8 characters in comments, comments. If the header field contains UTF-8 characters in comments,
perform COMMENT downgrading. perform COMMENT downgrading.
5.2.4. Message-ID Header Fields 5.2.4. Message-ID Header Fields
Message-ID: Message-ID:
Resent-Message-ID: Resent-Message-ID:
In-Reply-To: In-Reply-To:
References: References:
Perform ENCAPSULATION Downgrading. Perform ENCAPSULATION Downgrading.
5.2.5. Received Header Field 5.2.5. Received Header Field
Received: Received:
skipping to change at page 12, line 15 skipping to change at page 12, line 9
Resent-Message-ID: Resent-Message-ID:
In-Reply-To: In-Reply-To:
References: References:
Perform ENCAPSULATION Downgrading. Perform ENCAPSULATION Downgrading.
5.2.5. Received Header Field 5.2.5. Received Header Field
Received: Received:
Perform COMMENT downgrading and RECEIVED downgrading. If the FOR clause contains a non-ASCII address, remove the FOR clause
from the header field. Comments may contain non-ASCII strings,
Perform COMMENT downgrading. Other parts should not contain non-
ASCII strings.
5.2.6. MIME Content Header Fields 5.2.6. MIME Content Header Fields
Content-Type: Content-Type:
Content-Disposition: Content-Disposition:
Perform MIME-VALUE downgrading and COMMENT downgrading. Perform MIME-VALUE downgrading and COMMENT downgrading.
5.2.7. Non-ASCII in <unstructured> 5.2.7. Non-ASCII in <unstructured>
skipping to change at page 12, line 40 skipping to change at page 12, line 37
Perform UNSTRUCTURED downgrading. Perform UNSTRUCTURED downgrading.
5.2.8. Non-ASCII in <phrase> 5.2.8. Non-ASCII in <phrase>
Keywords: Keywords:
Perform WORD downgrading. Perform WORD downgrading.
5.2.9. Other Header Fields 5.2.9. Other Header Fields
There are other header fields that contain non-ASCII characters. There are other header fields that contain non-ASCII strings. They
They are user-defined and missing from this document, or future are user-defined and missing from this document, or future defined
defined header fields. They are treated as "Optional Fields" and header fields. They are treated as "Optional Fields" and their field
their field value are treated as unstructured described in Section values are treated as unstructured described in Section 3.6.8 of
3.6.8 of [RFC5322]. [RFC5322].
Perform UNSTRUCTURED downgrading. Perform UNSTRUCTURED downgrading.
If the software understands the header field's structure and a If the software understands the header field's structure and a
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 strings [RFC6532].
[RFC6532]. This section defines the conversion method to ASCII-only This section defines the conversion method to ASCII-only header
header fields for each MIME header field that contains non-ASCII fields for each MIME header field that contains non-ASCII strings.
characters. Parse the message body's MIME structure at all levels Parse the message body's MIME structure at all levels and check each
and check each MIME header field to see whether it contains non-ASCII MIME header field to see whether it contains non-ASCII strings. If
characters. If the header field contains non-ASCII characters in the the header field contains non-ASCII strings in the header field
header field value, the header field is a target of the MIME body- value, the header field is a target of the MIME body-part header
part header field's downgrading. Each MIME header field's field's downgrading. Each MIME header field's downgrading method is
downgrading method is described below. COMMENT downgrading, MIME- described below. COMMENT downgrading, MIME-VALUE downgrading, and
VALUE downgrading, and UNSTRUCTURED downgrading are described in UNSTRUCTURED 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 strings
characters except in comments. If the header field contains UTF-8 except in comments. If the header field contains UTF-8 characters
characters in comments, perform COMMENT downgrading. 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
The purpose of post-delivery message downgrading is to allow POP/IMAP The purpose of post-delivery message downgrading is to allow POP/IMAP
servers to deliver internationalized messages to traditional POP/IMAP servers to deliver internationalized messages to traditional POP/IMAP
clients and permit them to work with those messages. Users who clients and permit the clients to display those messages. Users who
receive such messages can know that they were internationalized. It receive such messages can know that they were internationalized. It
does not permit receivers to read the messages in their original form does not permit receivers to read the messages in their original form
and, in general, will not permit generating replies, at least without and, in general, will not permit generating replies, at least without
significant user intervention. significant user intervention.
This specification is designed so that MUAs that receive converted This specification is designed so that MUAs that receive converted
messages may be traditional and SMTPUTF8-unaware. The specification messages may be traditional and SMTPUTF8-unaware. The specification
assumes that such MUAs have no special provisions for either assumes that such MUAs have no special provisions for either
"Downgraded-" header fields or the new syntax of From and Sender "Downgraded-" header fields or the new syntax of From and Sender
header fields described in Section 3. 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 strings. Furthermore, the body part may contain UTF-8
UTF-8 characters. Implementations parsing Internet messages need to characters. Implementations parsing Internet messages need to accept
accept UTF-8 body parts and UTF-8 header fields that are MIME- UTF-8 body parts and UTF-8 header fields that are MIME-encoded.
encoded. Thus, this document inherits the security considerations of Thus, this document inherits the security considerations of MIME-
MIME-encoded header fields ([RFC2047] and [RFC3629]). 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, the rewritten header field spoofing by malicious senders. However, the rewritten header field
values are preserved in equivalent MIME form or in newly defined values are preserved in equivalent MIME form or in newly defined
header fields which traditional MUAs do not care. header fields which traditional MUAs do not care.
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, at least the following the specific message being downgraded, at least the following
skipping to change at page 16, line 21 skipping to change at page 16, line 16
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. Significant comments and suggestions are gratefully acknowledged. Significant comments and suggestions
were received from John Klensin, Barry Leiba, Randall Gellens, Pete were received from John Klensin, Barry Leiba, Randall Gellens, Pete
Resnick, and other WG participants. Resnick, Martin J. Durst, and other WG participants.
11. Change History 11. Change History
[[RFC Editor: Please remove this section prior to publication.]] [[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
skipping to change at page 17, line 31 skipping to change at page 17, line 26
o Updated IANA considerations to remove obsoleting header fields o Updated IANA considerations to remove obsoleting header fields
that are registered by RFC 5504 that are registered by RFC 5504
o Added a discussion of alternate downgrading models for the POP and o Added a discussion of alternate downgrading models for the POP and
IMAP cases. IMAP cases.
o Incorporated a large number of editorial changes to improve o Incorporated a large number of editorial changes to improve
clarity. clarity.
12. References 11.6. Version 05
12.1. Normative References o Some text corrections
[RFC6530] Klensin, J. and Y. Ko, "Overview and Framework for o Terminology change: only to use non-ASCII address, non-ASCII
Internationalized Email", RFC 6530, February 2012. message, non-ASCII string and imported them from RFC 6530 and RFC
6532
[RFC6532] Yang, A., Steele, S., and N. Freed, "Internationalized o Replace "non-ASCII character" with "non-ASCII string"
Email Headers", RFC 6532, February 2012.
[RFC6533] Hansen, T., Newman, C., and A. Melnikov, o Removed 5.1.1. RECEIVED Downgrading: It's
"Internationalized Delivery Status and Disposition
Notifications", RFC 6533, February 2012. 12. References
12.1. Normative References
[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet Message Extensions (MIME) Part One: Format of Internet Message
Bodies", RFC 2045, November 1996. Bodies", RFC 2045, November 1996.
[RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions) [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions)
Part Three: Message Header Extensions for Non-ASCII Text", Part Three: Message Header Extensions for Non-ASCII Text",
RFC 2047, November 1996. RFC 2047, November 1996.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2183] Troost, R., Dorner, S., and K. Moore, "Communicating [RFC2183] Troost, R., Dorner, S., and K. Moore, "Communicating
Presentation Information in Internet Messages: The Presentation 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 Parameter Value and Encoded [RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded
Word Extensions: Word Extensions:
Character Sets, Languages, and Continuations", RFC 2231, Character Sets, Languages, and Continuations", RFC 2231,
November 1997. November 1997.
[RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
October 2008.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003. 10646", STD 63, RFC 3629, November 2003.
[RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration
Procedures for Message Header Fields", BCP 90, RFC 3864,
September 2004.
[RFC4021] Klyne, G. and J. Palme, "Registration of Mail and MIME [RFC4021] Klyne, G. and J. Palme, "Registration of Mail and MIME
Header Fields", RFC 4021, March 2005. Header Fields", RFC 4021, March 2005.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
Requirement Levels", BCP 14, RFC 2119, March 1997. October 2008.
[RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration [RFC6530] Klensin, J. and Y. Ko, "Overview and Framework for
Procedures for Message Header Fields", BCP 90, RFC 3864, Internationalized Email", RFC 6530, February 2012.
September 2004.
[RFC6532] Yang, A., Steele, S., and N. Freed, "Internationalized
Email Headers", RFC 6532, February 2012.
[RFC6533] Hansen, T., Newman, C., and A. Melnikov,
"Internationalized Delivery Status and Disposition
Notifications", RFC 6533, February 2012.
12.2. Informative References 12.2. Informative References
[RFC5451] Kucherawy, M., "Message Header Field for Indicating [RFC5451] Kucherawy, M., "Message Header Field for Indicating
Message Authentication Status", RFC 5451, April 2009. Message Authentication Status", RFC 5451, April 2009.
[RFC5504] Fujiwara, K. and Y. Yoneya, "Downgrading Mechanism for [RFC5504] Fujiwara, K. and Y. Yoneya, "Downgrading Mechanism for
Email Address Internationalization", RFC 5504, March 2009. Email Address Internationalization", RFC 5504, March 2009.
Appendix A. Examples Appendix A. Examples
skipping to change at page 19, line 12 skipping to change at page 19, line 21
"NON-ASCII-remote2@example.com" Its display-names are "DISPLAY- "NON-ASCII-remote2@example.com" Its display-names are "DISPLAY-
remote1" and "DISPLAY-remote2". remote1" and "DISPLAY-remote2".
o The "Cc:" header field contains a non-ASCII address, o The "Cc:" header field contains a non-ASCII address,
"NON-ASCII-remote3@example.org". Its display-name is "DISPLAY- "NON-ASCII-remote3@example.org". Its display-name is "DISPLAY-
remote3". remote3".
o Four display names contain non-ASCII characters. o Four display names contain non-ASCII characters.
o The Subject header field is "NON-ASCII-SUBJECT", which contains o The Subject header field is "NON-ASCII-SUBJECT", which contains
non-ASCII characters. non-ASCII strings.
o The "Message-Id:" header field contains "NON-ASCII-MESSAGE_ID", o The "Message-Id:" header field contains "NON-ASCII-MESSAGE_ID",
which contains non-ASCII characters. which contains non-ASCII strings.
o There is an unknown header field "X-Unknown-Header" which contains o There is an unknown header field "X-Unknown-Header" which contains
non-ASCII characters. non-ASCII strings.
Return-Path: <NON-ASCII-local@example.com> Return-Path: <NON-ASCII-local@example.com>
Received: from ... by ... for <NON-ASCII-remote1@example.net> Received: from ... by ... for <NON-ASCII-remote1@example.net>
Received: from ... by ... for <NON-ASCII-remote1@example.net> Received: from ... by ... for <NON-ASCII-remote1@example.net>
From: DISPLAY-local <NON-ASCII-local@example.com> From: DISPLAY-local <NON-ASCII-local@example.com>
To: DISPLAY-remote1 <NON-ASCII-remote1@example.net>, To: DISPLAY-remote1 <NON-ASCII-remote1@example.net>,
DISPLAY-remote2 <NON-ASCII-remote2@example.com> DISPLAY-remote2 <NON-ASCII-remote2@example.com>
Cc: DISPLAY-remote3 <NON-ASCII-remote3@example.org> Cc: DISPLAY-remote3 <NON-ASCII-remote3@example.org>
Subject: NON-ASCII-SUBJECT Subject: NON-ASCII-SUBJECT
Date: DATE Date: DATE
 End of changes. 64 change blocks. 
138 lines changed or deleted 139 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/