draft-ietf-eai-popimap-downgrade-05.txt   draft-ietf-eai-popimap-downgrade-06.txt 
Email Address Internationalization K. Fujiwara Email Address Internationalization K. Fujiwara
(EAI) JPRS (EAI) JPRS
Internet-Draft Apr 13, 2012 Internet-Draft July 9, 2012
Updates: 5322 (if approved)
Intended status: Standards Track Intended status: Standards Track
Expires: October 15, 2012 Expires: January 10, 2013
Post-delivery Message Downgrading for Internationalized Email Messages Post-delivery Message Downgrading for Internationalized Email Messages
draft-ietf-eai-popimap-downgrade-05.txt draft-ietf-eai-popimap-downgrade-06.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
skipping to change at page 1, line 43 skipping to change at page 1, line 42
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 October 15, 2012. This Internet-Draft will expire on January 10, 2013.
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 21 skipping to change at page 2, line 19
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 . . . . . . . . . . . . . . . . . . . . . . . . . 6 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Updating RFC 5322 . . . . . . . . . . . . . . . . . . . . . . 6 3. New Header Fields Definition . . . . . . . . . . . . . . . . . 6
4. New Header Fields Definition . . . . . . . . . . . . . . . . . 7 4. Email Header Fields Downgrading . . . . . . . . . . . . . . . 6
5. Email Header Fields Downgrading . . . . . . . . . . . . . . . 8 4.1. Downgrading Method for Each ABNF Element . . . . . . . . . 7
5.1. Downgrading Method for Each ABNF Element . . . . . . . . . 8 4.1.1. <UNSTRUCTURED> Downgrading . . . . . . . . . . . . . . 7
5.1.1. UNSTRUCTURED Downgrading . . . . . . . . . . . . . . . 8 4.1.2. <WORD> Downgrading . . . . . . . . . . . . . . . . . . 7
5.1.2. WORD Downgrading . . . . . . . . . . . . . . . . . . . 8 4.1.3. <COMMENT> Downgrading . . . . . . . . . . . . . . . . 7
5.1.3. COMMENT Downgrading . . . . . . . . . . . . . . . . . 8 4.1.4. <MIME-VALUE> Downgrading . . . . . . . . . . . . . . . 7
5.1.4. MIME-VALUE Downgrading . . . . . . . . . . . . . . . . 8 4.1.5. <DISPLAY-NAME> Downgrading . . . . . . . . . . . . . . 7
5.1.5. DISPLAY-NAME Downgrading . . . . . . . . . . . . . . . 9 4.1.6. <GROUP> Downgrading . . . . . . . . . . . . . . . . . 7
5.1.6. GROUP Downgrading . . . . . . . . . . . . . . . . . . 9 4.1.7. <MAILBOX> Downgrading . . . . . . . . . . . . . . . . 8
5.1.7. MAILBOX Downgrading . . . . . . . . . . . . . . . . . 9 4.1.8. ENCAPSULATION Downgrading . . . . . . . . . . . . . . 8
5.1.8. ENCAPSULATION Downgrading . . . . . . . . . . . . . . 10 4.1.9. <TYPED-ADDRESS> Downgrading . . . . . . . . . . . . . 8
5.1.9. TYPED-ADDRESS Downgrading . . . . . . . . . . . . . . 10 4.2. Downgrading Method for Each Header Field . . . . . . . . . 9
5.2. Downgrading Method for Each Header Field . . . . . . . . . 10 4.2.1. Address Header Fields That Contain <address>s . . . . 9
5.2.1. Address Header Fields That Contain <address>s . . . . 10 4.2.2. Address Header Fields with Typed Addresses . . . . . . 9
5.2.2. Address Header Fields with Typed Addresses . . . . . . 11 4.2.3. Downgrading Non-ASCII in Comments . . . . . . . . . . 10
5.2.3. Downgrading Non-ASCII in Comments . . . . . . . . . . 11 4.2.4. Message-ID Header Fields . . . . . . . . . . . . . . . 10
5.2.4. Message-ID Header Fields . . . . . . . . . . . . . . . 11 4.2.5. Received Header Field . . . . . . . . . . . . . . . . 10
5.2.5. Received Header Field . . . . . . . . . . . . . . . . 12 4.2.6. MIME Content Header Fields . . . . . . . . . . . . . . 10
5.2.6. MIME Content Header Fields . . . . . . . . . . . . . . 12 4.2.7. Non-ASCII in <unstructured> . . . . . . . . . . . . . 11
5.2.7. Non-ASCII in <unstructured> . . . . . . . . . . . . . 12 4.2.8. Non-ASCII in <phrase> . . . . . . . . . . . . . . . . 11
5.2.8. Non-ASCII in <phrase> . . . . . . . . . . . . . . . . 12 4.2.9. Other Header Fields . . . . . . . . . . . . . . . . . 11
5.2.9. Other Header Fields . . . . . . . . . . . . . . . . . 12 5. MIME Body-Part Header Field Downgrading . . . . . . . . . . . 11
6. MIME Body-Part Header Field Downgrading . . . . . . . . . . . 13 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12
7. Security Considerations . . . . . . . . . . . . . . . . . . . 13 7. Implementation Notes . . . . . . . . . . . . . . . . . . . . . 13
8. Implementation Notes . . . . . . . . . . . . . . . . . . . . . 14 7.1. RFC 2047 Encoding . . . . . . . . . . . . . . . . . . . . 13
8.1. RFC 2047 Encoding . . . . . . . . . . . . . . . . . . . . 14 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 14
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 16 10. Change History . . . . . . . . . . . . . . . . . . . . . . . . 14
11. Change History . . . . . . . . . . . . . . . . . . . . . . . . 16 10.1. Version 00 . . . . . . . . . . . . . . . . . . . . . . . . 15
11.1. Version 00 . . . . . . . . . . . . . . . . . . . . . . . . 16 10.2. Version 01 . . . . . . . . . . . . . . . . . . . . . . . . 15
11.2. Version 01 . . . . . . . . . . . . . . . . . . . . . . . . 16 10.3. Version 02 . . . . . . . . . . . . . . . . . . . . . . . . 15
11.3. Version 02 . . . . . . . . . . . . . . . . . . . . . . . . 16 10.4. Version 03 . . . . . . . . . . . . . . . . . . . . . . . . 15
11.4. Version 03 . . . . . . . . . . . . . . . . . . . . . . . . 16 10.5. Version 04 . . . . . . . . . . . . . . . . . . . . . . . . 15
11.5. Version 04 . . . . . . . . . . . . . . . . . . . . . . . . 17 10.6. Version 05 . . . . . . . . . . . . . . . . . . . . . . . . 16
11.6. Version 05 . . . . . . . . . . . . . . . . . . . . . . . . 17 10.7. Version 06 . . . . . . . . . . . . . . . . . . . . . . . . 16
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 17 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 16
12.1. Normative References . . . . . . . . . . . . . . . . . . . 17 11.1. Normative References . . . . . . . . . . . . . . . . . . . 16
12.2. Informative References . . . . . . . . . . . . . . . . . . 18 11.2. Informative References . . . . . . . . . . . . . . . . . . 17
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]) allow raw UTF-8 in those SMTPUTF8 extension ([RFC6530] and [RFC6532]) allow raw UTF-8 in those
mail header fields. mail header fields.
If a header field contains non-ASCII strings, POP/IMAP servers cannot If a header field contains non-ASCII strings, POP/IMAP servers cannot
send Internationalized Email Headers to legacy clients and, because send Internationalized Email Headers to legacy clients and, because
they have no obvious or standardized way to explain what is going on they have no obvious or standardized way to explain what is 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 There are four plausible approaches to the problem, with the
four plausible approaches to the problem, with the preferred one preferred one depending on the particular circumstances and
depending on the particular circumstances and relationship among the relationship among the delivery SMTP server, the mail store, the POP
delivery SMTP server, the mail store, the POP or IMAP server, and the 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
IMAP servers and clients being used, the message may be rejected IMAP servers and clients being used, the message may be rejected
as undeliverable. as undeliverable.
2. The message may be downgraded by the POP or IMAP server, in a way 2. The message may be downgraded by the POP or IMAP server, in a way
that preserves maximum information at the expense of some that preserves maximum information at the expense of some
complexity. complexity.
3. Some intermediate downgrading may be applied that balances more 3. Some intermediate downgrading may be applied that balances more
skipping to change at page 5, line 14 skipping to change at page 5, line 13
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 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,
this document updates [RFC5322] by redefining "From:" and "Sender:"
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.
Downgrading consists of the following three parts: 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 3 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 4. It
generates ASCII-only header fields. generates ASCII-only header fields.
The definition of MIME header fields in Internationalized Email The definition of MIME header fields in Internationalized Email
Messages is described in [RFC6532]. MIME header field downgrading is Messages is described in [RFC6532]. MIME header field downgrading is
described in Section 6. It generates ASCII-only MIME header fields. described in Section 5. 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",
"non-ASCII address", "SMTPUTF8", "message", "internationalized "non-ASCII address", "SMTPUTF8", "message", "internationalized
message" are used with the definitions from [RFC6530]. The term message" are used with the definitions from [RFC6530]. The term
"non-ASCII string" is used with the definitions from [RFC6532]. "non-ASCII string" is used with the definitions from [RFC6532].
3. Updating RFC 5322 3. New Header Fields Definition
"From:" header field or "Sender:" header field may contain non-ASCII
addresses in internationalized Email messages. These non-ASCII
addresses are not allowed in [RFC5322]. The draft proposes that the
pop/imap downgrading uses <group> syntax and encodes non-ASCII
addresses into <display-name> with empty <group-list> described in
Section 5.
This specification redefines "From:", "Sender:", "Resent-From:" and
"Resent-Sender:" header fields defined in Section 3.6.2 and 3.6.6 of
[RFC5322] to allow <group> in the header fields.
from = "From:" address-list CRLF
resent-from = "Resent-From:" address-list CRLF
sender = "Sender:" address CRLF
resent-sender = "Resent-Sender:" address CRLF
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.
[[ Notes in Draft: If this update is rejected, one possible solution
is to rewrite each <addr-spec> element in "From" and "Sender" header
fields as
ENCODED-WORD "<" NON_EXISTING_ADDRESS ">"
where the <ENCODED-WORD> is the original <addr-spec> encoded
according to [RFC2047] and NON_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.
For example, if the local-part of the "From:" address were the
Russian (in Cyrillic) equivalent of Ivan, with domain-part
"foo.example.net" and the IMAP server being used by the recipient was
"imap.example.com", the encoded word from suggested in this note
might appear as:
From: =?UTF-8?Q?=d0=b8=d0=b2=d0=b0=d0=bd@foo.example.net?=
<invalid-i18n-address@imap.example.com>
That would lead to immediate rejection if a user attempted to reply
uncritically to the message. ]]
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 strings 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 /
skipping to change at page 8, line 12 skipping to change at page 6, line 41
* The initial new field value is the original header field * The initial new field value is the original header field
value. value.
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 4. 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 strings. 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 4.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 strings Converting the header field terminates when no non-ASCII strings
remain in the header field. remain in the header field.
5.1.1. UNSTRUCTURED Downgrading 4.1.1. <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 strings, apply [RFC2047] encoding with charset UTF-8. ASCII strings, apply [RFC2047] encoding with charset UTF-8.
5.1.2. WORD Downgrading 4.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
strings, apply [RFC2047] encoding with charset UTF-8. strings, apply [RFC2047] encoding with charset UTF-8.
5.1.3. COMMENT Downgrading 4.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
strings, apply [RFC2047] encoding with charset UTF-8. strings, apply [RFC2047] encoding with charset UTF-8.
5.1.4. MIME-VALUE Downgrading 4.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 strings, encode the <value> elements the elements contain non-ASCII strings, encode the <value> elements
according to [RFC2231] with charset UTF-8 and leave the language according to [RFC2231] with charset UTF-8 and leave the language
information empty. If the <value> element is <quoted-string> and it information empty. If the <value> element is <quoted-string> and it
contains <CFWS> outside the DQUOTE, remove the <CFWS> before this contains <CFWS> outside the DQUOTE, remove the <CFWS> before this
conversion. conversion.
5.1.5. DISPLAY-NAME Downgrading 4.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 strings, and they have <display-name> elements that contain non-ASCII strings,
encode the <display-name> elements according to [RFC2047] with encode the <display-name> elements according to [RFC2047] with
charset UTF-8. DISPLAY-NAME downgrading is the same algorithm as charset UTF-8. DISPLAY-NAME downgrading is the same algorithm as
WORD downgrading. WORD downgrading.
5.1.6. GROUP Downgrading 4.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.7. MAILBOX Downgrading 4.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 strings in their <addr-spec> element, rewrite each contain non-ASCII strings in their <addr-spec> element, rewrite each
<addr-spec> element to ASCII-only format. The <addr-spec> element <addr-spec> element to ASCII-only format. The <addr-spec> element
that contains non-ASCII strings may appear in two forms as: that contains non-ASCII strings may appear in two forms 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.8. ENCAPSULATION Downgrading 4.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 3 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.9. TYPED-ADDRESS Downgrading 4.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 strings, 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 strings, then fall back to using ENCAPSULATION downgrading on ASCII strings, then fall back to using ENCAPSULATION downgrading on
the entire header field. the entire header field.
5.2. Downgrading Method for Each Header Field 4.2. Downgrading Method for Each Header Field
[RFC4021] establishes a registry of header fields. This section [RFC4021] establishes a registry of header fields. This section
describes the 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 strings, 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 4.2.1. Address Header Fields That Contain <address>s
From: From:
Sender: Sender:
To: To:
Cc: Cc:
Bcc: Bcc:
Reply-To: Reply-To:
Resent-From: Resent-From:
Resent-Sender: Resent-Sender:
Resent-To: Resent-To:
skipping to change at page 11, line 4 skipping to change at page 9, line 28
To: To:
Cc: Cc:
Bcc: Bcc:
Reply-To: Reply-To:
Resent-From: Resent-From:
Resent-Sender: Resent-Sender:
Resent-To: Resent-To:
Resent-Cc: Resent-Cc:
Resent-Bcc: Resent-Bcc:
Resent-Reply-To: Resent-Reply-To:
Return-Path: Return-Path:
Disposition-Notification-To: Disposition-Notification-To:
If the header field contains <group> elements that contain non-ASCII If the header field contains <group> elements that contain non-ASCII
addresses, perform COMMENT downgrading, DISPLAY-NAME downgrading, and addresses, perform <COMMENT> downgrading, <DISPLAY-NAME> downgrading,
GROUP downgrading. and <GROUP> downgrading.
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 This procedure may generate empty <group> elements in "From:",
"Sender:" and "Reply-To:" header fields.
[I-D.leiba-5322upd-from-group] updates [RFC5322] to allow (empty)
<group> elements in "From:", "Sender:" and "Reply-To:" header fields.
4.2.2. Address Header Fields with Typed Addresses
Original-Recipient: Original-Recipient:
Final-Recipient: Final-Recipient:
If the header field contains non-ASCII strings, perform TYPED-ADDRESS If the header field contains non-ASCII strings, perform <TYPED-
downgrading. ADDRESS> downgrading.
5.2.3. Downgrading Non-ASCII in Comments 4.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 strings 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 4.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 4.2.5. Received Header Field
Received: Received:
If the FOR clause contains a non-ASCII address, remove the FOR clause If the FOR clause contains a non-ASCII address, remove the FOR clause
from the header field. Comments may contain non-ASCII strings, from the header field. Comments may contain non-ASCII strings,
Perform COMMENT downgrading. Other parts should not contain non- Perform <COMMENT> downgrading. Other parts should not contain non-
ASCII strings. ASCII strings.
5.2.6. MIME Content Header Fields 4.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> 4.2.7. Non-ASCII in <unstructured>
Subject: Subject:
Comments: Comments:
Content-Description: Content-Description:
Perform UNSTRUCTURED downgrading. Perform <UNSTRUCTURED> downgrading.
5.2.8. Non-ASCII in <phrase> 4.2.8. Non-ASCII in <phrase>
Keywords: Keywords:
Perform WORD downgrading. Perform <WORD> downgrading.
5.2.9. Other Header Fields 4.2.9. Other Header Fields
There are other header fields that contain non-ASCII strings. They There are other header fields that contain non-ASCII strings. They
are user-defined and missing from this document, or future defined are user-defined and missing from this document, or future defined
header fields. They are treated as "Optional Fields" and their field header fields. They are treated as "Optional Fields" and their field
values are treated as unstructured described in Section 3.6.8 of values are treated as unstructured described in Section 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 5. MIME Body-Part Header Field Downgrading
MIME body-part header fields may contain non-ASCII strings [RFC6532]. MIME body-part header fields may contain non-ASCII strings [RFC6532].
This section defines the conversion method to ASCII-only header This section defines the conversion method to ASCII-only header
fields for each MIME header field that contains non-ASCII strings. fields for each MIME header field that contains non-ASCII strings.
Parse the message body's MIME structure at all levels and check each Parse the message body's MIME structure at all levels and check each
MIME header field to see whether it contains non-ASCII strings. If MIME header field to see whether it contains non-ASCII strings. If
the header field contains non-ASCII strings in the header field the header field contains non-ASCII strings in the header field
value, the header field is a target of the MIME body-part header value, the header field is a target of the MIME body-part header
field's downgrading. Each MIME header field's downgrading method is field's downgrading. Each MIME header field's downgrading method is
described below. COMMENT downgrading, MIME-VALUE downgrading, and described below. COMMENT downgrading, MIME-VALUE downgrading, and
UNSTRUCTURED downgrading are described in Section 5. UNSTRUCTURED downgrading are described in Section 4.
Content-ID: Content-ID:
The "Content-ID:" header field does not contain non-ASCII strings The "Content-ID:" header field does not contain non-ASCII strings
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. 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 6. 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 the clients to display 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
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 strings. Furthermore, the body part may contain UTF-8 non-ASCII strings. Furthermore, the body part may contain UTF-8
characters. Implementations parsing Internet messages need to accept characters. Implementations parsing Internet messages need to accept
UTF-8 body parts and UTF-8 header fields that are MIME-encoded. UTF-8 body parts and UTF-8 header fields that are MIME-encoded.
Thus, this document inherits the security considerations of MIME- Thus, this document inherits the security considerations of 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
skipping to change at page 14, line 35 skipping to change at page 13, line 16
MUAs, and may be even less trustworthy than the traditional header MUAs, and may be even less trustworthy than the traditional header
fields. Note that the Downgraded-* header fields could have been fields. Note that the Downgraded-* header fields could have been
inserted with malicious intent (and with content unrelated to the inserted with malicious intent (and with content unrelated to the
traditional header fields), however traditional MUAs do not parse traditional header fields), however traditional MUAs do not parse
Downgraded-* header fields. Downgraded-* header fields.
In addition, if an Authentication-Results header field [RFC5451] is In addition, if an Authentication-Results header field [RFC5451] is
present, traditional MUAs may treat that the digital signatures are present, traditional MUAs may treat that the digital signatures are
valid. valid.
See the "Security Considerations" section in [RFC6530] for more See the "Security Considerations" section in
discussion. [I-D.leiba-5322upd-from-group] and [RFC6530] for more discussion.
8. Implementation Notes 7. Implementation Notes
8.1. RFC 2047 Encoding 7.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
implementations SHOULD limit lines to not more than 78 characters, implementations SHOULD limit lines to not more than 78 characters,
implementations MAY choose to allow overly long encoded words in implementations MAY choose to allow overly long encoded words in
order to work around faulty [RFC2047] implementations. order to work around faulty [RFC2047] implementations.
Implementations that choose to do so SHOULD have an optional Implementations that choose to do so SHOULD have an optional
mechanism to limit line length to 78 characters. mechanism to limit line length to 78 characters.
9. IANA Considerations 8. 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
IANA. ]]
[RFC5504] registered many "Downgraded-" header fields and requested [RFC5504] registered many "Downgraded-" header fields and requested
that 'IANA will refuse registration of all field names that start that 'IANA will refuse registration of all field names that start
with "Downgraded-", to avoid possible conflict with the procedure for with "Downgraded-", to avoid possible conflict with the procedure for
unknown header fields' preservation described in Section 3.3 of unknown header fields' preservation described in Section 3.3 of
[RFC5504].' However [RFC6530] obsoleted [RFC5504] and this document [RFC5504].' However [RFC6530] obsoleted [RFC5504] and this document
does not use all "Downgraded-" header fields registered by [RFC5504]. does not use all "Downgraded-" header fields registered by [RFC5504].
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 3)
Header field name: Downgraded-In-Reply-To Header field name: Downgraded-In-Reply-To
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 3)
Header field name: Downgraded-References Header field name: Downgraded-References
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 3)
Header field name: Downgraded-Original-Recipient Header field name: Downgraded-Original-Recipient
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 3)
Header field name: Downgraded-Final-Recipient Header field name: Downgraded-Final-Recipient
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 3)
10. Acknowledgements 9. 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, Martin J. Durst, and other WG participants. Resnick, Martin J. Durst, and other WG participants.
11. Change History 10. 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 10.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 10.2. Version 01
o same as Version 00 o same as Version 00
11.3. Version 02 10.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 10.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 10.5. Version 04
o Removed "Internationalized Address removed" from GROUP and MAILBOX o Removed "Internationalized Address removed" from GROUP and MAILBOX
downgrading downgrading
o Updated "Updating RFC 5322" o Updated "Updating RFC 5322"
o Compacted new header field definition o Compacted new header field definition
o Compacted security considerations o Compacted security considerations
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.
11.6. Version 05 10.6. Version 05
o Some text corrections o Some text corrections
o Terminology change: only to use non-ASCII address, non-ASCII o Terminology change: only to use non-ASCII address, non-ASCII
message, non-ASCII string and imported them from RFC 6530 and RFC message, non-ASCII string and imported them from RFC 6530 and RFC
6532 6532
o Replace "non-ASCII character" with "non-ASCII string" o Replace "non-ASCII character" with "non-ASCII string"
o Removed 5.1.1. RECEIVED Downgrading: It's o Removed 5.1.1. RECEIVED Downgrading: It's
12. References 10.7. Version 06
12.1. Normative References o Removed "Updating RFC 5322"
[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail o Added reference to draft-leiba-5322upd-from-group
Extensions (MIME) Part One: Format of Internet Message
Bodies", RFC 2045, November 1996.
[RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions) 11. References
Part Three: Message Header Extensions for Non-ASCII Text",
RFC 2047, November 1996.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 11.1. Normative References
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2183] Troost, R., Dorner, S., and K. Moore, "Communicating [RFC2045] Freed, N. and N. Borenstein,
Presentation Information in Internet Messages: The "Multipurpose Internet Mail
Content-Disposition Header Field", RFC 2183, August 1997. Extensions (MIME) Part One: Format of
Internet Message Bodies", RFC 2045,
November 1996.
[RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded [RFC2047] Moore, K., "MIME (Multipurpose
Word Extensions: Internet Mail Extensions) Part Three:
Character Sets, Languages, and Continuations", RFC 2231, Message Header Extensions for Non-
November 1997. ASCII Text", RFC 2047, November 1996.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO [RFC2119] Bradner, S., "Key words for use in
10646", STD 63, RFC 3629, November 2003. RFCs to Indicate Requirement Levels",
BCP 14, RFC 2119, March 1997.
[RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration [RFC2183] Troost, R., Dorner, S., and K. Moore,
Procedures for Message Header Fields", BCP 90, RFC 3864, "Communicating Presentation
September 2004. Information in Internet Messages: The
Content-Disposition Header Field",
RFC 2183, August 1997.
[RFC4021] Klyne, G. and J. Palme, "Registration of Mail and MIME [RFC2231] Freed, N. and K. Moore, "MIME
Header Fields", RFC 4021, March 2005. Parameter Value and Encoded Word
Extensions: Character Sets, Languages
, and Continuations", RFC 2231,
November 1997.
[RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, [RFC3629] Yergeau, F., "UTF-8, a transformation
October 2008. format of ISO 10646", STD 63,
RFC 3629, November 2003.
[RFC6530] Klensin, J. and Y. Ko, "Overview and Framework for [RFC3864] Klyne, G., Nottingham, M., and J.
Internationalized Email", RFC 6530, February 2012. Mogul, "Registration Procedures for
Message Header Fields", BCP 90,
RFC 3864, September 2004.
[RFC6532] Yang, A., Steele, S., and N. Freed, "Internationalized [RFC4021] Klyne, G. and J. Palme, "Registration
Email Headers", RFC 6532, February 2012. of Mail and MIME Header Fields",
RFC 4021, March 2005.
[RFC6533] Hansen, T., Newman, C., and A. Melnikov, [RFC5322] Resnick, P., Ed., "Internet Message
"Internationalized Delivery Status and Disposition Format", RFC 5322, October 2008.
Notifications", RFC 6533, February 2012.
12.2. Informative References [RFC6530] Klensin, J. and Y. Ko, "Overview and
Framework for Internationalized
Email", RFC 6530, February 2012.
[RFC5451] Kucherawy, M., "Message Header Field for Indicating [RFC6532] Yang, A., Steele, S., and N. Freed,
Message Authentication Status", RFC 5451, April 2009. "Internationalized Email Headers",
RFC 6532, February 2012.
[RFC5504] Fujiwara, K. and Y. Yoneya, "Downgrading Mechanism for [RFC6533] Hansen, T., Newman, C., and A.
Email Address Internationalization", RFC 5504, March 2009. Melnikov, "Internationalized Delivery
Status and Disposition
Notifications", RFC 6533,
February 2012.
[I-D.leiba-5322upd-from-group] Leiba, B., "Update to Internet
Message Format to Allow Group Syntax
in the 'From:' Header Field",
draft-leiba-5322upd-from-group-01
(work in progress), July 2012.
11.2. Informative References
[RFC5451] Kucherawy, M., "Message Header Field
for Indicating Message Authentication
Status", RFC 5451, April 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-
local". LOCAL".
o The "To:" header field contains two non-ASCII addresses, o The "To:" header field contains two non-ASCII addresses,
"NON-ASCII-remote1@example.net" and "NON-ASCII-REMOTE1@example.net" and
"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 strings. 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 strings. 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 strings. 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
Message-Id: NON-ASCII-MESSAGE_ID Message-Id: NON-ASCII-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: NON-ASCII-CHARACTERS X-Unknown-Header: NON-ASCII-CHARACTERS
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: =?UTF-8?Q?NON-ASCII-local@example.com?= :; Return-Path: =?UTF-8?Q?NON-ASCII-LOCAL@example.com?= :;
Received: from ... by ... Received: from ... by ...
Received: from ... by ... Received: from ... by ...
From: =?UTF-8?Q?DISPLAY-local?= From: =?UTF-8?Q?DISPLAY-LOCAL?=
=?UTF-8?Q?NON-ASCII-local@example.com?= :; =?UTF-8?Q?NON-ASCII-LOCAL@example.com?= :;
To: =?UTF-8?Q?DISPLAY-remote1?= To: =?UTF-8?Q?DISPLAY-REMOTE1?=
=?UTF-8?Q?NON-ASCII-remote1@example.net?= :;, =?UTF-8?Q?NON-ASCII-REMOTE1@example.net?= :;,
=?UTF-8?Q?DISPLAY-remote2?= =?UTF-8?Q?DISPLAY-REMOTE2?=
=?UTF-8?Q?NON-ASCII-remote2@example.com?= :;, =?UTF-8?Q?NON-ASCII-REMOTE2@example.com?= :;,
Cc: =?UTF-8?Q?DISPLAY-remote3?= Cc: =?UTF-8?Q?DISPLAY-REMOTE3?=
=?UTF-8?Q?NON-ASCII-remote3@example.org?= :; =?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
Figure 2: Downgraded message Figure 2: Downgraded message
Author's Address Author's Address
Kazunori Fujiwara Kazunori Fujiwara
Japan Registry Services Co., Ltd. Japan Registry Services Co., Ltd.
Chiyoda First Bldg. East 13F, 3-8-1 Nishi-Kanda Chiyoda First Bldg. East 13F, 3-8-1 Nishi-Kanda
Chiyoda-ku, Tokyo 101-0065 Chiyoda-ku, Tokyo 101-0065
Japan Japan
 End of changes. 96 change blocks. 
243 lines changed or deleted 207 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/