draft-ietf-eai-popimap-downgrade-01.txt   draft-ietf-eai-popimap-downgrade-02.txt 
Email Address Internationalization K. Fujiwara Email Address Internationalization K. Fujiwara
(EAI) JPRS (EAI) JPRS
Internet-Draft Apr 18, 2011 Internet-Draft July 11, 2011
Intended status: Standards Track Intended status: Standards Track
Expires: October 20, 2011 Expires: January 12, 2012
Post-delivery Message Downgrading for Internationalized Email Messages Post-delivery Message Downgrading for Internationalized Email Messages
draft-ietf-eai-popimap-downgrade-01.txt draft-ietf-eai-popimap-downgrade-02.txt
Abstract Abstract
The Email Address Internationalization (UTF8SMTP) extension allows The Email Address Internationalization (UTF8SMTP) extension allows
UTF-8 characters in mail header fields. POP and IMAP servers support UTF-8 characters in mail header fields. POP and IMAP servers support
internationalized email messages. If a POP/IMAP client does not internationalized email messages. If a POP/IMAP client does not
support Email Address Internationalization, POP/IMAP servers cannot support Email Address Internationalization, POP/IMAP servers cannot
send Internationalized Email Headers to the client and cannot remove send Internationalized Email Headers to the client and cannot remove
the message. To avoid the situation, this document describes a the message. To avoid the situation, this document describes a
conversion mechanism for internationalized Email messages to be conversion mechanism for internationalized Email messages to be
skipping to change at page 1, line 44 skipping to change at page 1, line 44
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on October 20, 2011. This Internet-Draft will expire on January 12, 2012.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the BSD License. described in the BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. New Header Fields Definition . . . . . . . . . . . . . . . . . 4 3. Updating RFC 5322 . . . . . . . . . . . . . . . . . . . . . . 4
3.1. Unknown Header Fields' Preservation Header Fields . . . . 5 4. New Header Fields Definition . . . . . . . . . . . . . . . . . 5
4. Email Header Fields Downgrading . . . . . . . . . . . . . . . 5 4.1. Unknown Header Fields' Preservation Header Fields . . . . 5
4.1. Downgrading Method for Each ABNF Element . . . . . . . . . 5 5. Email Header Fields Downgrading . . . . . . . . . . . . . . . 6
4.1.1. RECEIVED Downgrading . . . . . . . . . . . . . . . . . 6 5.1. Downgrading Method for Each ABNF Element . . . . . . . . . 6
4.1.2. UNSTRUCTURED Downgrading . . . . . . . . . . . . . . . 6 5.1.1. RECEIVED Downgrading . . . . . . . . . . . . . . . . . 7
4.1.3. WORD Downgrading . . . . . . . . . . . . . . . . . . . 6 5.1.2. UNSTRUCTURED Downgrading . . . . . . . . . . . . . . . 7
4.1.4. COMMENT Downgrading . . . . . . . . . . . . . . . . . 6 5.1.3. WORD Downgrading . . . . . . . . . . . . . . . . . . . 7
4.1.5. MIME-VALUE Downgrading . . . . . . . . . . . . . . . . 6 5.1.4. COMMENT Downgrading . . . . . . . . . . . . . . . . . 7
4.1.6. DISPLAY-NAME Downgrading . . . . . . . . . . . . . . . 6 5.1.5. MIME-VALUE Downgrading . . . . . . . . . . . . . . . . 7
4.1.7. MAILBOX Downgrading . . . . . . . . . . . . . . . . . 6 5.1.6. DISPLAY-NAME Downgrading . . . . . . . . . . . . . . . 7
4.1.8. ENCAPSULATION Downgrading . . . . . . . . . . . . . . 7 5.1.7. GROUP Downgrading . . . . . . . . . . . . . . . . . . 7
4.1.9. TYPED-ADDRESS Downgrading . . . . . . . . . . . . . . 7 5.1.8. MAILBOX Downgrading . . . . . . . . . . . . . . . . . 8
4.2. Downgrading Method for Each Header Field . . . . . . . . . 7 5.1.9. ENCAPSULATION Downgrading . . . . . . . . . . . . . . 8
4.2.1. Address Header Fields That Contain <address>s . . . . 7 5.1.10. TYPED-ADDRESS Downgrading . . . . . . . . . . . . . . 8
4.2.2. Address Header Fields with Typed Addresses . . . . . . 8 5.2. Downgrading Method for Each Header Field . . . . . . . . . 8
4.2.3. Downgrading Non-ASCII in Comments . . . . . . . . . . 8 5.2.1. Address Header Fields That Contain <address>s . . . . 9
4.2.4. Received Header Field . . . . . . . . . . . . . . . . 9 5.2.2. Address Header Fields with Typed Addresses . . . . . . 9
4.2.5. MIME Content Header Fields . . . . . . . . . . . . . . 9 5.2.3. Downgrading Non-ASCII in Comments . . . . . . . . . . 9
4.2.6. Non-ASCII in <unstructured> . . . . . . . . . . . . . 9 5.2.4. Received Header Field . . . . . . . . . . . . . . . . 10
4.2.7. Non-ASCII in <phrase> . . . . . . . . . . . . . . . . 9 5.2.5. MIME Content Header Fields . . . . . . . . . . . . . . 10
4.2.8. Other Header Fields . . . . . . . . . . . . . . . . . 9 5.2.6. Non-ASCII in <unstructured> . . . . . . . . . . . . . 10
5. MIME Body-Part Header Field Downgrading . . . . . . . . . . . 10 5.2.7. Non-ASCII in <phrase> . . . . . . . . . . . . . . . . 10
6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 5.2.8. Other Header Fields . . . . . . . . . . . . . . . . . 10
7. Implementation Notes . . . . . . . . . . . . . . . . . . . . . 11 6. MIME Body-Part Header Field Downgrading . . . . . . . . . . . 11
7.1. RFC 2047 Encoding . . . . . . . . . . . . . . . . . . . . 11 7. Security Considerations . . . . . . . . . . . . . . . . . . . 11
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 8. Implementation Notes . . . . . . . . . . . . . . . . . . . . . 12
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 11 8.1. RFC 2047 Encoding . . . . . . . . . . . . . . . . . . . . 12
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
10.1. Normative References . . . . . . . . . . . . . . . . . . . 12 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 13
10.2. Informative References . . . . . . . . . . . . . . . . . . 13 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 13 11.1. Normative References . . . . . . . . . . . . . . . . . . . 13
A.1. Downgrading Example . . . . . . . . . . . . . . . . . . . 13 11.2. Informative References . . . . . . . . . . . . . . . . . . 14
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 14
A.1. Downgrading Example . . . . . . . . . . . . . . . . . . . 14
1. Introduction 1. Introduction
Traditional mail systems, which are defined by [RFC5322], allow ASCII Traditional mail systems, which are defined by [RFC5322], allow ASCII
characters in mail header field values. The UTF8SMTP extension characters in mail header field values. The UTF8SMTP extension
([I-D.ietf-eai-frmwrk-4952bis] and [I-D.ietf-eai-rfc5335bis] allows ([I-D.ietf-eai-frmwrk-4952bis] and [I-D.ietf-eai-rfc5335bis] allows
UTF-8 characters in mail header field values. UTF-8 characters in mail header field values.
If a header field contains non-ASCII characters, POP/IMAP servers If a header field contains non-ASCII characters, POP/IMAP servers
cannot send Internationalized Email Headers to the client and cannot cannot send Internationalized Email Headers to the client and cannot
remove the message. This message downgrading mechanism converts mail remove the message. This message downgrading mechanism converts mail
header fields to an all-ASCII representation. The POP/IMAP servers header fields to an all-ASCII representation. The POP/IMAP servers
can use the downgrading mechanism and send the Internationalized can use the downgrading mechanism and send the Internationalized
Email message as a traditional form. Email message as a traditional form.
[I-D.ietf-eai-rfc5335bis] allows UTF-8 characters to be used in mail [I-D.ietf-eai-rfc5335bis] allows UTF-8 characters to be used in mail
header fields and MIME header fields. The message downgrading header fields and MIME header fields. The message downgrading
mechanism specified here converts mail header fields and MIME header mechanism specified here describes the conversion method from the
fields to ASCII.
This document does not change any protocols except by defining new
header fields. It describes the conversion method from the
internationalized email messages that are defined in internationalized email messages that are defined in
[I-D.ietf-eai-frmwrk-4952bis], and [I-D.ietf-eai-rfc5335bis] to the [I-D.ietf-eai-frmwrk-4952bis], and [I-D.ietf-eai-rfc5335bis] 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,
the draft need to update [RFC5322] to allow empty "From:" and
"Sender:" header fields and it is described in Section 3.
Message Downgrading may be implemented in POP server and IMAP server Message Downgrading may be implemented in POP server and IMAP server
only. only.
This document tries to define the message downgrading process This document tries to define the message downgrading process
clearly. clearly.
Downgrading consists of the following three parts: Downgrading consists of the following four parts:
o Updating RFC 5322
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 3 of this document, header fields starting with In Section 4 of this document, header fields starting with
"Downgraded-" are introduced. They preserve the original header "Downgraded-" are introduced. They preserve the original header
fields. fields.
Email header field downgrading is described in Section 4. It Email header field downgrading is described in Section 5. It
generates ASCII-only header fields. generates ASCII-only header fields.
MIME header fields are expanded in [I-D.ietf-eai-rfc5335bis]. MIME MIME header fields are expanded in [I-D.ietf-eai-rfc5335bis]. MIME
header field downgrading is described in Section 5. It generates header field downgrading is described in Section 6. It generates
ASCII-only MIME header fields. 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 internationalized message format described in
[I-D.ietf-eai-rfc5335bis]. [I-D.ietf-eai-rfc5335bis].
2. Terminology 2. Terminology
skipping to change at page 4, line 37 skipping to change at page 5, line 39
This document depends on [I-D.ietf-eai-rfc5335bis]. Key words used This document depends on [I-D.ietf-eai-rfc5335bis]. Key words used
in those documents are used in this document, too. in those documents are used in this document, too.
The term "non-ASCII" refers to a UTF-8 string that contains at least The term "non-ASCII" refers to a UTF-8 string that contains at least
one non-ASCII character. one non-ASCII character.
A "UTF8SMTP message" is an email message expanded by A "UTF8SMTP message" is an email message expanded by
[I-D.ietf-eai-rfc5335bis]. [I-D.ietf-eai-rfc5335bis].
3. New Header Fields Definition 3. Updating RFC 5322
"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
[[Note in Draft: There are still outstanding questions about the use
of group syntax that the WG should resolve, or confirm that it is
willing to live with and figure out how to describe in the document,
at IETF 81. They include
1. RFC 5322 does not allow group syntax in From and Sender header
fields. Existing MUAs may become very confused when they see
group syntax in originator fields.
2. Use of group syntax in this way will essentially make it
impossible to reply to a message.
3. "Reply-To:" header field allows the group syntax in [RFC5322].
Is it correct ?
4. The ABNF syntax here is not yet complete.
5. Should the document explicitly recommend the use of comments,
possibly with encoded words, to document the original non-ASCII
mailboxes?
Suggestion made to the WG for more in depth discussion. ]]
4. New Header Fields Definition
New header fields starting with "Downgraded-" are defined here to New header fields starting with "Downgraded-" are defined here to
preserve those mail header field values that contain UTF-8 preserve those mail header field values that contain UTF-8
characters. During downgrading, one new "Downgraded-" header field characters. During downgrading, one new "Downgraded-" header field
is added for each mail header field that cannot be passed as-is to a is added for each mail header field that cannot be passed as-is to a
POP/IMAP client that does not support UTF8 extension. The original POP/IMAP client that does not support UTF8 extension. The original
mail header field is removed or rewritten. Only those mail header mail header field is removed or rewritten. Only those mail header
fields that contain non-ASCII characters are affected. The result of fields that contain non-ASCII characters are affected. The result of
this process is a message that is compliant with existing email this process is a message that is compliant with existing email
specifications [RFC5322]. The original internationalized information specifications [RFC5322]. The original internationalized information
can be retrieved by examining the "Downgraded-" header fields that can be retrieved by examining the "Downgraded-" header fields that
were added. were added.
3.1. Unknown Header Fields' Preservation Header Fields 4.1. Unknown Header Fields' Preservation Header Fields
The unknown header fields' preservation header fields are defined to The unknown header fields' preservation header fields are defined to
encapsulate those original header fields that contain non-ASCII encapsulate those original header fields that contain non-ASCII
characters and are not otherwise provided for in this specification. characters and are not otherwise provided for in this specification.
The encapsulation header field name is the concatenation of The encapsulation header field name is the concatenation of
"Downgraded-" and the original name. The value field holds the "Downgraded-" and the original name. The value field holds the
original header field value. original header field value.
The header field syntax is specified as follows: The header field syntax is specified as follows:
fields =/ unknown-downgraded-headers ":" unstructured CRLF fields =/ unknown-downgraded-headers ":" unstructured CRLF
unknown-downgraded-headers = "Downgraded-" original-header-field-name unknown-downgraded-headers = "Downgraded-" original-header-field-name
skipping to change at page 5, line 38 skipping to change at page 7, line 33
1. Generate a new "Downgraded-" header field whose value is the 1. Generate a new "Downgraded-" header field whose value is the
original header field value. original header field value.
2. Treat the generated header field content as if it were 2. Treat the generated header field content 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 the result is ASCII. UTF-8 as necessary so the result is ASCII.
3. Remove the original header field. 3. Remove the original header field.
4. Email Header Fields Downgrading 5. Email Header Fields Downgrading
This section defines the conversion method to ASCII for each header This section defines the conversion method to ASCII for each header
field that may contain non-ASCII characters. field that may contain non-ASCII characters.
[I-D.ietf-eai-rfc5335bis] expands "Received:" header fields; [I-D.ietf-eai-rfc5335bis] expands "Received:" header fields;
[RFC5322] describes ABNF elements <mailbox>, <word>, <comment>, [RFC5322] describes ABNF elements <mailbox>, <word>, <comment>,
<unstructured>; [RFC2045] describes ABNF element <value>. <unstructured>; [RFC2045] describes ABNF element <value>.
4.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.
Downgrading an unknown header field is also defined as ENCAPSULATION Downgrading an unknown header field is also defined as ENCAPSULATION
downgrading. Converting the header field terminates when no non- downgrading. Converting the header field terminates when no non-
ASCII characters remain in the header field. ASCII characters remain in the header field.
4.1.1. RECEIVED Downgrading 5.1.1. RECEIVED Downgrading
If the header field name is "Received:" and the FOR clause contains a If the header field name is "Received:" and the FOR clause contains a
non-ASCII address, remove the FOR clause from the header field. non-ASCII address, remove the FOR clause from the header field.
Other parts (not counting <comment>s) should not contain non-ASCII Other parts (not counting <comment>s) should not contain non-ASCII
values. values.
4.1.2. UNSTRUCTURED Downgrading 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 characters, apply [RFC2047] encoding with charset UTF-8.
4.1.3. WORD Downgrading 5.1.3. 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. characters, apply [RFC2047] encoding with charset UTF-8.
4.1.4. COMMENT Downgrading 5.1.4. 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. characters, apply [RFC2047] encoding with charset UTF-8.
4.1.5. MIME-VALUE Downgrading 5.1.5. 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 characters, encode the <value>
elements according to [RFC2231] with charset UTF-8 and leave the elements according to [RFC2231] with charset UTF-8 and leave the
language information empty. If the <value> element is <quoted- language information empty. If the <value> element is <quoted-
string> and it contains <CFWS> outside the DQUOTE, remove the <CFWS> string> and it contains <CFWS> outside the DQUOTE, remove the <CFWS>
before this conversion. before this conversion.
4.1.6. DISPLAY-NAME Downgrading 5.1.6. 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
characters, encode the <display-name> elements according to [RFC2047] characters, encode the <display-name> elements according to [RFC2047]
with charset UTF-8. DISPLAY-NAME downgrading is the same algorithm with charset UTF-8. DISPLAY-NAME downgrading is the same algorithm
as WORD downgrading. as WORD downgrading.
4.1.7. MAILBOX Downgrading 5.1.7. GROUP Downgrading
<group> is defined in Section 3.4 of [RFC5322]. The <group> elements
may contain <mailbox>s which contain non-ASCII addresses.
If the header field has any <group> elements which contain <mailbox>
elements that contain non-ASCII addresses, rewrite each <group>
element as
"Internationalized_Address_Removed" display-name ENCODED_WORD ":;" [CFWS]
where the <ENCODED_WORD> is the original <group-list> encoded
according to [RFC2047].
5.1.8. MAILBOX Downgrading
The <mailbox> elements have no equivalent format for non-ASCII The <mailbox> elements have no equivalent format for non-ASCII
addresses. If the header field has any <mailbox> elements that addresses. If the header field has any <mailbox> elements that
contain non-ASCII characters, rewrite each <mailbox> element to contain non-ASCII characters, rewrite each <mailbox> element to
ASCII-only format. The <mailbox> element that contains non-ASCII ASCII-only format. The <mailbox> element that contains non-ASCII
characters is one of two formats. characters is one of two formats.
[ Display-name ] "<" Utf8-addr-spec ">" [ Display-name ] "<" Utf8-addr-spec ">"
Utf8-addr-spec Utf8-addr-spec
Rewrite both as: Rewrite both as:
[ Display-name ] "Internationalized Address " Encoded-word [ Display-name ] "Internationalized Address " Encoded-word
" Removed:;" " Removed:;"
where the <Encoded-word> is the original <Utf8-addr-spec> encoded where the <Encoded-word> is the original <Utf8-addr-spec> encoded
according to [RFC2047]. according to [RFC2047].
[[ Note: If the original non-ASCII address is a part of a group 5.1.9. ENCAPSULATION Downgrading
address, this rewriting may conflict the original DISPLAY-NAME. This
problem need to be fixed. ]]
4.1.8. ENCAPSULATION Downgrading
If the header field contains non-ASCII characters and is such that no If the header field contains non-ASCII characters and is such that no
rule is given above, encapsulate it in a "Downgraded-" header field rule is given above, encapsulate it in a "Downgraded-" header field
as described in Section 3.1 as a last resort. as described in Section 4.1 as a last resort.
Applying this procedure to "Received:" header field is prohibited. Applying this procedure to "Received:" header field is prohibited.
4.1.9. TYPED-ADDRESS Downgrading 5.1.10. TYPED-ADDRESS Downgrading
If the header field contains <utf-8-type-addr> and the <utf-8-type- If the header field contains <utf-8-type-addr> and the <utf-8-type-
addr> contains raw non-ASCII characters, it is in utf-8-address form. addr> contains raw non-ASCII characters, it is in utf-8-address form.
Convert it to utf-8-addr-xtext form. Those forms are described in Convert it to utf-8-addr-xtext form. Those forms are described in
[I-D.ietf-eai-rfc5337bis-dsn]. COMMENT downgrading is also performed [I-D.ietf-eai-rfc5337bis-dsn]. COMMENT downgrading is also performed
in this case. If the address type is unrecognized and the header in this case. If the address type is unrecognized and the header
field contains non-ASCII characters, then fall back to using field contains non-ASCII characters, then fall back to using
ENCAPSULATION downgrading on the entire header field. ENCAPSULATION downgrading on the entire header field.
4.2. Downgrading Method for Each Header Field 5.2. Downgrading Method for Each Header Field
Header fields are listed in [RFC4021]. This section describes the Header fields are listed in [RFC4021]. This section describes the
downgrading method for each header field. downgrading method for each header field.
If the whole mail header field does not contain non-ASCII characters, If the whole mail header field does not contain non-ASCII characters,
email header field downgrading is not required. Each header field's email header field downgrading is not required. Each header field's
downgrading method is described below. downgrading method is described below.
4.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:
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
addresses, perform COMMENT downgrading, DISPLAY-NAME 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.
[[ Note: RFC 5322 does not allow group syntax in "From:", "Resent- 5.2.2. Address Header Fields with Typed Addresses
From:", "Sender:", "Resent-Sender:", but proposed method uses group
syntax. This problem need to be fixed. ]]
4.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 characters, perform TYPED-
ADDRESS downgrading. ADDRESS downgrading.
4.2.3. Downgrading Non-ASCII in Comments 5.2.3. Downgrading Non-ASCII in Comments
Date: Date:
Message-ID: Message-ID:
Resent-Message-ID: Resent-Message-ID:
In-Reply-To: In-Reply-To:
References: References:
Resent-Date: Resent-Date:
Resent-Message-ID: Resent-Message-ID:
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 characters 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.
4.2.4. Received Header Field 5.2.4. Received Header Field
Received: Received:
Perform COMMENT downgrading and RECEIVED downgrading. Perform COMMENT downgrading and RECEIVED downgrading.
4.2.5. MIME Content Header Fields 5.2.5. 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.
4.2.6. Non-ASCII in <unstructured> 5.2.6. Non-ASCII in <unstructured>
Subject: Subject:
Comments: Comments:
Content-Description: Content-Description:
Perform UNSTRUCTURED downgrading. Perform UNSTRUCTURED downgrading.
4.2.7. Non-ASCII in <phrase> 5.2.7. Non-ASCII in <phrase>
Keywords: Keywords:
Perform WORD downgrading. Perform WORD downgrading.
4.2.8. Other Header Fields 5.2.8. Other Header Fields
For all other header fields that contain non-ASCII characters, are For all other header fields that contain non-ASCII characters, are
user-defined, and are missing from this document or future defined user-defined, and are missing from this document or future defined
header fields, perform ENCAPSULATION downgrading. header fields, perform ENCAPSULATION 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 ENCAPSULATION is applicable, that downgrading algorithm other than ENCAPSULATION is applicable, that
software SHOULD use that algorithm; ENCAPSULATION downgrading is used software SHOULD use that algorithm; ENCAPSULATION 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.
5. MIME Body-Part Header Field Downgrading 6. MIME Body-Part Header Field Downgrading
MIME body-part header fields may contain non-ASCII characters MIME body-part header fields may contain non-ASCII characters
[I-D.ietf-eai-rfc5335bis]. This section defines the conversion [I-D.ietf-eai-rfc5335bis]. This section defines the conversion
method to ASCII-only header fields for each MIME header field that method to ASCII-only header fields for each MIME header field that
contains non-ASCII characters. Parse the message body's MIME contains non-ASCII characters. Parse the message body's MIME
structure at all levels and check each MIME header field to see structure at all levels and check each MIME header field to see
whether it contains non-ASCII characters. If the header field whether it contains non-ASCII characters. If the header field
contains non-ASCII characters in the header field value, the header contains non-ASCII characters in the header field value, the header
field is a target of the MIME body-part header field's downgrading. field is a target of the MIME body-part header field's downgrading.
Each MIME header field's downgrading method is described below. Each MIME header field's downgrading method is described below.
COMMENT downgrading, MIME-VALUE downgrading, and UNSTRUCTURED COMMENT downgrading, MIME-VALUE downgrading, and UNSTRUCTURED
downgrading are described in Section 4. downgrading are described in Section 5.
Content-ID: Content-ID:
The "Content-ID:" header field does not contain non-ASCII The "Content-ID:" header field does not contain non-ASCII
characters except in comments. If the header field contains UTF-8 characters except in comments. If the header field contains UTF-8
characters in comments, perform COMMENT downgrading. characters in comments, perform COMMENT downgrading.
Content-Type: Content-Type:
Content-Disposition: Perform MIME-VALUE downgrading and COMMENT Content-Disposition: Perform MIME-VALUE downgrading and COMMENT
downgrading. downgrading.
Content-Description: Perform UNSTRUCTURED downgrading. Content-Description: Perform UNSTRUCTURED downgrading.
6. Security Considerations 7. Security Considerations
A downgraded message's header fields contain ASCII characters only. A downgraded message's header fields contain ASCII characters only.
But they still contain MIME-encapsulated header fields that contain But they still contain MIME-encapsulated header fields that contain
non-ASCII UTF-8 characters. Furthermore, the body part may contain non-ASCII UTF-8 characters. Furthermore, the body part may contain
UTF-8 characters. Implementations parsing Internet messages need to UTF-8 characters. Implementations parsing Internet messages need to
accept UTF-8 body parts and UTF-8 header fields that are MIME- accept UTF-8 body parts and UTF-8 header fields that are MIME-
encoded. Thus, this document inherits the security considerations of encoded. Thus, this document inherits the security considerations of
MIME-encoded header fields ([RFC2047] and [RFC3629]). MIME-encoded header fields ([RFC2047] and [RFC3629]).
Rewriting header fields increases the opportunities for undetected Rewriting header fields increases the opportunities for undetected
skipping to change at page 11, line 22 skipping to change at page 13, line 28
mechanisms and protocols to make the information more trustworthy. mechanisms and protocols to make the information more trustworthy.
Currently, information in the new Downgraded-* header fields is Currently, information in the new Downgraded-* header fields is
usually not inspected by these mechanisms, and may be even less usually not inspected by these mechanisms, and may be even less
trustworthy than the traditional header fields. Note that the trustworthy than the traditional header fields. Note that the
Downgraded-* header fields could have been inserted with malicious Downgraded-* header fields could have been inserted with malicious
intent (and with content unrelated to the traditional header fields). intent (and with content unrelated to the traditional header fields).
See the "Security Considerations" section in See the "Security Considerations" section in
[I-D.ietf-eai-frmwrk-4952bis] for more discussion. [I-D.ietf-eai-frmwrk-4952bis] for more discussion.
7. Implementation Notes 8. Implementation Notes
7.1. RFC 2047 Encoding 8.1. RFC 2047 Encoding
While [RFC2047] has a specific algorithm to deal with whitespace in While [RFC2047] has a specific algorithm to deal with whitespace in
adjacent encoded words, there are a number of deployed adjacent encoded words, there are a number of deployed
implementations that fail to implement the algorithm correctly. As a implementations that fail to implement the algorithm correctly. As a
result, whitespace behavior is somewhat unpredictable in practice result, whitespace behavior is somewhat unpredictable in practice
when multiple encoded words are used. While RFC 5322 states that when multiple encoded words are used. While RFC 5322 states that
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.
8. IANA Considerations 9. IANA Considerations
IANA is requested to refuse registration of all field names that IANA is requested to refuse registration of all field names that
start with "Downgraded-". For unknown header fields, use the start with "Downgraded-". For unknown header fields, use the
downgrading method described in Section 3.1 to avoid conflicts with downgrading method described in Section 4.1 to avoid conflicts with
existing IETF activity (Email Address Internationalization). existing IETF activity (Email Address Internationalization).
9. Acknowledgements 10. Acknowledgements
This document draws heavily from the experimental in-transit message This document draws heavily from the experimental in-transit message
downgrading procedure described in RFC 5504 [RFC5504]. The downgrading procedure described in RFC 5504 [RFC5504]. The
contribution of the co-author of that earlier document, Y. Yoneya, contribution of the co-author of that earlier document, Y. Yoneya,
are gratefully acknowledged. are gratefully acknowledged.
10. References 11. References
10.1. Normative References
11.1. Normative References
[I-D.ietf-eai-frmwrk-4952bis] Klensin, J. and Y. Ko, "Overview and [I-D.ietf-eai-frmwrk-4952bis] Klensin, J. and Y. Ko, "Overview and
Framework for Internationalized Framework for Internationalized
Email", Email",
draft-ietf-eai-frmwrk-4952bis-10 (work draft-ietf-eai-frmwrk-4952bis-10 (work
in progress), September 2010. in progress), September 2010.
[I-D.ietf-eai-rfc5335bis] Yang, A. and S. Steele, [I-D.ietf-eai-rfc5335bis] Yang, A., Steele, S., and N. Freed,
"Internationalized Email Headers", "Internationalized Email Headers",
draft-ietf-eai-rfc5335bis-10 (work in draft-ietf-eai-rfc5335bis-11 (work in
progress), March 2011. progress), July 2011.
[I-D.ietf-eai-rfc5337bis-dsn] Hansen, T., Newman, C., and A. [I-D.ietf-eai-rfc5337bis-dsn] Hansen, T., Newman, C., and A.
Melnikov, "Internationalized Delivery Melnikov, "Internationalized Delivery
Status and Disposition Notifications", Status and Disposition Notifications",
draft-ietf-eai-rfc5337bis-dsn-02 (work draft-ietf-eai-rfc5337bis-dsn-02 (work
in progress), April 2011. in progress), April 2011.
[RFC2045] Freed, N. and N. Borenstein, [RFC2045] Freed, N. and N. Borenstein,
"Multipurpose Internet Mail Extensions "Multipurpose Internet Mail Extensions
(MIME) Part One: Format of Internet (MIME) Part One: Format of Internet
Message Bodies", RFC 2045, Message Bodies", RFC 2045,
November 1996. November 1996.
[RFC2047] Moore, K., "MIME (Multipurpose [RFC2047] Moore, K., "MIME (Multipurpose
Internet Mail Extensions) Part Three: Internet Mail Extensions) Part Three:
Message Header Extensions for Non- Message Header Extensions for Non-
ASCII Text", RFC 2047, November 1996. ASCII Text", 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, [RFC2183] Troost, R., Dorner, S., and K. Moore,
"Communicating Presentation "Communicating Presentation
Information in Internet Messages: The Information in Internet Messages: The
Content-Disposition Header Field", Content-Disposition Header Field",
RFC 2183, August 1997. RFC 2183, August 1997.
[RFC2231] Freed, N. and K. Moore, "MIME [RFC2231] Freed, N. and K. Moore, "MIME
Parameter Value and Encoded Word Parameter Value and Encoded Word
Extensions: Character Sets, Languages, Extensions: Character Sets, Languages,
and Continuations", RFC 2231, 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 [RFC3629] Yergeau, F., "UTF-8, a transformation
format of ISO 10646", STD 63, format of ISO 10646", STD 63,
RFC 3629, November 2003. RFC 3629, November 2003.
[RFC4021] Klyne, G. and J. Palme, "Registration [RFC4021] Klyne, G. and J. Palme, "Registration
of Mail and MIME Header Fields", of Mail and MIME Header Fields",
RFC 4021, March 2005. RFC 4021, March 2005.
[RFC2119] Bradner, S., "Key words for use in [RFC5322] Resnick, P., Ed., "Internet Message
RFCs to Indicate Requirement Levels", Format", RFC 5322, October 2008.
BCP 14, RFC 2119, March 1997.
10.2. Informative References 11.2. Informative References
[RFC5504] Fujiwara, K. and Y. Yoneya, [RFC5504] Fujiwara, K. and Y. Yoneya,
"Downgrading Mechanism for Email "Downgrading Mechanism for Email
Address Internationalization", Address Internationalization",
RFC 5504, March 2009. RFC 5504, March 2009.
Appendix A. Examples Appendix A. Examples
A.1. Downgrading Example A.1. Downgrading Example
 End of changes. 53 change blocks. 
98 lines changed or deleted 156 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/