draft-ietf-eai-downgrade-09.txt   draft-ietf-eai-downgrade-10.txt 
Email Address Internationalization K. Fujiwara, Ed. Email Address Internationalization K. Fujiwara, Ed.
(EAI) Y. YONEYA, Ed. (EAI) Y. YONEYA, Ed.
Internet-Draft JPRS Internet-Draft JPRS
Intended status: Experimental Sep 17, 2008 Intended status: Experimental Dec 11, 2008
Expires: March 21, 2009 Expires: June 14, 2009
Downgrading mechanism for Email Address Internationalization Downgrading mechanism for Email Address Internationalization
draft-ietf-eai-downgrade-09.txt draft-ietf-eai-downgrade-10.txt
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 35 skipping to change at page 1, line 35
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 March 21, 2009. This Internet-Draft will expire on June 14, 2009.
Abstract Abstract
Traditional mail systems handle only ASCII characters in SMTP Traditional mail systems handle only ASCII characters in SMTP
envelope and mail header fields. The Email Address envelope and mail header fields. The Email Address
Internationalization (UTF8SMTP) extension allows UTF-8 characters in Internationalization (UTF8SMTP) extension allows UTF-8 characters in
SMTP envelope and mail header fields. To avoid rejecting SMTP envelope and mail header fields. To avoid rejecting
internationalized Email messages when a server in the delivery path internationalized Email messages when a server in the delivery path
does not support the UTF8SMTP extension, some sort of converting does not support the UTF8SMTP extension, some sort of converting
mechanism is required. This document describes a downgrading mechanism is required. This document describes a downgrading
skipping to change at page 2, line 18 skipping to change at page 2, line 18
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. New header fields definition . . . . . . . . . . . . . . . . . 4 3. New header fields definition . . . . . . . . . . . . . . . . . 4
3.1. Envelope information preservation headers . . . . . . . . 5 3.1. Envelope information preservation headers . . . . . . . . 5
3.2. Address header field preservation headers . . . . . . . . 5 3.2. Address header field preservation headers . . . . . . . . 5
3.3. Unknown header fields preservation headers . . . . . . . 6 3.3. Unknown header fields preservation headers . . . . . . . 6
4. SMTP Downgrading . . . . . . . . . . . . . . . . . . . . . . . 6 4. SMTP Downgrading . . . . . . . . . . . . . . . . . . . . . . . 6
4.1. Path element downgrading . . . . . . . . . . . . . . . . 7 4.1. Path element downgrading . . . . . . . . . . . . . . . . 7
4.2. ORCPT downgrading . . . . . . . . . . . . . . . . . . . . 7 4.2. ORCPT downgrading . . . . . . . . . . . . . . . . . . . . 7
5. Email header fields downgrading . . . . . . . . . . . . . . . 8 5. Email header fields downgrading . . . . . . . . . . . . . . . 8
5.1. Downgrading method for each header field . . . . . . . . 9 5.1. Downgrading method for each header field . . . . . . . . 10
6. MIME body part headers downgrading . . . . . . . . . . . . . . 11 6. MIME body part headers downgrading . . . . . . . . . . . . . . 12
7. Security considerations . . . . . . . . . . . . . . . . . . . 12 7. Security considerations . . . . . . . . . . . . . . . . . . . 13
8. Implementation notes . . . . . . . . . . . . . . . . . . . . . 12 8. Implementation notes . . . . . . . . . . . . . . . . . . . . . 14
8.1. Trivial downgrading . . . . . . . . . . . . . . . . . . . 12 8.1. RFC 2047 encoding . . . . . . . . . . . . . . . . . . . . 14
8.2. 7bit transport consideration . . . . . . . . . . . . . . 13 8.2. Trivial downgrading . . . . . . . . . . . . . . . . . . . 14
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 8.3. 7bit transport consideration . . . . . . . . . . . . . . 15
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 16 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15
11. Change History . . . . . . . . . . . . . . . . . . . . . . . . 16 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 17
11.1. draft-yoneya-ima-downgrade: Version 00 . . . . . . . . . 16 11. Change History . . . . . . . . . . . . . . . . . . . . . . . . 17
11.2. draft-yoneya-ima-downgrade: Version 01 . . . . . . . . . 16 11.1. draft-yoneya-ima-downgrade: Version 00 . . . . . . . . . 17
11.3. draft-ietf-eai-downgrade: Version 00 . . . . . . . . . . 16 11.2. draft-yoneya-ima-downgrade: Version 01 . . . . . . . . . 17
11.4. draft-ietf-eai-downgrade: Version 01 . . . . . . . . . . 16 11.3. draft-ietf-eai-downgrade: Version 00 . . . . . . . . . . 17
11.5. draft-ietf-eai-downgrade: Version 02 . . . . . . . . . . 16 11.4. draft-ietf-eai-downgrade: Version 01 . . . . . . . . . . 18
11.6. draft-ietf-eai-downgrade: Version 03 . . . . . . . . . . 17 11.5. draft-ietf-eai-downgrade: Version 02 . . . . . . . . . . 18
11.7. draft-ietf-eai-downgrade: Version 04 . . . . . . . . . . 17 11.6. draft-ietf-eai-downgrade: Version 03 . . . . . . . . . . 18
11.8. draft-ietf-eai-downgrade: Version 05 . . . . . . . . . . 17 11.7. draft-ietf-eai-downgrade: Version 04 . . . . . . . . . . 18
11.9. draft-ietf-eai-downgrade: Version 06 . . . . . . . . . . 17 11.8. draft-ietf-eai-downgrade: Version 05 . . . . . . . . . . 18
11.10. draft-ietf-eai-downgrade: Version 07 . . . . . . . . . . 18 11.9. draft-ietf-eai-downgrade: Version 06 . . . . . . . . . . 19
11.11. draft-ietf-eai-downgrade: Version 08 . . . . . . . . . . 18 11.10. draft-ietf-eai-downgrade: Version 07 . . . . . . . . . . 19
12. Normative References . . . . . . . . . . . . . . . . . . . . . 18 11.11. draft-ietf-eai-downgrade: Version 08 . . . . . . . . . . 19
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 19 11.12. draft-ietf-eai-downgrade: Version 09 . . . . . . . . . . 19
A.1. Downgrading example 1 . . . . . . . . . . . . . . . . . . 19 11.13. draft-ietf-eai-downgrade: Version 10 . . . . . . . . . . 19
A.2. Downgrading example 2 . . . . . . . . . . . . . . . . . . 22 12. Normative References . . . . . . . . . . . . . . . . . . . . . 19
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 24 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 20
Intellectual Property and Copyright Statements . . . . . . . . . . 25 A.1. Downgrading example 1 . . . . . . . . . . . . . . . . . . 20
A.2. Downgrading example 2 . . . . . . . . . . . . . . . . . . 23
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 25
Intellectual Property and Copyright Statements . . . . . . . . . . 26
1. Introduction 1. Introduction
Traditional mail systems which are defined by [RFC2821] and [RFC2822] Traditional mail systems which are defined by [RFC5321] and [RFC5322]
allow ASCII characters in SMTP envelope and mail header field values. allow ASCII characters in SMTP envelope and mail header field values.
The UTF8SMTP extension [RFC4952], [RFC5335] and [RFC5336] allows The UTF8SMTP extension [RFC4952], [RFC5335] and [RFC5336] allows
UTF-8 characters in SMTP envelope and mail header field values. UTF-8 characters in SMTP envelope and mail header field values.
If an envelope address or header field contains non-ASCII characters, If an envelope address or header field contains non-ASCII characters,
the message cannot be delivered unless every system in the delivery the message cannot be delivered unless every system in the delivery
path supports UTF8SMTP. This document describes a downgrading path supports UTF8SMTP. This document describes a downgrading
mechanism to avoid rejection of such messages when a server which mechanism to avoid rejection of such messages when a server which
does not support the UTF8SMTP extension is encountered. Downgrading does not support the UTF8SMTP extension is encountered. Downgrading
mechanism converts envelope and header fields to an all-ASCII mechanism converts envelope and header fields to an all-ASCII
representation. representation.
[RFC5335] allows UTF-8 characters to be used in mail header fields [RFC5335] allows UTF-8 characters to be used in mail header fields
and MIME header fields. The downgrading mechanism specified here and MIME header fields. The downgrading mechanism specified here
converts mail header fields and MIME header fields to ASCII. converts mail header fields and MIME header fields to ASCII.
This document does not change any protocols except by defining new This document does not change any protocols except by defining new
header fields. It describes the conversion method from the header fields. It describes the conversion method from the
internationalized email envelopes/messages which are defined in internationalized email envelopes/messages which are defined in
[RFC4952] [RFC5335] [RFC5336] to the traditional email envelopes/ [RFC4952] [RFC5335] [RFC5336] to the traditional email envelopes/
messages which are defined in [RFC2821] [RFC2822]. messages which are defined in [RFC5321] [RFC5322].
[RFC5336] section 2.2 defines when downgrading occurs. If the SMTP [RFC5336] section 2.2 defines when downgrading occurs. If the SMTP
client has an UTF8SMTP envelope or an internationalized message and client has an UTF8SMTP envelope or an internationalized message and
the SMTP server doesn't support the UTF8SMTP SMTP extension, then the the SMTP server doesn't support the UTF8SMTP SMTP extension, then the
SMTP client MUST NOT send a UTF8SMTP envelope or an internationalized SMTP client MUST NOT send a UTF8SMTP envelope or an internationalized
message to the SMTP server. The section shows 4 choices. The fourth message to the SMTP server. The section shows 4 choices. The fourth
choice is downgrading, as described here. choice is downgrading, as described here.
Downgrading may be implemented in MUAs, MSAs, MTAs which act as the Downgrading may be implemented in MUAs, MSAs, MTAs which act as the
SMTP client, or in MDAs, POP servers, IMAP servers which store or SMTP client, or in MDAs, POP servers, IMAP servers which store or
skipping to change at page 4, line 24 skipping to change at page 4, line 24
fields downgrading is described in Section 6. It generates ASCII fields downgrading is described in Section 6. It generates ASCII
only MIME header fields. only MIME header fields.
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
EAI overview [RFC4952] or in [RFC2821][RFC2822], MIME documents EAI overview [RFC4952] or in [RFC5321][RFC5322], MIME documents
[RFC2045] [RFC2047] [RFC2183] [RFC2231]. The terms "ASCII address", [RFC2045] [RFC2047] [RFC2183] [RFC2231]. The terms "ASCII address",
"internationalized email address", "non-ASCII address", "i18mail "internationalized email address", "non-ASCII address", "i18mail
address", "UTF8SMTP", "message" and "mailing list" are used with the address", "UTF8SMTP", "message" and "mailing list" are used with the
definitions from [RFC4952] document. definitions from [RFC4952] document.
This document depends on [RFC5335], [RFC5336], and [RFC5337]. Key This document depends on [RFC5335], [RFC5336], and [RFC5337]. Key
words used in these document are used in this document, too. words used in these document are used in this document, too.
The term "non-ASCII" is an UTF-8 string which contains at least one The term "non-ASCII" is an UTF-8 string which contains at least one
non-ASCII character. non-ASCII character.
skipping to change at page 5, line 5 skipping to change at page 5, line 5
3. New header fields definition 3. 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 original envelope and header values which contain preserve those original envelope and header values which contain
UTF-8 characters. During downgrading, one new "Downgraded-" header UTF-8 characters. During downgrading, one new "Downgraded-" header
field is added for each original envelope or header field which field is added for each original envelope or header field which
cannot be passed as-is to a server which does not support UTF8SMTP. cannot be passed as-is to a server which does not support UTF8SMTP.
The original envelope or header field is removed or rewritten. Only The original envelope or header field is removed or rewritten. Only
those envelope and header fields which contain non-ASCII characters those envelope and header fields which contain non-ASCII characters
are affected. The result of this process is a message which is are affected. The result of this process is a message which is
compliant with existing email specifications [RFC2821] and [RFC2822]. compliant with existing email specifications [RFC5321] and [RFC5322].
The original internationalized information can be retrieved by The original internationalized information can be retrieved by
examining the "Downgraded-" header fields which were added. Even examining the "Downgraded-" header fields which were added. Even
though the information is not lost, the original message cannot be though the information is not lost, the original message cannot be
perfectly reconstructed. Hence, downgrading is a one-way process. perfectly reconstructed. Hence, downgrading is a one-way process.
However, an internationalized client might use the information in the However, an internationalized client might use the information in the
"Downgraded-" header fields when processing a downgraded message, for "Downgraded-" header fields when processing a downgraded message, for
example, such as displaying or composing a reply. example, such as displaying or composing a reply.
3.1. Envelope information preservation headers 3.1. Envelope information preservation headers
SMTP envelope downgraded information <downgraded-envelope-addr>
consists of the original non-ASCII address and the downgraded all-
ASCII address.
downgraded-envelope-addr = [FWS] "<" [ A-d-l ":" ] uMailbox
FWS "<" Mailbox ">" ">" [CFWS]
<uMailbox> is defined in [RFC5336]; <Mailbox> and <A-d-l> are defined
in [RFC5321], section 4.1.2.
Two headers "Downgraded-Mail-From:" and "Downgraded-Rcpt-To:" are Two headers "Downgraded-Mail-From:" and "Downgraded-Rcpt-To:" are
defined to preserve SMTP envelope downgraded information. SMTP defined to preserve SMTP envelope downgraded information. The header
envelope downgraded information consists of the original non-ASCII field syntax is specified as follows:
address and the downgraded all-ASCII address. The header field
syntax is specified as follows:
fields =/ downgradedmailfrom / downgradedrcptto fields =/ downgradedmailfrom / downgradedrcptto
downgradedmailfrom = "Downgraded-Mail-From:" [FWS] "<" uPath ">" 1*[FWS] downgradedmailfrom = "Downgraded-Mail-From:" unstructured CRLF
"<" Mailbox ">" [FWS] CRLF downgradedrcptto = "Downgraded-Rcpt-To:" unstructured CRLF
downgradedrcptto = "Downgraded-Rcpt-To:" [FWS] "<" uPath ">" 1*[FWS]
"<" Mailbox ">" [FWS] CRLF
Original non-ASCII address <uPath> is defined in [RFC5336]; it is The unstructured content is downgraded-envelope-addr treated as if it
treated as unstructured in this header and it is encoded according to were unstructured with [RFC2047] encoding (and charset UTF-8) as
[RFC2047]. <Mailbox> is defined in [RFC2821], section 4.1.2. needed.
3.2. Address header field preservation headers 3.2. Address header field preservation headers
The address header fields preservation headers are defined to The address header fields preservation headers are defined to
preserve the original header field. Their value field holds the preserve the original header field. Their value field holds the
original header field value. Any original header field value is original header field value. The header field syntax is specified as
treated as an <unstructured> and it MUST be encoded according to follows:
[RFC2047] with charset='UTF-8'. The header field syntax is specified
as follows:
fields =/ known-downgraded-headers ":" unstructued CRLF fields =/ known-downgraded-headers ":" unstructured CRLF
known-downgraded-headers = "Downgraded-" original-headers known-downgraded-headers = "Downgraded-" original-headers
original-headers = "From" / "To" / "Cc" / "Bcc" / original-headers = "From" / "To" / "Cc" / "Bcc" /
"Sender" / "Reply-To" / "Sender" / "Reply-To" /
"Resent-From" / "Resent-Sender" / "Resent-From" / "Resent-Sender" /
"Resent-To" / "Resent-Cc" / "Return-Path" "Resent-To" / "Resent-Cc" / "Return-Path"
Preserving a header field in a downgraded header field is defined as: Preserving a header field in a downgraded header field is defined as:
1. Generate new downgraded header field whose value is the original 1. Generate new downgraded header field whose value is the original
header field value. header field value.
2. Encode the generated header according to [RFC2047] with 2. Treat the generated header field content as if it were
charset='UTF-8'. unstructured, and then apply [RFC2047] encoding with charset
UTF-8 as necessary so the result is ASCII.
3.3. Unknown header fields preservation headers 3.3. Unknown header fields preservation headers
The unknown header fields preservation headers are defined to The unknown header fields preservation headers are defined to
encapsulate those original header field which contains non-ASCII encapsulate those original header fields which contain non-ASCII
characters and are not otherwise provided for in the this characters and are not otherwise provided for in the this
specification. The encapsulation header field name is the specification. The encapsulation header field name is the
concatenation of "Downgraded-" and the original name. The value concatenation of "Downgraded-" and the original name. The value
field holds the original header field value. field holds the original header field value.
Any original header field value is treated as an unstructured value
and it MUST be encoded according to [RFC2047] with charset='UTF-8'.
The header field syntax is specified as follows: The header field syntax is specified as follows:
fields =/ unknown-downgraded-headers ":" unstructued CRLF fields =/ unknown-downgraded-headers ":" unstructured CRLF
unknown-downgraded-headers = "Downgraded-" original-header-field-name unknown-downgraded-headers = "Downgraded-" original-header-field-name
original-header-field-name = field-name original-header-field-name = field-name
field-name = 1*ftext field-name = 1*ftext
ftext = %d33-57 / ; Any character except ftext = %d33-57 / ; Any character except
%d59-126 ; controls, SP, and %d59-126 ; controls, SP, and
; ":". ; ":".
Encapsulating a header field in a "Downgraded-" header field is Encapsulating a header field in a "Downgraded-" header field is
defined as: defined as:
1. Generate new "Downgraded-" header whose value is the original 1. Generate new "Downgraded-" header field whose value is the
header field value. original header field value.
2. Encode the generated header field value according to [RFC2047] 2. Treat the generated header field content as if it were
with charset='UTF-8'. To preserve space characters, the whole unstructured, and then apply [RFC2047] encoding with charset
header field value which include space characters SHOULD be UTF-8 as necessary so the result is ASCII.
encoded.
3. Remove the original header field. 3. Remove the original header field.
Applying this procedure to "Received" header field is prohibited.
4. SMTP Downgrading 4. SMTP Downgrading
Target of downgrading elements in SMTP envelope are below: Target of downgrading elements in SMTP envelope are below:
o <reverse-path> of MAIL FROM command o <reverse-path> of MAIL FROM command
o <forward-path> of RCPT TO command o <forward-path> of RCPT TO command
o ORCPT parameter of RCPT TO command o ORCPT parameter of RCPT TO command
4.1. Path element downgrading 4.1. Path element downgrading
skipping to change at page 7, line 50 skipping to change at page 7, line 52
for the recipient address prior to downgrading, the SMTP connection for the recipient address prior to downgrading, the SMTP connection
is valid for the new recipient address. Otherwise, the downgrading is valid for the new recipient address. Otherwise, the downgrading
process MUST NOT send the downgraded message to the new recipient process MUST NOT send the downgraded message to the new recipient
address via the connection and MUST try to send the downgraded address via the connection and MUST try to send the downgraded
message to the new recipient address. message to the new recipient address.
4.2. ORCPT downgrading 4.2. ORCPT downgrading
The "RCPT TO" command can have an ORCPT parameter if the DSN The "RCPT TO" command can have an ORCPT parameter if the DSN
extension [RFC3461] is supported. If the ORCPT parameter contains an extension [RFC3461] is supported. If the ORCPT parameter contains an
"utf-8" address and the address contains non-ASCII characters, the "utf-8" type address and the address contains raw non-ASCII
ORCPT parameter MUST be converted to utf-8-addr-xtext form or utf-8- characters, the address MUST be converted to utf-8-addr-unitext form
addr-unitext form which are described in [RFC5337]. or utf-8-addr-xtext form which are described in [RFC5337].
The utf-8-addr-unitext transformation that needs to occur on the
content of ORCPT is to
1. remove xtext encoding.
2. convert the result of step 1 to utf-8-addr-unitext form where all
non-ASCII characters and '\' are represented as
EmbeddedUnicodeChar.
3. re-apply xtext encoding to the result of step 2.
5. Email header fields downgrading 5. Email header fields downgrading
This section defines the conversion method to ASCII for each header This section defines the conversion method to ASCII for each header
field which may contain non-ASCII characters. field which may contain non-ASCII characters.
[RFC5335] expands Received: header fields, [RFC2822] ABNF elements [RFC5335] expands Received: header fields, [RFC5322] ABNF elements
<mailbox>, <word>, <comment>, <unstructured>, [RFC2045] ABNF element <mailbox>, <word>, <comment>, <unstructured>, [RFC2045] ABNF element
<value>. <value>.
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.
RECEIVED downgrading: If the header field name is "Received:" and RECEIVED downgrading:
the FOR clause contains a non-ASCII addresses, remove the FOR If the header field name is "Received:" and the FOR clause
clause from the header field. The other part does not contain contains a non-ASCII addresses, remove the FOR clause from the
header field. Other parts (not counting <comment>s) don't contain
non-ASCII values. non-ASCII values.
UNSTRUCTURED downgrading: If the header field has an <unstructured> UNSTRUCTURED downgrading:
field which contains non-ASCII characters, encode the field If the header field has an <unstructured> field which contains
according to [RFC2047] with charset='UTF-8'. To preserve space non-ASCII characters, apply [RFC2047] encoding with charset UTF-8.
characters, the whole header field value which include space
characters SHOULD be encoded.
WORD downgrading: If the header field has any <word> fields which WORD downgrading:
contains non-ASCII characters, encode the fields according to If the header field has any <word> fields which contains non-ASCII
[RFC2047] with charset='UTF-8'. characters, apply [RFC2047] encoding with charset UTF-8.
COMMENT downgrading: If the header field has any <comment> fields COMMENT downgrading:
which contains non-ASCII characters, encode the fields according If the header field has any <comment> fields which contains non-
to [RFC2047] with charset='UTF-8'. ASCII characters, apply [RFC2047] encoding with charset UTF-8.
MIME-VALUE downgrading: If the header field has any <value> MIME-VALUE downgrading:
elements defined by [RFC2045] and the elements contain non-ASCII If the header field has any <value> elements defined by [RFC2045]
characters, encode the <value> elements by [RFC2231] with and the elements contain non-ASCII characters, encode the <value>
charset='UTF-8' and the Language information empty. If the elements by [RFC2231] with charset UTF-8 and the Language
<value> element is <quoted-string> and it contains <CFWS> outside information empty. If the <value> element is <quoted-string> and
the DQUOTE, remove the <CFWS> before this conversion. it contains <CFWS> outside the DQUOTE, remove the <CFWS> before
this conversion.
DISPLAY-NAME downgrading: If the header field has any <mailbox> DISPLAY-NAME downgrading:
If the header field has any <address> (<mailbox> and <group>)
elements and they have <display-name> elements which contain non- elements and they have <display-name> elements which contain non-
ASCII characters, encode the <display-name> elements according to ASCII characters, encode the <display-name> elements according to
[RFC2047] with charset='UTF-8'. [RFC2047] with charset UTF-8. DISPLAY-NAME downgrading is the
same algorithm as WORD downgrading.
MAILBOX downgrading: The <mailbox> elements have no equivalent MAILBOX downgrading:
format for non-ASCII addresses. If the header field has any The <mailbox> elements have no equivalent format for non-ASCII
<mailbox> elements which contain non-ASCII characters, preserve addresses. If the header field has any <mailbox> elements which
the header field in each Address header field preservation header contain non-ASCII characters, preserve the header field in each
defined in Section 3.2, and rewrite each <mailbox> element to Address header field preservation header defined in Section 3.2,
ASCII only format. The <mailbox> element which contains non-ASCII and rewrite each <mailbox> element to ASCII only format. The
characters is one of three formats. <mailbox> element which contains non-ASCII characters is one of
three formats.
* [ Display-name ] "<" Utf8-addr-spec 1*FCS "<" Addr-spec ">>" * [ Display-name ] "<" Utf8-addr-spec 1*FCS "<" Addr-spec ">>"
Rewrite it as Rewrite it as
[ Display-name ] "<" Addr-spec ">" [ Display-name ] "<" Addr-spec ">"
* [ 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> where the <Encoded-word> is the original <Utf8-addr-spec>
encoded according to [RFC2047]. encoded according to [RFC2047].
ENCAPSULATION downgrading: if the header field contains non-ASCII ENCAPSULATION downgrading:
characters and for which no rule is given above, encapsulate it in if the header field contains non-ASCII characters and for which no
a Downgraded header field described in Section 3.3 as a last rule is given above, encapsulate it in a Downgraded header field
resort. described in Section 3.3 as a last resort.
TYPED-ADDRESS downgrading:
If the header field contains <utf-8-type-addr> defined in
[RFC5337] and the <utf-8-type-addr> contains raw non-ASCII
characters, it is utf-8-address form and convert it to utf-8-addr-
xtext form or utf-8-addr-unitext form. COMMENT downgrading is
also performed in this case. If the address type is unrecognized
and the header contains non-ASCII characters, then fall back to
using ENCAPSULATION downgrading on the entire header.
5.1. Downgrading method for each header field 5.1. 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.
o Address header fields which contain <mailbox>s o Address header fields which contain <address>s
From: From:
Sender: Sender:
Reply-To: Reply-To:
To: To:
Cc: Cc:
Bcc: Bcc:
Resent-From: Resent-From:
Resent-Sender: Resent-Sender:
Resent-To: Resent-To:
Resent-Cc: Resent-Cc:
Resent-Bcc:
Resent-Reply-To:
Return-Path: Return-Path:
Disposition-Notification-To:
If the header field contains <mailbox> elements which contains If the header field contains <mailbox> elements which contains
non-ASCII addresses, preserve the header field in a downgraded non-ASCII addresses, preserve the header field in a downgraded
header before the conversion. Then perform COMMENT downgrading, header before the conversion. Then perform COMMENT downgrading,
DISPLAY-NAME downgrading and MAILBOX downgrading. DISPLAY-NAME downgrading and MAILBOX downgrading.
o Address header fields with typed addresses
Original-Recipient:
Final-Recipient:
If the header field contains non-ASCII characters, perform TYPED-
ADDRESS downgrading.
o Downgrading Non-ASCII in comments o Downgrading Non-ASCII in comments
Date: Date:
Message-ID: 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-Language:
Accept-Language:
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 contains UTF-8 characters in comments, comments. If the header contains UTF-8 characters in comments,
perform COMMENT downgrading. perform COMMENT downgrading.
o Trace header fields o Received header field
Received: Received:
perform COMMENT downgrading and perform RECEIVED downgrading. perform COMMENT downgrading and RECEIVED downgrading.
o MIME Content header fields o MIME Content header fields
Content-Type: Content-Type:
Content-Disposition: Content-Disposition:
Perform MIME-VALUE downgrading. Perform MIME-VALUE downgrading and COMMENT downgrading.
o Non-ASCII in <unstructured> o Non-ASCII in <unstructured>
Subject: Subject:
Comments: Comments:
Content-Description: Content-Description:
Perform UNSTRUCTURED downgrading. Perform UNSTRUCTURED downgrading.
o Non-ASCII in <unstructured> or <phrase> o Non-ASCII in <phrase>
Keywords: Keywords:
Perform WORD downgrading. Perform WORD downgrading.
o Other header fields o Other header fields
All other header fields which contains non-ASCII characters are All other header fields which contains non-ASCII characters are
user-defined, missing from this draft or future defined header user-defined, missing from this draft or future defined header
fields. Perform ENCAPSULATION downgrading as a last resort. fields. Perform ENCAPSULATION downgrading.
If the software understands the header's structure and a
downgrading algorithm other than ENCAPSULATION is applicable, that
software SHOULD use that algorithm; ENCAPSULATION downgrading is
used as a last resort.
Any List-* header field containing non-ASCII characters will be Any List-* header field containing non-ASCII characters will be
turned into Downgraded-List-* header fields. turned into Downgraded-List-* header fields.
6. MIME body part headers downgrading 6. MIME body part headers downgrading
MIME body part header fields may contain non-ASCII characters MIME body part header fields may contain non-ASCII characters
[RFC5335]. This section defines the conversion method to ASCII only [RFC5335]. This section defines the conversion method to ASCII only
header fields for each MIME header field which contains non-ASCII header fields for each MIME header field which contains non-ASCII
characters. Parse the message body's MIME structure for all levels characters. Parse the message body's MIME structure for all levels
skipping to change at page 11, line 45 skipping to change at page 12, line 45
described below. COMMENT downgrading, MIME-VALUE downgrading, described below. COMMENT downgrading, MIME-VALUE downgrading,
UNSTRUCTURED downgrading are described in Section 5. UNSTRUCTURED downgrading are described in Section 5.
Content-ID: Content-ID:
The Content-ID: header does not contain non-ASCII characters The Content-ID: header does not contain non-ASCII characters
except in comments. If the header contains UTF-8 characters in except in comments. If the header contains UTF-8 characters in
comments, perform COMMENT downgrading. comments, perform COMMENT downgrading.
Content-Type: Content-Type:
Content-Disposition: Content-Disposition:
Perform MIME-VALUE downgrading. Perform MIME-VALUE downgrading and COMMENT downgrading.
Content-Description: Content-Description:
Perform UNSTRUCTURED downgrading. Perform UNSTRUCTURED downgrading.
7. Security considerations 7. Security considerations
o A Downgraded message's header fields contain ASCII characters o A Downgraded message's header fields contain ASCII characters
only. But they still contain MIME encapsulated header fields only. But they still contain MIME encapsulated header fields
which contains non-ASCII UTF-8 characters. Furthermore, the body which contains non-ASCII UTF-8 characters. Furthermore, the body
part may contain UTF-8 characters. Implementations parsing part may contain UTF-8 characters. Implementations parsing
Internet messages need to accept UTF-8 body parts and UTF-8 header Internet messages need to accept UTF-8 body parts and UTF-8 header
fields which are MIME encoded. fields which are MIME encoded. Thus it inherits the security
considerations of MIME encoded headers [RFC2047] and [RFC3629].
o Rewriting headers increases the opportunities for undetected o Rewriting headers increases the opportunities for undetected
spoofing. spoofing. However rewritten header fields are preserved into
Downgraded-* header fields and parsing Downgraded-* header fields
enables detecting spoofing caused by downgrading.
o Addresses that do not appear in the message headers may appear in o Addresses that do not appear in the message headers may appear in
the RCPT commands to an SMTP server for a number of reasons. the RCPT commands to an SMTP server for a number of reasons.
Copying information from the Envelope into headers risks Copying information from the Envelope into headers risks
inadvertent information disclosure (see [RFC2821] and Section 4). inadvertent information disclosure (see [RFC5321] and Section 4).
Mitigating inadvertent information disclosure is discussed in same
place.
o The techniques described here invalidates methods that depend on o The techniques described here invalidates methods that depend on
digital signatures over the envelope or any part of the message digital signatures over the envelope or any part of the message
which includes the top-level header or body part headers. which includes the top-level header or body part headers.
Depending on the specific message being downgraded, DKIM Depending on the specific message being downgraded, DKIM
especially, but also possibly S/MIME, PGP, and similar techniques especially, but also possibly S/MIME, PGP, and similar techniques
are all likely to break. are all likely to break. The two obvious mitigations are to stick
to 7-bit transport when using these techniques (as most/all of
them presently require), or make sure you have UTF8SMTP end-to-end
when needed.
o Many gateways and servers on the Internet will discard headers o Many gateways and servers on the Internet will discard headers
with which they are not familiar. To the extent to which the with which they are not familiar. To the extent to which the
downgrade procedures depend on new headers (e.g., "Downgraded-") downgrade procedures depend on new headers (e.g., "Downgraded-")
to avoid information loss, the risk of having those headers to avoid information loss, the risk of having those headers
dropped and its implications must be identified. In particular, dropped and its implications must be identified. In particular,
if the Downgraded headers are dropped, there is no possibility of if the Downgraded headers are dropped, there is no possibility of
reconstructing the original information at any point (before, reconstructing the original information at any point (before,
during, or after delivery). during, or after delivery). Such gateways violate [RFC2979] and
can be upgraded to correct the problem.
See "Security considerations" section in [RFC4952] for more See "Security considerations" section in [RFC4952] for more
discussion. discussion.
8. Implementation notes 8. Implementation notes
8.1. Trivial downgrading 8.1. RFC 2047 encoding
While [RFC2047] has a specific algorithm to deal with whitespace in
adjacent encoded-words, there are a number of deployed
implementations that fail to implement the algorithm correctly. As a
result, whitespace behavior is somewhat unpredictable in practice
when multiple encoded words are used. While RFC 5322 states that
implementations SHOULD limit lines to not more than 78 characters,
implementations MAY choose to allow overlong encoded words in order
to work around faulty [RFC2047] implementations. Implementations
that choose to do so SHOULD have an optional mechanism to limit line
length to 78 characters.
8.2. Trivial downgrading
Downgrading is an alternative to avoid the rejection of messages Downgrading is an alternative to avoid the rejection of messages
which require UTF8SMTP support by a server which does not provide which require UTF8SMTP support by a server which does not provide
this. Implementing the full specification of this document is this. Implementing the full specification of this document is
desirable, but a partial implementation is also possible. desirable, but a partial implementation is also possible.
If a partial downgrading implementation confronts an unsupported If a partial downgrading implementation confronts an unsupported
downgrading target, the implementation MUST NOT send the message to a downgrading target, the implementation MUST NOT send the message to a
server which does not support UTF8SMTP. Instead, it MUST reject the server which does not support UTF8SMTP. Instead, it MUST reject the
message or generate a notification of non-deliverability. message or generate a notification of non-deliverability.
skipping to change at page 13, line 31 skipping to change at page 15, line 5
Trivial downgrading targets mail messages which are generated by Trivial downgrading targets mail messages which are generated by
UTF8SMTP aware MUAs and contain non-ASCII characters in comments, UTF8SMTP aware MUAs and contain non-ASCII characters in comments,
display names, unstructured parts without using non-ASCII E-mail display names, unstructured parts without using non-ASCII E-mail
addresses. This mail message does not contain non-ASCII E-mail addresses. This mail message does not contain non-ASCII E-mail
addresses in the SMTP Envelope and its header fields. But it is not addresses in the SMTP Envelope and its header fields. But it is not
deliverable via a UTF8SMTP un-aware SMTP server. Implementing full deliverable via a UTF8SMTP un-aware SMTP server. Implementing full
specification downgrading may be hard, but trivial downgrading saves specification downgrading may be hard, but trivial downgrading saves
mail messages without using non-ASCII addresses. mail messages without using non-ASCII addresses.
8.2. 7bit transport consideration 8.3. 7bit transport consideration
The SMTP client may encounter a SMTP server which does not support The SMTP client may encounter a SMTP server which does not support
the 8BITMIME SMTP extension [RFC1652]. The server does not support the 8BITMIME SMTP extension [RFC1652]. The server does not support
"8bit" or "binary" data. Implementers need to consider converting "8bit" or "binary" data. Implementers need to consider converting
"8bit" data to "base64" or "quoted-printable" encoded form and adjust "8bit" data to "base64" or "quoted-printable" encoded form and adjust
the "Content-Transfer-Encoding" header field accordingly. If the the "Content-Transfer-Encoding" header field accordingly. If the
body contains multiple MIME parts, this conversion must be performed body contains multiple MIME parts, this conversion MUST be performed
for each MIME part according to [RFC2045]. for each MIME part.
9. IANA Considerations 9. IANA Considerations
IANA is requested to register the following header fields in the IANA is requested to register the following header fields in the
Permanent Message Header Field Repository, in accordance with the Permanent Message Header Field Repository, in accordance with the
procedures set out in [RFC3864]. procedures set out in [RFC3864].
Header field name: Downgraded-Mail-From Header field name: Downgraded-Mail-From
Applicable protocol: mail Applicable protocol: mail
Status: experimental Status: experimental
skipping to change at page 15, line 31 skipping to change at page 17, line 4
Applicable protocol: mail Applicable protocol: mail
Status: experimental Status: experimental
Author/change controller: IETF Author/change controller: IETF
Specification document(s): This document (Section 3) Specification document(s): This document (Section 3)
Header field name: Downgraded-Resent-Sender Header field name: Downgraded-Resent-Sender
Applicable protocol: mail Applicable protocol: mail
Status: experimental Status: experimental
Author/change controller: IETF Author/change controller: IETF
Specification document(s): This document (Section 3) Specification document(s): This document (Section 3)
Header field name: Downgraded-Return-Path Header field name: Downgraded-Return-Path
Applicable protocol: mail Applicable protocol: mail
Status: experimental Status: experimental
Author/change controller: IETF Author/change controller: IETF
Specification document(s): This document (Section 3) Specification document(s): This document (Section 3)
Furthermore, IANA is requested to reserve all the field names that Furthermore, IANA is requested to refuse registration of all the
start with "Downgraded-" for unknown header fields downgrading field names that start with "Downgraded-" for unknown header fields
described in Section 3.3, in accordance with the procedures set out downgrading described in Section 3.3 to avoid conflicts with existing
in [RFC3864]. IETF activity (Email Address Internationalization).
Header field name: Names which starts by "Downgraded-"
Applicable protocol: mail
Status: experimental
Author/change controller: IETF
Specification document(s): This document (Section 3)
10. Acknowledgements 10. Acknowledgements
Significant comments and suggestions were received from John Klensin, Significant comments and suggestions were received from John Klensin,
Harald Alvestrand, Chris Newman, Randall Gellens, Charles Lindsey, Harald Alvestrand, Chris Newman, Randall Gellens, Charles Lindsey,
Marcos Sanz, Alexey Melnikov, Frank Ellermann, Edward Lewis, S. Marcos Sanz, Alexey Melnikov, Frank Ellermann, Edward Lewis, S.
Moonesamy and JET members. Moonesamy and JET members.
11. Change History 11. Change History
skipping to change at page 18, line 14 skipping to change at page 19, line 22
11.10. draft-ietf-eai-downgrade: Version 07 11.10. draft-ietf-eai-downgrade: Version 07
o Fixed some typos o Fixed some typos
o Added a text about 7bit transport o Added a text about 7bit transport
11.11. draft-ietf-eai-downgrade: Version 08 11.11. draft-ietf-eai-downgrade: Version 08
o Comments from the working group last call (wording) o Comments from the working group last call (wording)
11.12. draft-ietf-eai-downgrade: Version 09
o References
11.13. draft-ietf-eai-downgrade: Version 10
o Comments from AD Review
12. Normative References 12. Normative References
[RFC1652] Klensin, J., Freed, N., Rose, M., Stefferud, E., and D. [RFC1652] Klensin, J., Freed, N., Rose, M., Stefferud, E., and D.
Crocker, "SMTP Service Extension for 8bit-MIMEtransport", Crocker, "SMTP Service Extension for 8bit-MIMEtransport",
RFC 1652, July 1994. RFC 1652, July 1994.
[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet Message Extensions (MIME) Part One: Format of Internet Message
Bodies", RFC 2045, November 1996. Bodies", RFC 2045, November 1996.
skipping to change at page 18, line 40 skipping to change at page 20, line 8
[RFC2183] Troost, R., Dorner, S., and K. Moore, "Communicating [RFC2183] Troost, R., Dorner, S., and K. Moore, "Communicating
Presentation Information in Internet Messages: The Presentation Information in Internet Messages: The
Content-Disposition Header Field", RFC 2183, August 1997. Content-Disposition Header Field", RFC 2183, August 1997.
[RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded [RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded
Word Extensions: Word Extensions:
Character Sets, Languages, and Continuations", RFC 2231, Character Sets, Languages, and Continuations", RFC 2231,
November 1997. November 1997.
[RFC2821] Klensin, J., "Simple Mail Transfer Protocol", RFC 2821, [RFC2979] Freed, N., "Behavior of and Requirements for Internet
April 2001. Firewalls", RFC 2979, October 2000.
[RFC2822] Resnick, P., "Internet Message Format", RFC 2822,
April 2001.
[RFC3461] Moore, K., "Simple Mail Transfer Protocol (SMTP) Service [RFC3461] Moore, K., "Simple Mail Transfer Protocol (SMTP) Service
Extension for Delivery Status Notifications (DSNs)", Extension for Delivery Status Notifications (DSNs)",
RFC 3461, January 2003. RFC 3461, January 2003.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003.
[RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration [RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration
Procedures for Message Header Fields", BCP 90, RFC 3864, Procedures for Message Header Fields", BCP 90, RFC 3864,
September 2004. September 2004.
[RFC4021] Klyne, G. and J. Palme, "Registration of Mail and MIME [RFC4021] Klyne, G. and J. Palme, "Registration of Mail and MIME
Header Fields", RFC 4021, March 2005. Header Fields", RFC 4021, March 2005.
[RFC4952] Klensin, J. and Y. Ko, "Overview and Framework for [RFC4952] Klensin, J. and Y. Ko, "Overview and Framework for
Internationalized Email", RFC 4952, July 2007. Internationalized Email", RFC 4952, July 2007.
[RFC5321] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321,
October 2008.
[RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
October 2008.
[RFC5335] Abel, Y., "Internationalized Email Headers", RFC 5335, [RFC5335] Abel, Y., "Internationalized Email Headers", RFC 5335,
September 2008. September 2008.
[RFC5336] Yao, J. and W. Mao, "SMTP Extension for Internationalized [RFC5336] Yao, J. and W. Mao, "SMTP Extension for Internationalized
Email Addresses", RFC 5336, September 2008. Email Addresses", RFC 5336, September 2008.
[RFC5337] Newman, C. and A. Melnikov, "Internationalized Delivery [RFC5337] Newman, C. and A. Melnikov, "Internationalized Delivery
Status and Disposition Notifications", RFC 5337, Status and Disposition Notifications", RFC 5337,
September 2008. September 2008.
skipping to change at page 21, line 8 skipping to change at page 22, line 8
Figure 1: Original envelope/message (example 1) Figure 1: Original envelope/message (example 1)
In this example, there are two SMTP recipients, one is "To:", the In this example, there are two SMTP recipients, one is "To:", the
other is "Cc:". The SMTP downgrading treats To: session downgrading. other is "Cc:". The SMTP downgrading treats To: session downgrading.
Figure 2 shows SMTP downgraded example. Figure 2 shows SMTP downgraded example.
MAIL FROM: <ASCII-local@example.com> MAIL FROM: <ASCII-local@example.com>
RCPT TO: <ASCII-remote1@example.net> RCPT TO: <ASCII-remote1@example.net>
------------------------------------------------------------- -------------------------------------------------------------
Downgraded-Mail-From: =?UTF-8?Q?<NON-ASCII-local@example.com>_?= Downgraded-Mail-From: =?UTF-8?Q?<NON-ASCII-local@example.com_?=
=?UTF-8?Q?<ASCII-local@example.com>?= =?UTF-8?Q?<ASCII-local@example.com>>?=
Downgraded-Rcpt-To: =?UTF-8?Q?<NON-ASCII-remote1@example.net>_?= Downgraded-Rcpt-To: =?UTF-8?Q?<NON-ASCII-remote1@example.net_?=
=?UTF-8?Q?<ASCII-remote1@example.net>?= =?UTF-8?Q?<ASCII-remote1@example.net>>?=
Message-Id: MESSAGE_ID Message-Id: 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
Subject: NON-ASCII-SUBJECT Subject: NON-ASCII-SUBJECT
From: DISPLAY-local <NON-ASCII-local@example.com From: DISPLAY-local <NON-ASCII-local@example.com
<ASCII-local@example.com>> <ASCII-local@example.com>>
To: DISPLAY-remote1 <NON-ASCII-remote1@example.net To: DISPLAY-remote1 <NON-ASCII-remote1@example.net
<ASCII-remote1@example.net>> <ASCII-remote1@example.net>>
Cc: DISPLAY-remote2 <NON-ASCII-remote2@example.org> Cc: DISPLAY-remote2 <NON-ASCII-remote2@example.org>
skipping to change at page 22, line 6 skipping to change at page 23, line 6
MAIL_BODY MAIL_BODY
Figure 2: SMTP Downgraded envelope/message (example 1) Figure 2: SMTP Downgraded envelope/message (example 1)
After SMTP downgrading, header fields downgrading is performed. After SMTP downgrading, header fields downgrading is performed.
Final downgraded message is shown in Figure 3. Return-Path header Final downgraded message is shown in Figure 3. Return-Path header
will be added by the final destination MTA. will be added by the final destination MTA.
Return-Path: <ASCII-local@example.com> Return-Path: <ASCII-local@example.com>
Downgraded-Mail-From: =?UTF-8?Q?<NON-ASCII-local@example.com>_?= Downgraded-Mail-From: =?UTF-8?Q?<NON-ASCII-local@example.com_?=
=?UTF-8?Q?<ASCII-local@example.com>?= =?UTF-8?Q?<ASCII-local@example.com>>?=
Downgraded-Rcpt-To: =?UTF-8?Q?<NON-ASCII-remote1@example.net>_?= Downgraded-Rcpt-To: =?UTF-8?Q?<NON-ASCII-remote1@example.net_?=
=?UTF-8?Q?<ASCII-remote1@example.net>?= =?UTF-8?Q?<ASCII-remote1@example.net>>?=
Message-Id: MESSAGE_ID Message-Id: 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
Subject: =?UTF-8?Q?NON-ASCII-SUBJECT?= Subject: =?UTF-8?Q?NON-ASCII-SUBJECT?=
From: =?UTF-8?Q?DISPLAY-local?= <ASCII-local@example.com> From: =?UTF-8?Q?DISPLAY-local?= <ASCII-local@example.com>
Downgraded-From: =?UTF-8?Q?DISPLAY-local_<NON-ASCII-local@example.com_?= Downgraded-From: =?UTF-8?Q?DISPLAY-local_<NON-ASCII-local@example.com_?=
=?UTF-8?Q?<ASCII-local@example.com>>?= =?UTF-8?Q?<ASCII-local@example.com>>?=
To: =?UTF-8?Q?DISPLAY-remote1?= <ASCII-remote1@example.net> To: =?UTF-8?Q?DISPLAY-remote1?= <ASCII-remote1@example.net>
Downgraded-To: =?UTF-8?Q?DISPLAY-remote1_?= Downgraded-To: =?UTF-8?Q?DISPLAY-remote1_?=
skipping to change at page 23, line 29 skipping to change at page 24, line 29
MAIL_BODY MAIL_BODY
Figure 4: Original message (example 2) Figure 4: Original message (example 2)
In this example, SMTP session is downgradable. Figure 5 shows SMTP In this example, SMTP session is downgradable. Figure 5 shows SMTP
downgraded envelope/message. downgraded envelope/message.
MAIL From: <ASCII-local@example.com> MAIL From: <ASCII-local@example.com>
RCPT TO: <ASCII-remote1@example.net> RCPT TO: <ASCII-remote1@example.net>
------------------------------------------------------------- -------------------------------------------------------------
Downgraded-Mail-From: =?UTF-8?Q?<NON-ASCII-local@example.com>_?= Downgraded-Mail-From: =?UTF-8?Q?<NON-ASCII-local@example.com_?=
?=UTF8?Q?<ASCII-local@example.com>?= ?=UTF8?Q?<ASCII-local@example.com>>?=
Message-Id: MESSAGE_ID Message-Id: 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
Subject: NON-ASCII-SUBJECT Subject: NON-ASCII-SUBJECT
From: DISPLAY-local <NON-ASCII-local@example.com From: DISPLAY-local <NON-ASCII-local@example.com
<ASCII-local@example.com>> <ASCII-local@example.com>>
To: DISPLAY-remote1 <ASCII-remote1@example.net> To: DISPLAY-remote1 <ASCII-remote1@example.net>
Date: DATE Date: DATE
MAIL_BODY MAIL_BODY
Figure 5: SMTP Downgraded envelope/message (example 2) Figure 5: SMTP Downgraded envelope/message (example 2)
After SMTP downgrading, header fields downgrading is performed. The After SMTP downgrading, header fields downgrading is performed. The
downgraded example is shown in Figure 6. downgraded example is shown in Figure 6.
Return-Path: <ASCII-local@example.com> Return-Path: <ASCII-local@example.com>
Downgraded-Mail-From: =?UTF-8?Q?<NON-ASCII-local@example.com>_?= Downgraded-Mail-From: =?UTF-8?Q?<NON-ASCII-local@example.com_?=
=?UTF8?Q?<ASCII-local@example.com>?= =?UTF8?Q?<ASCII-local@example.com>>?=
Message-Id: MESSAGE_ID Message-Id: 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
Subject: =?UTF-8?Q?NON-ASCII-SUBJECT?= Subject: =?UTF-8?Q?NON-ASCII-SUBJECT?=
Downgraded-From: =?UTF-8?Q?DISPLAY-local_<NON-ASCII-local@example.com_?= Downgraded-From: =?UTF-8?Q?DISPLAY-local_<NON-ASCII-local@example.com_?=
=?UTF-8?Q?<ASCII-local@example.com>>?= =?UTF-8?Q?<ASCII-local@example.com>>?=
From: =?UTF-8?Q?DISPLAY-local?= <ASCII-local@example.com> From: =?UTF-8?Q?DISPLAY-local?= <ASCII-local@example.com>
To: =?UTF-8?Q?DISPLAY-remote1?= <ASCII-remote1@example.net> To: =?UTF-8?Q?DISPLAY-remote1?= <ASCII-remote1@example.net>
Date: DATE Date: DATE
 End of changes. 65 change blocks. 
146 lines changed or deleted 222 lines changed or added

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