draft-ietf-eai-downgrade-04.txt   draft-ietf-eai-downgrade-05.txt 
Email Address Internationalization Y. YONEYA, Ed. Email Address Internationalization Y. YONEYA, Ed.
(EAI) K. Fujiwara, Ed. (EAI) K. Fujiwara, Ed.
Internet-Draft JPRS Internet-Draft JPRS
Intended status: Experimental July 6, 2007 Intended status: Experimental November 18, 2007
Expires: January 7, 2008 Expires: May 21, 2008
Downgrading mechanism for Email Address Internationalization Downgrading mechanism for Email Address Internationalization
draft-ietf-eai-downgrade-04.txt draft-ietf-eai-downgrade-05.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 January 7, 2008. This Internet-Draft will expire on May 21, 2008.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2007).
Abstract Abstract
Traditional mail systems handle only US-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) allows UTF-8 characters in SMTP Internationalization (UTF8SMTP) extension allows UTF-8 characters in
envelope and mail header fields. To deliver internationalized Email SMTP envelope and mail header fields. To avoid bouncing
messages to/via UTF8SMTP non-compliant environment, some sort of internationalized Email messages when a server in the delivery path
converting mechanism is required. This document describes does not support the UTF8SMTP extension, some sort of converting
downgrading mechanism for Email Address Internationalization. mechanism is required. This document describes a downgrading
mechanism for Email Address Internationalization. Note that this is
a way to downgrade, not tunnel. There is no associated up-conversion
mechanism, although internationalized email clients might use
original internationalized addresses or other data when displaying or
replying to downgraded messages.
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. New header fields definition . . . . . . . . . . . . . . . . . 5
4. SMTP Downgrading . . . . . . . . . . . . . . . . . . . . . . . 5 3.1. Envelope information preservation headers . . . . . . . . 5
5. Email header fields downgrading . . . . . . . . . . . . . . . 6 3.2. Address header field preservation headers . . . . . . . . 5
6. MIME body part headers downgrading . . . . . . . . . . . . . . 9 3.3. Unknown header fields preservation headers . . . . . . . . 6
7. Security considerations . . . . . . . . . . . . . . . . . . . 10 4. SMTP Downgrading . . . . . . . . . . . . . . . . . . . . . . . 7
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 5. Email header fields downgrading . . . . . . . . . . . . . . . 8
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 11 5.1. Downgrading method for each header field . . . . . . . . . 9
10. Change History . . . . . . . . . . . . . . . . . . . . . . . . 11 6. MIME body part headers downgrading . . . . . . . . . . . . . . 11
10.1. draft-yoneya-ima-downgrade: Version 00 . . . . . . . . . 11 7. Security considerations . . . . . . . . . . . . . . . . . . . 11
10.2. draft-yoneya-ima-downgrade: Version 01 . . . . . . . . . 11 8. Implementation notes . . . . . . . . . . . . . . . . . . . . . 12
10.3. draft-ietf-eai-downgrade: Version 00 . . . . . . . . . . 11 8.1. Trivial downgrading . . . . . . . . . . . . . . . . . . . 12
10.4. draft-ietf-eai-downgrade: Version 01 . . . . . . . . . . 12 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
10.5. draft-ietf-eai-downgrade: Version 02 . . . . . . . . . . 12 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 15
10.6. draft-ietf-eai-downgrade: Version 03 . . . . . . . . . . 12 11. Change History . . . . . . . . . . . . . . . . . . . . . . . . 15
10.7. draft-ietf-eai-downgrade: Version 04 . . . . . . . . . . 12 11.1. draft-yoneya-ima-downgrade: Version 00 . . . . . . . . . . 15
11. Normative References . . . . . . . . . . . . . . . . . . . . . 12 11.2. draft-yoneya-ima-downgrade: Version 01 . . . . . . . . . . 15
Appendix A. Displaying downgraded message . . . . . . . . . . . . 14 11.3. draft-ietf-eai-downgrade: Version 00 . . . . . . . . . . . 16
A.1. Displaying technique 1 . . . . . . . . . . . . . . . . . 14 11.4. draft-ietf-eai-downgrade: Version 01 . . . . . . . . . . . 16
A.2. Displaying technique 2 . . . . . . . . . . . . . . . . . 14 11.5. draft-ietf-eai-downgrade: Version 02 . . . . . . . . . . . 16
Appendix B. Examples . . . . . . . . . . . . . . . . . . . . . . 14 11.6. draft-ietf-eai-downgrade: Version 03 . . . . . . . . . . . 16
B.1. Downgrading example 1 . . . . . . . . . . . . . . . . . . 14 11.7. draft-ietf-eai-downgrade: Version 04 . . . . . . . . . . . 16
B.2. Displaying example (Displaying technique 1) . . . . . . . 17 11.8. draft-ietf-eai-downgrade: Version 05 . . . . . . . . . . . 17
B.3. Displaying example (Displaying technique 2) . . . . . . . 17 12. Normative References . . . . . . . . . . . . . . . . . . . . . 17
B.4. Downgrading example 2 . . . . . . . . . . . . . . . . . . 19 Appendix A. Displaying downgraded message . . . . . . . . . . . . 18
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21 A.1. Displaying technique 1 . . . . . . . . . . . . . . . . . . 18
Intellectual Property and Copyright Statements . . . . . . . . . . 22 A.2. Displaying technique 2 . . . . . . . . . . . . . . . . . . 19
Appendix B. Examples . . . . . . . . . . . . . . . . . . . . . . 19
B.1. Downgrading example 1 . . . . . . . . . . . . . . . . . . 19
B.2. Displaying example . . . . . . . . . . . . . . . . . . . . 22
B.2.1. Displaying technique 1 example . . . . . . . . . . . . 23
B.2.2. Displaying technique 2 example . . . . . . . . . . . . 24
B.3. Downgrading example 2 . . . . . . . . . . . . . . . . . . 27
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 28
Intellectual Property and Copyright Statements . . . . . . . . . . 30
1. Introduction 1. Introduction
Traditional mail systems which are defined by [RFC2821] and [RFC2822] Traditional mail systems which are defined by [RFC2821] and [RFC2822]
allow US-ASCII characters in SMTP envelope and mail header field allow ASCII characters in SMTP envelope and mail header field values.
values. The UTF8SMTP proposals [I-D.ietf-eai-framework], The UTF8SMTP extension [RFC4952], [I-D.ietf-eai-utf8headers] and
[I-D.ietf-eai-utf8headers] and [I-D.ietf-eai-smtpext] allow UTF-8 [I-D.ietf-eai-smtpext] allows UTF-8 characters in SMTP envelope and
characters in SMTP envelope and mail header field values. mail header field values.
Delivering non-ASCII mail addresses from a sender to recipients If an envelope address or header field contains non-ASCII characters,
requires all components on the mail delivery route are UTF8SMTP the message cannot be delivered unless every system in the delivery
compliant. Otherwise, non-ASCII mail address can't be delivered. To path supports UTF8SMTP. To avoid bouncing such messages when a
solve the problem, this document describes downgrading mechanism that server is encountered which does not support the UTF8SMTP extension,
enables delivering non-ASCII mail addresses to traditional mail this document describes a downgrading mechanism. Downgrading a
system by converting them to corresponding US-ASCII representation. message converts envelope and header fields to an all-ASCII
And more, [I-D.ietf-eai-utf8headers] expands that mail header fields representation.
and MIME header fields are allowed to use any UTF-8 characters. This
downgrading mechanism targets mail header fields and MIME header [I-D.ietf-eai-utf8headers] allows UTF-8 characters to be used in mail
fields to be converted to US-ASCII only to send to UTF8SMTP non- header fields and MIME header fields. The downgrading mechanism
compliant receivers. specified here converts mail header fields and MIME header 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 envelopes/messages which are defined in
[RFC4952] [I-D.ietf-eai-utf8headers] [I-D.ietf-eai-smtpext] to the
traditional email envelopes/messages which are defined in [RFC2821]
[RFC2822].
[I-D.ietf-eai-smtpext] section 2.2 defines when downgrading occurs. [I-D.ietf-eai-smtpext] section 2.2 defines when downgrading occurs.
Mail clients (MUAs, MSAs, MTAs) try to deliver Email messages to SMTP If the SMTP client has an UTF8SMTP envelope or an internationalized
servers by static setting or DNS MX resource records resolution. If message and the SMTP server doesn't support the UTF8SMTP SMTP
the SMTP client has an UTF8SMTP envelope or an UTF8SMTP message and extension, then the SMTP client MUST NOT send a UTF8SMTP envelope or
the SMTP client detects that SMTP server doesn't support "UTF8SMTP" an internationalized message to the SMTP server. The section shows 4
option at EHLO, then the SMTP client MUST NOT send the UTF8SMTP choices. The fourth choice is downgrading, as described here.
envelope or UTF8SMTP message to the SMTP server. The section shows 4
choices. The second choice "reject or generate a notification of
non-deliverability" is always allowed. The fourth choice is
downgrading.
Downgrading may be implemented in MUAs, MSAs, MTAs, MDAs which Downgrading may be implemented in MUAs, MSAs, MTAs which act as the
generates or receives UTF8SMTP envelopes or UTF8SMTP messages and may SMTP client, or in MDAs, POP servers, IMAP servers which store or
send them to non-UTF8SMTP compliant systems. offer UTF8SMTP envelopes or internationalized messages to non-
UTF8SMTP compliant systems which include message stores.
This document tries to define the downgrading process clearly and it This document tries to define the downgrading process clearly and it
preserves the original information as much as possible. preserves the original information as much as possible.
Downgrading in UTF8SMTP consists of the following four parts: Downgrading in UTF8SMTP consists of the following four parts:
o New header fields definition o New header fields definition
o SMTP downgrading o SMTP downgrading
o Email header fields downgrading o Email header fields downgrading
o MIME header fields downgrading o MIME header fields downgrading
Before sending to traditional SMTP server, the downgrading process
need to perform SMTP downgrading, Email header fields downgrading,
and MIME header fields downgrading.
In Section 3, two header fields are introduced. One is "Envelope- In Section 3, many header fields starting with "downgraded" are
Downgraded:", it preserves the original envelope information. The introduced. They preserve the original envelope information and the
other is "Downgraded:", it preserves the original header fields which original header fields.
contains non-ASCII email addresses or which does not have clear
downgrading definition.
The SMTP downgradin is described in Section 4. It generates US-ASCII The SMTP downgrading is described in Section 4. It generates ASCII
only envelope information from an UTF8SMTP envelope. only envelope information from an UTF8SMTP envelope.
The Email header fields downgrading is described in Section 5. It The Email header fields downgrading is described in Section 5. It
generates US-ASCII only header fields. generates ASCII only header fields.
The MIME header fields are expanded in [I-D.ietf-eai-utf8headers]. The MIME header fields are expanded in [I-D.ietf-eai-utf8headers].
The MIME header fields downgrading is described in Section 6. It The MIME header fields downgrading is described in Section 6. It
generates US-ASCII only MIME header fields. generates ASCII only MIME header fields.
Decoding downgraded message is described in Appendix A. This
mechanism is for use by internationalized email clients. Once a
message has been downgraded, there is no up-conversion which can be
applied on the SMTP delivery path.
2. Terminology 2. Terminology
The key words "MUST", "SHALL", "REQUIRED", "SHOULD", "RECOMMENDED", The key words "MUST", "SHALL", "REQUIRED", "SHOULD", "RECOMMENDED",
and "MAY" in this document are to be interpreted as described in RFC and "MAY" in this document are to be interpreted as described in RFC
2119 [RFC2119]. 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 [I-D.ietf-eai-framework] or in [RFC2821][RFC2822], MIME EAI overview [RFC4952] or in [RFC2821][RFC2822], MIME documents
documents [RFC2045] [RFC2047] [RFC2183] [RFC2231]. The terms "ASCII [RFC2045] [RFC2047] [RFC2183] [RFC2231]. The terms "ASCII address",
address", "internationalized email address", "non-ASCII address", "internationalized email address", "non-ASCII address", "i18mail
"i18mail address", "UTF8SMTP", "message" and "mailing list" are used address", "UTF8SMTP", "message" and "mailing list" are used with the
with the definitions from [I-D.ietf-eai-framework] document. definitions from [RFC4952] document.
This document depends on [I-D.ietf-eai-smtpext], This document depends on [I-D.ietf-eai-smtpext],
[I-D.ietf-eai-utf8headers], and [I-D.ietf-eai-dsn]. Key words used [I-D.ietf-eai-utf8headers], and [I-D.ietf-eai-dsn]. Key words used
in these document are used in this document, too. 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.
An "UTF8SMTP envelope" has Email originator/recipient addresses An "UTF8SMTP envelope" has Email originator/recipient addresses
expanded by [I-D.ietf-eai-smtpext] and [I-D.ietf-eai-dsn]. expanded by [I-D.ietf-eai-smtpext] and [I-D.ietf-eai-dsn].
An "UTF8SMTP message" is Email messages expanded by An "UTF8SMTP message" is Email messages expanded by
[I-D.ietf-eai-utf8headers]. [I-D.ietf-eai-utf8headers].
3. New header fields definition 3. New header fields definition
A generic encapsulation header "Downgraded:" is defined to preserve New header fields starting with "downgraded" are defined here to
the original header field. It has two value fields. The former preserve those original envelope and header values which contain
value field holds the original header field name. The latter value UTF-8 characters. During downgrading, one new "downgraded" header
field holds the original header field value. Any original header field is added for each original envelope or header field which
field value is treated as an unstructured value. The latter value cannot be passed as-is to a server which does not support UTF8SMTP.
field of this header MUST be encoded by [RFC2047] section 5(1) method The original envelope or header field is removed or altered. Only
with charset='UTF-8' same as a 'Subject' header. The header field those envelope and header fields which contain non-ASCII characters
are affected. The result of this process is a message which is
compliant with existing email specifications [RFC2821] and [RFC2822].
The original internationalized information can be retrieved by
examining the "downgraded" header fields which were added. Even
though the information is not lost, the original message cannot be
perfectly reconstructed. Hence, downgrading is a one-way process.
However, an internationalized client might use the information in the
"downgraded" header fields when processing a downgraded message, for
example, such as displaying or composing a reply.
3.1. Envelope information preservation headers
Two headers "Downgraded-Mail-From:" and "Downgraded-Rcpt-To:" are
defined to preserve SMTP envelope downgraded information. SMTP
envelope downgraded information consists of the original non-ASCII
address and the downgraded all-ASCII address. The header field
syntax is specified as follows: syntax is specified as follows:
fields =/ downgraded fields =/ downgradedmailfrom / downgradedrcptto
downgraded = "Downgraded:" [FWS] field-name ":" unstructured CRLF downgradedmailfrom = "Downgraded-Mail-From:" [FWS] "<" uPath ">" 1*[FWS]
"<" Mailbox ">" [FWS] CRLF
downgradedrcptto = "Downgraded-Rcpt-To:" [FWS] "<" uPath ">" 1*[FWS]
"<" Mailbox ">" [FWS] CRLF
Encapsulating a header in a Downgraded: header is defined as: Original non-ASCII address <uPath> is defined in
1. Generate new Downgraded: header whose former value is the [I-D.ietf-eai-smtpext]; it is treated as unstructured in this header
original header field name and latter value is the original and it is encoded according to [RFC2047]. <Mailbox> is defined in
header fleid value. [RFC2821], section 4.1.2.
2. Encode the generated header by [RFC2047] section 5(1) method with
charset='UTF-8'.
3. Replace the original header field as the generated header field.
Another new header "Envelope-Downgraded:" is defined to preserve SMTP 3.2. Address header field preservation headers
envelope downgraded information. SMTP envelope downgraded
information consists of the original non-ASCII address and the The address header fields preservation headers are defined to
downgraded all-ASCII address. The non-ASCII address is encoded by preserve the original header field. Their value field holds the
original header field value. Any original header field value is
treated as an <unstructured> and it MUST be encoded according to
[RFC2047] with charset='UTF-8'. The header field syntax is specified [RFC2047] with charset='UTF-8'. The header field syntax is specified
as follows: as follows:
fields =/ edowngraded fields =/ known-downgraded-headers ":" unstructued CRLF
edowngraded = "Envelope-Downgraded:" [FWS] edowngraded-field ":" known-downgraded-headers = "Downgraded-" original-headers
[FWS] "<" uPath ">" [FWS] original-headers = "From" / "To" / "Cc" / "Bcc" /
"<" Mailbox ">" [FWS] CRLF "Sender" / "Reply-To" /
edowngraded-field = "From" / "To" "Resent-From" / "Resent-Sender" /
"Resent-To" / "Resent-Cc" / "Return-Path"
Original non-ASCII address <uPath> is defined in Preserving a header field in a downgraded header field is defined as:
[I-D.ietf-eai-smtpext]. <Mailbox> is defined in [RFC2821], section 1. Generate new downgraded header field whose value is the original
4.1.2. The "Envelope-Downgraded:" header field is encoded by header field value.
[RFC2047] in the downgraded message. 2. Encode the generated header according to [RFC2047] with
charset='UTF-8'.
3.3. Unknown header fields preservation headers
The unknown header fields preservation headers are defined to
encapsulate those original header field which contains non-ASCII
characters and are not otherwise provided for in the this
specification. The encapsulation header field name is the
concatenation of "Downgraded-" and the original name. The 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:
fields =/ unknown-downgraded-headers ":" unstructued CRLF
unknown-downgraded-headers = "Downgraded-" original-header-field-name
original-header-field-name = field-name
field-name = 1*ftext
ftext = %d33-57 / ; Any character except
%d59-126 ; controls, SP, and
; ":".
Encapsulating a header field in a Downgraded header field is defined
as:
1. Generate new Downgraded header whose value is the original header
field value.
2. Encode the generated header field according to [RFC2047] with
charset='UTF-8'.
3. Remove the original header field.
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 MAIL FROM: o MAIL FROM:
o RCPT TO: o RCPT TO:
o ORCPT parameter o ORCPT parameter
Downgrading in SMTP envelope uses ALT-ADDRESS parameter defined in Downgrading the SMTP envelope uses ALT-ADDRESS parameter defined in
[I-D.ietf-eai-smtpext]. An address is downgradable if the address is [I-D.ietf-eai-smtpext]. An address is downgradable if the address is
US-ASCII address or the address has US-ASCII address specified by non-ASCII address and has ASCII address specified by ALT-ADDRESS
ALT-ADDRESS parameter. parameter. Since only non-ASCII addresses are downgradable,
specifying an ALT-ADDRESS value for an all-ASCII address is invalid
If each recipient address and the return address is downgradable, the for use with this specification, and no interpretation is assigned to
SMTP to the recipient is downgradable. it. This restriction allows for future extension of the
specification even though no such extensions are currently
anticipated.
Even if no downgrading is performed for envelope from/to, MUA/MTA Note that even if no downgrading is performed on the envelope,
MUST downgrade message header fields and MIME header fields in the message header fields and message body MIME header fields that
message body including non-ASCII characters. This is described in contain non-ASCII characters MUST be downgraded. This is described
Section 5 and Section 6. in Section 5 and Section 6.
MTA replaces non-ASCII mail address with specified alternative US- When downgrading, replace each non-ASCII mail address in the envelope
ASCII address when downgrading. Before replacing, decode the ALT- with its specified alternative ASCII address and preserve the
ADDRESS parameter value because it is encoded as xtest [RFC3461]. original information using "Downgraded-Mail-From" and "Downgraded-
Also MTA preserves original information using "Envelope-Downgraded" Rcpt-To" header fields as defined in Section 3. Before replacing,
header defined in Section 3 with From or To field name. The non- decode the ALT-ADDRESS parameter value because it is encoded as xtest
ASCII mail addresses are encoded by [RFC2047] and put into "Envelope- [RFC3461].
Downgraded" header.
Not to disclose whole recipient addresses, MUA/MTA MUST NOT add To avoid disclosing recipient addresses, the downgrading process MUST
"Envelope-Downgraded: To:" header if the SMTP downgrading targets NOT add "Downgraded-Rcpt-To:" header if the SMTP downgrading targets
multiple recipients. See Section 7 for more detail. multiple recipients. See Section 7 for more detail.
While the recipient address downgrading, the "RCPT TO" command may The "RCPT TO" command may have an ORCPT parameter when the recipient
have an ORCPT parameter. The ORCPT parameter is used for DSN address is downgraded. The ORCPT parameter is used for DSN
[RFC3461]. If the ORCPT parameter contains "utf-8" address type [RFC3461]. If the ORCPT parameter contains an "utf-8" address and
address and the address contains non-ASCII characters, the ORCPT the address contains non-ASCII characters, the ORCPT parameter MUST
parameter MUST be converted to utf-8-addr-xtext form or utf-8-addr- be converted to utf-8-addr-xtext form or utf-8-addr-unitext form
unitext form which is described in [I-D.ietf-eai-dsn]. which are described in [I-D.ietf-eai-dsn].
5. Email header fields downgrading 5. Email header fields downgrading
This section defines conversion method to US-ASCII for each header This section defines the conversion method to ASCII for each header
field which may contain non-ASCII characters. Header fields are field which may contain non-ASCII characters.
listed in [RFC4021]. If the whole mail header field does not contain
non-ASCII characters, email header field downgrading is not required.
If the header field contains non-ASCII characters, convert the header
field. Each header field's downgrading method is described below.
o Downgrading Address header fields [I-D.ietf-eai-utf8headers] expands Received: header fields, [RFC2822]
ABNF elements <mailbox>, <word>, <comment>, <unstructured>, [RFC2045]
ABNF element <value>.
Header field downgrading is defined below for each ABNF element.
Downgrading an unknown header field is also defined as ENCAPSULATION
downgrading. Converting the header field terminates when no non-
ASCII characters remain in the header field.
RECEIVED downgrading: If the header field name is "Received:" and
the FOR clause contains a non-ASCII addresses, remove the FOR
clause from the header field. The other part except in the
comments does not contain non-ASCII values.
UNSTRUCTURED downgrading: If the header field has an <unstructured>
field which contains non-ASCII characters, encode the field
according to [RFC2047] with charset='UTF-8'.
WORD downgrading: If the header field has any <word> fields which
contains non-ASCII characters, encode the fields according to
[RFC2047] with charset='UTF-8'.
COMMENT downgrading: If the header field has any <comment> fields
which contains non-ASCII characters, encode the fields according
to [RFC2047] with charset='UTF-8'.
MIME-VALUE downgrading: If the header field has any <value>
elements defined by [RFC2045] and the elements contain non-ASCII
characters, encode the <value> elements by [RFC2231] with
charset='UTF-8' and the Language information empty. If the
<value> element is <quoted-string> and it contains <CFWS> outside
the DQUOTE, remove the <CFWS> before this conversion.
DISPLAY-NAME downgrading: If the header field has any <mailbox>
elements and they have <display-name> elements which contain non-
ASCII characters, encode the <display-name> elements according to
[RFC2047] with charset='UTF-8'.
MAILBOX downgrading: The <mailbox> elements have no equivalent
format for non-ASCII addresses. If the header field has any
<mailbox> elements which contain non-ASCII characters, preserve
the header field in each Address header field preservation header
defined in Section 3.2, and rewrite each <mailbox> element to
ASCII only format. The <mailbox> element which contains non-ASCII
characters is one of three formats.
* [ Display-name ] "<" Utf8-addr-spec 1*FCS "<" Addr-spec ">>"
Rewrite it as
[ Display-name ] "<" Addr-spec ">"
* [ Display-name ] "<" Utf8-addr-spec ">"
* Utf8-addr-spec
Rewrite both as
[ Display-name ] "Internationalized Address " Encoded-word
" Removed:;"
where the <Encoded-word> is the original <Utf8-addr-spec>
encoded according to [RFC2047].
ENCAPSULATION downgrading: if the header field contains non-ASCII
characters and for which no rule is given above, encapsulate it in
a Downgraded header field described in Section 3.3 as a last
resort.
5.1. Downgrading method for each header field
Header fields are listed in [RFC4021]. This section describes the
downgrading method for each header field.
If the whole mail header field does not contain non-ASCII characters,
email header field downgrading is not required. Each header field's
downgrading method is described below.
o Address header fields which contain <mailbox>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:
Return-Path:
The header field value is composed of single or multiple <angle- If the header field contains <mailbox> elements which contains
addr>/<utf8-addr-spec> fields defined in non-ASCII addresses, preserve the header field in a downgraded
[I-D.ietf-eai-utf8headers]. header before the conversion. Then do COMMENT downgrading,
If the header has no <angle-addr> or <utf8-addr-spec> which DISPLAY-NAME downgrading and MAILBOX downgrading.
contains non-ASCII characters, only "display-name" part or
comments contain non-ASCII characters, the "display-name" or
comments are encoded by [RFC2047] with charset='UTF-8'.
Otherwise, preserve the header field in "Downgraded:" header,
generate US-ASCII only address header, and replace the original
header field with the generated US-ASCII only header field. New
header generation method are shown in below.
Extract every field and downgrade each <mailbox>/<angle-addr>/
<utf8-addr-spec>.
If the non-ASCII address is in <utf8-addr-spec> form, then rewrite
it as "Internationalized Address utf8-addr-spec-encoded
Removed:;". "utf8-addr-spec" is encoded to "utf8-addr-spec-
encoded" by [RFC2047].
The field may contain multiple <comment> fields. The <comment>
fields are encoded by [RFC2047] with charset='UTF-8', if
necessary.
<mailbox> is defined as "display-name <angle-addr>" in
[I-D.ietf-eai-utf8headers]. The "display-name" field is encoded
by [RFC2047] with charset='UTF-8', if necessary.
The <angle-addr> may contain comments. Before processing, remove
comments from the <angle-addr>.
UTF8SMTP <angle-addr> defined in [I-D.ietf-eai-utf8headers]
consists of 3 forms. Downgrading method is defined for each form.
* <US-ASCII>
<US-ASCII> is used as is.
* <non-ASCII>
Non-ASCII mail address without sender-specified US-ASCII
address is replaced as
"Internationalized Address non-ASCII-encoded Removed:;".
non-ASCII address is encoded to "non-ASCII-encoded" by
[RFC2047].
* <non-ASCII <US-ASCII>>
Non-ASCII mail address with sender-specified US-ASCII address
MUST be replaced as "display-name <US-ASCII>".
o Downgrading Non-ASCII in comments o Downgrading Non-ASCII in comments
Date: Date:
Message-ID: 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:
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, do
encode the header by [RFC2047] with charset='UTF-8'. COMMENT downgrading.
o Trace header o Trace header fields
Received: Received:
If the FOR clause contains non-ASCII addresses, remove the FOR do COMMENT downgrading and do RECEIVED downgrading.
clause in the header. The other part does not contain non-ASCII
values.
o MIME Content header o MIME Content header fields
Content-Type: Content-Type:
Content-Disposition: Content-Disposition:
Encode the header by [RFC2231] with charset='UTF-8'. Do MIME-VALUE downgrading.
o Unstructured text headers and structured text headers o Non-ASCII in <unstructured>
Subject: Subject:
Comments: Comments:
Keywords:
Content-Description: Content-Description:
Encode the header by [RFC2047] with charset='UTF-8'. Do UNSTRUCTURED downgrading.
o URI headers
List-Archive:
List-Help:
List-Owner:
List-Post:
List-Subscribe:
List-Unsubscribe:
If the header contains UTF-8 characters in comments, encode the
header by [RFC2047] with charset='UTF-8'. If the header contains
UTF-8 characters in URI, Encode the URI by [RFC3987].
o Other target headers
All other headers which contains non-ASCII characters are
preserved in Downgraded: header and removed.
o ASCII only headers o Non-ASCII in <unstructured> or <phrase>
Keywords:
Content-Transfer-Encoding: Do WORD downgrading.
This header is not target of downgrading. o Other header fields
Downgraded header fields should be inserted or replaced at the same All other header fields which contains non-ASCII characters are
position of the original header field. user-defined, missing from this draft or future defined header
fields. Do ENCAPSULATION downgrading as a last resort.
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
[I-D.ietf-eai-utf8headers]. This section defines conversion method [I-D.ietf-eai-utf8headers]. This section defines the conversion
to US-ASCII for each MIME header field which may contain non-ASCII method to ASCII only header fields for each MIME header field which
characters. Parse the message body's MIME structure for all level contains non-ASCII characters. Parse the message body's MIME
and check all MIME header fields whether contains non-ASCII structure for all levels and check each MIME header field whether it
characters. If the header contains non-ASCII characters in the contains non-ASCII characters. If the header field contains non-
header value, the header is a target of the MIME body part headers ASCII characters in the header value, the header is a target of the
downgrading. Each MIME header field's downgrading method is MIME body part headers downgrading. Each MIME header field's
described below: downgrading method is described below. COMMENT downgrading, MIME-
VALUE downgrading, 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, encode the header by [RFC2047] with charset='UTF-8'. comments, do COMMENT downgrading.
Content-Type: Content-Type:
Content-Disposition: Content-Disposition:
Encode the header by [RFC2231] with charset='UTF-8'. Do MIME-VALUE downgrading.
Content-Description: Content-Description:
Encode the header by [RFC2047] with charset='UTF-8'. Do UNSTRUCTURED downgrading.
Content-Transfer-Encoding:
This header does not contain non-ASCII characters.
7. Security considerations 7. Security considerations
o A Downgraded message's header fields contain ASCII characters
only. But they still contain MIME encapsulated header fields
which contains non-ASCII UTF-8 characters. And more, the body
part may contain UTF-8 message. The recipients need to accept
UTF-8 mail body and UTF-8 header fields which is MIME encoded.
o Rewriting headers increases the opportunities for undetected o Rewriting headers increases the opportunities for undetected
spoofing. spoofing.
o Recipients addresses can be undisclosed if those addresses are o Recipients addresses can be undisclosed if those addresses are
listed on Bcc or group address. Those undisclosed addresses are listed on Bcc or group address. Those undisclosed addresses are
used only in the Envelope. Copying information from the Envelope used only in the Envelope. Copying information from the Envelope
into headers creates some risk of inadvertent information into headers risks inadvertent information disclosure (not just
disclosure (not just about addresses). about addresses). See Section 4 for instructions on recipient
o It is likely that the techniques suggested here will invalidate address handling.
methods that depend on signatures over headers or the envelope.
"Issues" does talk about that, but, because this document strongly o The techniques described here invalidates methods that depend on
implies that one can downgrade and then upgrade again with no risk signatures over the envelope or any part of the message which
of loss of information, the topic should be explored further. includes the top-level header or body part headers. Depending on
the specific message being downgraded, DKIM especially, but also
possibly S/MIME, PGP, and similar techniques are all likely to
break.
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") to downgrade procedures depend on new headers (e.g., "Downgraded") to
avoid information loss, then the risk of having those headers avoid information loss, then the risk of having those headers
dropped and its implications must be identified. In particular, dropped and its implications must be identified. In particular,
it appears to me that, if the Downgraded headers are dropped, it appears to me that, if the Downgraded headers are dropped,
there is no possibility of reconstructing the original information there is no possibility of reconstructing the original information
at any point (before, during, or after delivery). at any point (before, during, or after delivery).
See "Security considerations" section in [I-D.ietf-eai-framework] for See "Security considerations" section in [RFC4952] for more
more discussion. discussion.
8. IANA Considerations 8. Implementation notes
Downgrading is an alternative to rejection for delivering messages
which require UTF8SMTP support to a server which does not provide
this. Implementing the full specification of this document is
desirable, but a partial implementation is also possible.
If a partial downgrading implementation confronts an unsupported
downgrading target, the implementation MUST NOT send the message to
server which does not support UTF8SMTP. Instead, it MUST reject the
message or generate a notification of non-deliverability.
8.1. Trivial downgrading
A partial downgrading, Trivial downgrading is discussed. It does not
support non-ASCII addresses in SMTP envelope and address header
fields, unknown header fields downgrading, the MIME body part headers
downgrading. It supports
o some simple header fields downgrading: Subject
o comments and display name downgrading: From, To, CC
o trace header field downgrading: Received
Otherwise, the downgrading fails.
Trivial downgrading targets mail messages which are generated by
UTF8SMTP aware MUAs and contain non-ASCII characters in comments,
display names, unstructured parts without using non-ASCII E-mail
addresses. This E-mail message does not contain non-ASCII addresses
in SMTP Envelope and its header fields. But it is not deliverable
via UTF8SMTP un-aware MTA. Implementing full spec downgrading may be
hard, but trivial downgrading saves mail messages without using non-
ASCII addresses.
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 Header field name: Downgraded-Mail-From
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: Envelope-Downgraded Header field name: Downgraded-Rcpt-To
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)
9. Acknowledgements Header field name: Downgraded-From
Applicable protocol: mail
Status: experimental
Author/change controller: IETF
Specification document(s): This document (Section 3)
Header field name: Downgraded-Sender
Applicable protocol: mail
Status: experimental
Author/change controller: IETF
Specification document(s): This document (Section 3)
Header field name: Downgraded-To
Applicable protocol: mail
Status: experimental
Author/change controller: IETF
Specification document(s): This document (Section 3)
Header field name: Downgraded-Cc
Applicable protocol: mail
Status: experimental
Author/change controller: IETF
Specification document(s): This document (Section 3)
Header field name: Downgraded-Reply-To
Applicable protocol: mail
Status: experimental
Author/change controller: IETF
Specification document(s): This document (Section 3)
Header field name: Downgraded-Bcc
Applicable protocol: mail
Status: experimental
Author/change controller: IETF
Specification document(s): This document (Section 3)
Header field name: Downgraded-Resent-From
Applicable protocol: mail
Status: experimental
Author/change controller: IETF
Specification document(s): This document (Section 3)
Header field name: Downgraded-Resent-To
Applicable protocol: mail
Status: experimental
Author/change controller: IETF
Specification document(s): This document (Section 3)
Header field name: Downgraded-Resent-Cc
Applicable protocol: mail
Status: experimental
Author/change controller: IETF
Specification document(s): This document (Section 3)
Header field name: Downgraded-Resent-Sender
Applicable protocol: mail
Status: experimental
Author/change controller: IETF
Specification document(s): This document (Section 3)
Header field name: Downgraded-Return-Path
Applicable protocol: mail
Status: experimental
Author/change controller: IETF
Specification document(s): This document (Section 3)
And more, IANA is requested to reserve all the field names that start
by "Downgraded-" for unknown header fields downgrading described in
Section 3.3, in accordance with the procedures set out in [RFC3864].
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
Significant comments and suggestions were received from John Klensin, Significant comments and suggestions were received from John Klensin,
Harald Alvestrand, Chris Newman, Charles Lindsey, Marcos Sanz, Alexey Harald Alvestrand, Chris Newman, Randall Gellens, Charles Lindsey,
Melnikov, Frank Ellermann and JET members. Marcos Sanz, Alexey Melnikov, Frank Ellermann, Edward Lewis, S.
Moonesamy and JET members.
10. Change History 11. Change History
This section is used for tracking the update of this document. Will This section is used for tracking the update of this document. Will
be removed after finalize. be removed after finalize.
10.1. draft-yoneya-ima-downgrade: Version 00 11.1. draft-yoneya-ima-downgrade: Version 00
o Initial version o Initial version
o Followed draft-yeh-ima-utf8headers-00 and draft-yao-smtpext-00 o Followed draft-yeh-ima-utf8headers-00 and draft-yao-smtpext-00
10.2. draft-yoneya-ima-downgrade: Version 01 11.2. draft-yoneya-ima-downgrade: Version 01
o Document structure was changed o Document structure was changed
o Followed draft-yeh-ima-utf8headers-01 and draft-yao-smtpext-02 o Followed draft-yeh-ima-utf8headers-01 and draft-yao-smtpext-02
o Downgrading requirements were added o Downgrading requirements were added
o SMTP DATA encapsulation method was proposed o SMTP DATA encapsulation method was proposed
o Downgrading examples was provided o Downgrading examples was provided
10.3. draft-ietf-eai-downgrade: Version 00 11.3. draft-ietf-eai-downgrade: Version 00
o Followed draft-yeh-ima-utf8headers-01 and o Followed draft-yeh-ima-utf8headers-01 and
draft-ietf-eai-smtpext-00 draft-ietf-eai-smtpext-00
o No header downgrading method was proposed o No header downgrading method was proposed
o Header encapsulation method was proposed o Header encapsulation method was proposed
10.4. draft-ietf-eai-downgrade: Version 01 11.4. draft-ietf-eai-downgrade: Version 01
o Followed draft-ietf-eai-utf8headers-00 o Followed draft-ietf-eai-utf8headers-00
o Header conversion and encapsulation method was merged o Header conversion and encapsulation method was merged
o Header conversion method was defined in detail o Header conversion method was defined in detail
10.5. draft-ietf-eai-downgrade: Version 02 11.5. draft-ietf-eai-downgrade: Version 02
o Followed draft-ietf-eai-utf8headers-01 and o Followed draft-ietf-eai-utf8headers-01 and
draft-ietf-eai-smtpext-01 draft-ietf-eai-smtpext-01
o Specification about algorithmic generated address is removed o Specification about algorithmic generated address is removed
o No header downgrading method was removed o No header downgrading method was removed
o SMTP DATA encapsulation method was removed o SMTP DATA encapsulation method was removed
10.6. draft-ietf-eai-downgrade: Version 03 11.6. draft-ietf-eai-downgrade: Version 03
o Followed draft-ietf-eai-utf8headers-03 and o Followed draft-ietf-eai-utf8headers-03 and
draft-ietf-eai-smtpext-03 draft-ietf-eai-smtpext-03
o Downgraded: and Envelope-Downgraded: headers definition was added o Downgraded: and Envelope-Downgraded: headers definition was added
o Mail header downgrading method was refined o Mail header fields downgrading method was refined
o Examples in Appendix A were refined o Examples in Appendix A were refined
10.7. draft-ietf-eai-downgrade: Version 04 11.7. draft-ietf-eai-downgrade: Version 04
o Followed draft-ietf-eai-utf8headers-06, draft-ietf-eai-smtpext-07 o Followed draft-ietf-eai-utf8headers-06, draft-ietf-eai-smtpext-07
and draft-ietf-eai-dsn-02 and draft-ietf-eai-dsn-02
o Downgrading requirements and conditions were moved to o Downgrading requirements and conditions were moved to
Introduction. Introduction.
o Descriptions about upgrading were removed. o Descriptions about upgrading were removed.
o SPF and DKIM discussion were removed. o SPF and DKIM discussion were removed.
o Added many header fields downgrading. o Added many header fields downgrading.
o Allow address literal rewriting without alternate US-ASCII address o Allow address literal rewriting without alternate ASCII address in
in header fields. header fields.
o Added MIME body part headers downgrading. o Added MIME body part headers downgrading.
o Added ORCPT downgrading. o Added ORCPT downgrading.
11. Normative References 11.8. draft-ietf-eai-downgrade: Version 05
o fixed examples
* ALT-ADDRESS parameter mistake
* RFC2047(x) notation was changed to encoded-word format
o Added implementation consideration section and trivial downgrading
o Downgraded: and Envelope-Downgraded: headers are separated for
each original headers.
o Removed list-* header fields downgrading
o Changed the way of writing the header field downgrading section
12. Normative References
[I-D.ietf-eai-dsn] [I-D.ietf-eai-dsn]
Newman, C. and A. Melnikov, "International Delivery and Newman, C. and A. Melnikov, "International Delivery and
Disposition Notifications", draft-ietf-eai-dsn-02 (work in Disposition Notifications", draft-ietf-eai-dsn-05 (work in
progress), July 2007. progress), November 2007.
[I-D.ietf-eai-framework]
Klensin, J. and Y. Ko, "Overview and Framework for
Internationalized Email", draft-ietf-eai-framework-05
(work in progress), February 2007.
[I-D.ietf-eai-smtpext] [I-D.ietf-eai-smtpext]
Yao, J. and W. Mao, "SMTP extension for internationalized Yao, J. and W. Mao, "SMTP extension for internationalized
email address", draft-ietf-eai-smtpext-07 (work in email address", draft-ietf-eai-smtpext-09 (work in
progress), June 2007. progress), November 2007.
[I-D.ietf-eai-utf8headers] [I-D.ietf-eai-utf8headers]
Yeh, J., "Internationalized Email Headers", Yeh, J., "Internationalized Email Headers",
draft-ietf-eai-utf8headers-05 (work in progress), draft-ietf-eai-utf8headers-07 (work in progress),
April 2007. September 2007.
[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet Message Extensions (MIME) Part One: Format of Internet Message
Bodies", RFC 2045, November 1996. Bodies", RFC 2045, November 1996.
[RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions) [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions)
Part Three: Message Header Extensions for Non-ASCII Text", Part Three: Message Header Extensions for Non-ASCII Text",
RFC 2047, November 1996. RFC 2047, November 1996.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
skipping to change at page 13, line 49 skipping to change at page 18, line 19
April 2001. 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.
[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.
[RFC3987] Duerst, M. and M. Suignard, "Internationalized Resource
Identifiers (IRIs)", RFC 3987, January 2005.
[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
Internationalized Email", RFC 4952, July 2007.
Appendix A. Displaying downgraded message Appendix A. Displaying downgraded message
A perfect reverse-function of the downgrading does not exist because
the encoding defined in [RFC2047] is not exactly reversible. The
restoration of the downgrading should be done once at the final
destination of the downgraded message such as MUAs or IMAP servers.
This document describes the restoration methods as displaying
technique.
Displaying downgraded message is mostly retrieved by MIME decoding Displaying downgraded message is mostly retrieved by MIME decoding
[RFC2047][RFC2231]. Result of MIME decoding, downgraded address according to [RFC2047] and [RFC2231]. Result of MIME decoding,
header fields and undefined header fields are still in Downgraded: downgraded header fields are still in Downgraded-*: header fields,
headers, but it is MIME decoded. This decoded Downgraded: headers but the header field values are MIME decoded. These decoded
contain the original headers and the recipient can read them. But Downgraded-*: header fields contain the original header field values
the recipient's MUA cannot use the original header fields and the recipient can read them. But the recipient's MUA cannot use
automatically. the original header fields automatically.
Additionally, MUAs can decode Downgraded: header. It is described in Additionally, MUAs can process Downgraded-*: header. It is described
Appendix A.1 and Appendix A.2. in Appendix A.1 and Appendix A.2.
A.1. Displaying technique 1 A.1. Displaying technique 1
MUA can remove 'Downgraded:' from decoded 'Downgraded:' header MUA can remove 'Downgraded-' from decoded 'Downgraded-*:' header
fields. With this technique, The address header fields may be fields' name. With this technique, The address header fields may be
displayed twice, one is ASCII-only downgraded header field and the displayed twice, one is ASCII-only downgraded header field and the
other is from decoded Downgraded: header. other is from decoded Downgraded-*: header.
A.2. Displaying technique 2 A.2. Displaying technique 2
MUA can decode and regenerate headers which contains the original MUA can decode and regenerate headers which contains the original
non-ASCII addresses. It is described below: non-ASCII addresses. It is described below:
o For each Downgraded: header, generate new header which field-name o For each Downgraded-*: header field, generate new header field
is the second field of the Downgraded: header and the header value which field name is the original header name and the field value
is the third field of the Downgraded: header. is the decoded header field value.
* If the header is an address header described in Section 5, * If the header is an address header described in Section 5,
+ Generate ASCII only header defined in Section 5 from the + Generate ASCII only header fields defined in Section 5 from
decoded header. the decoded header fields without re-generating
Downgraded-*: header fields.
+ Remove the header field which is the same with the generated + Remove the header field which is the same with the generated
ASCII only header from the header fields. If the headers ASCII only header from the header fields. This comparison
contain [RFC2047] encoded part, decode it before comparison. requires considerations for foldings and [RFC2047] encoded
parts.
Appendix B. Examples Appendix B. Examples
B.1. Downgrading example 1 B.1. Downgrading example 1
This section shows an SMTP Downgrading example. Consider a This section shows an SMTP Downgrading example. Consider a mail
downgradable mail message. message.
o The sender address is "NON-ASCII-FROM" which is non-ASCII address. o The sender address is "NON-ASCII-local@example.com" which is non-
Its ASCII alternative is "ASCII-FROM". ASCII address. Its ASCII alternative is "ASCII-local@example.com"
and its display-name is "DISPLAY-local".
o The "To" address is "NON-ASCII-TO" which is non-ASCII address. o The "To" address is "NON-ASCII-remote1@example.net" which is non-
Its ASCII alternative is "ASCII-TO". ASCII address. Its ASCII alternative is
o The "CC" address is non-ASCII address "NON-ASCII-CC" without "ASCII-remote1@example.net" and its display-name is "DISPLAY-
alternative US-ASCII address. remote1".
o The "CC" address is non-ASCII address
"NON-ASCII-remote2@example.org" without alternative ASCII address.
Its display-name is "DISPLAY-remote2".
o Three display-names contains non-ASCII characters.
o The Subject header is "NON-ASCII-SUBJECT" which contains non-ASCII o The Subject header is "NON-ASCII-SUBJECT" which contains non-ASCII
characters. characters.
o assume To: recipient's MTA (example.net) does not support
UTF8SMTP.
o assume Cc: recipient's MTA (example.org) supports UTF8SMTP.
The example SMTP envelope/message is showin in Figure 4. In this
example, the To: recipient's session is fucused.
Original UTF8SMTP message SMTP session MAIL From: <NON-ASCII-local@example.com>
ALT-ADDRESS=ASCII-local@example.com
MAIL From: <NON-ASCII-FROM> ALT-ADDRESS <ASCII-FROM> RCPT TO: <NON-ASCII-remote1@example.net>
RCPT TO: <NON-ASCII-TO> ALT-ADDRESS <ASCII-TO> ALT-ADDRESS=ASCII-remote1@example.net
RCPT TO: <NON-ASCII-CC> RCPT TO: <NON-ASCII-remote2@example.org>
------------------------------------------------------------- -------------------------------------------------------------
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: <NON-ASCII-FROM <ASCII-FROM>> From: DISPLAY-local <NON-ASCII-local@example.com
To: <NON-ASCII-TO <ASCII-TO>> <ASCII-local@example.com>>
CC: <NON-ASCII-CC> To: DISPLAY-remote1 <NON-ASCII-remote1@example.net
<ASCII-remote1@example.net>>
CC: DISPLAY-remote2 <NON-ASCII-remote2@example.org>
Date: DATE Date: DATE
MAIL_BODY MAIL_BODY
Figure 3: Original UTF8SMTP message Figure 4: Original envelope/message (example 1)
In this example, there are two SMTP recipients, one is To:, the other In this example, there are two SMTP recipients, one is To:, the other
is CC:. In this example, assume the Cc: recipient's MTA supports is CC:. The SMTP downgrading treats To: session downgrading.
UTF8SMTP and the To: recipient's MTA does not support UTF8SMTP. The Figure 5 shows SMTP downgraded example.
SMTP downgrading treats To: session downgrading. Figure 4 shows SMTP
downgraded example.
MAIL From: <ASCII-FROM> MAIL From: <ASCII-local@example.com>
RCPT TO: <ASCII-TO> RCPT TO: <ASCII-remote1@example.net>
------------------------------------------------------------- -------------------------------------------------------------
Envelope-Downgraded: From: <RFC2047(NON-ASCII-FROM)> <ASCII-FROM> Downgraded-Mail-From: =?UTF-8?Q?<NON-ASCII-local@example.com>?=
Envelope-Downgraded: To: <RFC2047(NON-ASCII-TO)> <ASCII-TO> <ASCII-local@example.com>
Downgraded-Rcpt-To: =?UTF-8?Q?<NON-ASCII-remote1@example.net>?=
<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: <NON-ASCII-FROM <ASCII-FROM>> From: DISPLAY-local <NON-ASCII-local@example.com
To: <NON-ASCII-TO <ASCII-TO>> <ASCII-local@example.com>>
CC: <NON-ASCII-CC> To: DISPLAY-remote1 <NON-ASCII-remote1@example.net
<ASCII-remote1@example.net>>
CC: DISPLAY-remote2 <NON-ASCII-remote2@example.org>
Date: DATE Date: DATE
MAIL_BODY MAIL_BODY
Figure 4: SMTP Downgraded UTF8SMTP message Figure 5: SMTP Downgraded envelope/message (example 1)
After SMTP downgrading, header downgrading is performed. Final
downgraded messages are shown in Figure 5. Return-Path header will
be added the destination MTA.
Result of the header downgrading. After SMTP downgrading, header fields downgrading is performed.
Final downgraded message is shown in Figure 6. Return-Path header
will be added by the final destination MTA.
Return-Path: <ASCII-FROM> Return-Path: <ASCII-local@example.com>
Envelope-Downgraded: From: <RFC2047(NON-ASCII-FROM)> <ASCII-FROM> Downgraded-Mail-From: =?UTF-8?Q?<NON-ASCII-local@example.com>?=
Envelope-Downgraded: To: <RFC2047(NON-ASCII-TO)> <ASCII-TO> <ASCII-local@example.com>
Downgraded-Rcpt-To: =?UTF-8?Q?<NON-ASCII-remote1@example.net>?=
<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: RFC2047(UTF-8_SUBJECT) Subject: =?UTF-8?Q?NON-ASCII-SUBJECT?=
Downgraded: From: RFC2047(<NON-ASCII-FROM <ASCII-FROM>>) Downgraded-From: =?UTF-8?Q?DISPLAY-local?=
From: <ASCII-FROM> =?UTF-8?Q?<NON-ASCII-local@example.com?= <ASCII-local@example.com>>
Downgraded: To: RFC2047(<NON-ASCII-TO <ASCII-TO>>) From: =?UTF-8?Q?DISPLAY-local?= <ASCII-local@example.com>
To: <ASCII-TO> To: =?UTF-8?Q?DISPLAY-remote1?= <ASCII-remote1@example.net>
Downgraded: CC: RFC2047(<NON-ASCII-CC>) Downgraded-To: =?UTF-8?Q?DISPLAY-remote1?=
CC: Internationalized address RFC2047(NON-ASCII-CC) removed:; =?UTF-8?Q?<NON-ASCII-remote1@example.net?= <ASCII-remote1@example.net>>
CC: =?UTF-8?Q?DISPLAY-remote2?= Internationalized address
=?UTF-8?Q?NON-ASCII-remote2@example.org?= removed:;
Downgraded-CC: =?UTF-8?Q?DISPLAY-remote2?=
=?UTF-8?Q?<NON-ASCII-remote2@example.org>?=
Date: DATE Date: DATE
MAIL_BODY MAIL_BODY
Figure 5: Header downgraded message Figure 6: Downgraded message (example 1)
RFC2047() stands for [RFC2047] encoding.
B.2. Displaying example (Displaying technique 1) B.2. Displaying example
This example shows MIME decoded message of Figure 5. Figure 7 shows MIME decoded message of Figure 6.
Result of MIME decoding. Return-Path: <ASCII-local@example.com>
Downgraded-Mail-From: <NON-ASCII-local@example.com>
<ASCII-local@example.com>
Downgraded-Rcpt-To: <NON-ASCII-remote1@example.net>
<ASCII-remote1@example.net>
Message-Id: MESSAGE_ID
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Subject: NON-ASCII-SUBJECT
Downgraded-From: DISPLAY-local<NON-ASCII-local@example.com
<ASCII-local@example.com>>
From: DISPLAY-local <ASCII-local@example.com>
Downgraded-To: DISPLAY-remote1<NON-ASCII-remote1@example.net
<ASCII-remote1@example.net>>
To: DISPLAY-remote1 <ASCII-remote1@example.net>
Downgraded-CC: DISPLAY-remote2<NON-ASCII-remote2@example.org>
CC: DISPLAY-remote2 Internationalized address
NON-ASCII-remote2@example.org removed:;
Date: DATE
Return-Path: <ASCII-FROM> MAIL_BODY
Envelope-Downgraded: From: <NON-ASCII-FROM> <ASCII-FROM>
Envelope-Downgraded: To: <NON-ASCII-TO> <ASCII-TO> Figure 7: MIME decoded message
B.2.1. Displaying technique 1 example
After removing 'Downgraded-' from decoded 'Downgraded-*:' header
fields
Return-Path: <ASCII-local@example.com>
Downgraded-Mail-From: <NON-ASCII-local@example.com>
<ASCII-local@example.com>
Downgraded-Rcpt-To: <NON-ASCII-remote1@example.net>
<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_SUBJECT Subject: NON-ASCII-SUBJECT
Downgraded: From: <NON-ASCII-FROM <ASCII-FROM>> From: DISPLAY-local<NON-ASCII-local@example.com
From: <ASCII-FROM> <ASCII-local@example.com>>
Downgraded: To: <NON-ASCII-TO <ASCII-TO>> From: DISPLAY-local <ASCII-local@example.com>
To: <ASCII-TO> To: DISPLAY-remote1<NON-ASCII-remote1@example.net
Downgraded: CC: <NON-ASCII-CC> <ASCII-remote1@example.net>>
CC: Internationalized address NON-ASCII-CC removed:; To: DISPLAY-remote1 <ASCII-remote1@example.net>
CC: DISPLAY-remote2<NON-ASCII-remote2@example.org>
CC: DISPLAY-remote2 Internationalized address
NON-ASCII-remote2@example.org removed:;
Date: DATE Date: DATE
MAIL_BODY MAIL_BODY
Figure 6: MIME decoded message Figure 8: Displaying technique 1
B.3. Displaying example (Displaying technique 2) B.2.2. Displaying technique 2 example
This example shows displaying process of Appendix A.2 for Figure 5. This example shows displaying process of Appendix A.2 for Figure 6.
First, check 'Downgraded:' header existence. First, check downgraded address header fields existence.
Select 'Downgraded:' headers. Downgraded-From: =?UTF-8?Q?DISPLAY-local?=
=?UTF-8?Q?<NON-ASCII-local@example.com?= <ASCII-local@example.com>>
Downgraded-To: =?UTF-8?Q?DISPLAY-remote1?=
=?UTF-8?Q?<NON-ASCII-remote1@example.net?= <ASCII-remote1@example.net>>
Downgraded-CC: =?UTF-8?Q?DISPLAY-remote2?=
=?UTF-8?Q?<NON-ASCII-remote2@example.org>?=
Downgraded: From: <NON-ASCII-FROM <ASCII-FROM>> Figure 9: Displaying technique 2: selecting downgraded address header
Downgraded: To: <NON-ASCII-TO <ASCII-TO>> fields
Downgraded: CC: <NON-ASCII-CC> Then, decode MIME encoded parts.
Figure 7: Displaying technique 2: selecting Downgraded headers Downgraded-From: DISPLAY-local<NON-ASCII-local@example.com
Apply address header downgrading to the decoded header. <ASCII-local@example.com>>
Downgraded-To: DISPLAY-remote1<NON-ASCII-remote1@example.net
<ASCII-remote1@example.net>>
Downgraded-CC: DISPLAY-remote2<NON-ASCII-remote2@example.org>
From: <ASCII-FROM> Figure 10: Displaying technique 2: decode downgraded address header
To: <ASCII-TO> fields
CC: Internationalized address RFC2047(NON-ASCII-CC) removed:;
Figure 8: Displaying technique 2: downgraded decoded Downgraded Apply header fields downgrading to the decoded header without re-
headers generating Downgraded-*: header.
Remove the header line which is the same with the downgraded line. From: =?UTF-8?Q?DISPLAY-local?= <ASCII-local@example.com>
If the headers contain [RFC2047] encoded part, decode it before To: =?UTF-8?Q?DISPLAY-remote1?= <ASCII-remote1@example.net>
comparison. CC: =?UTF-8?Q?DISPLAY-remote2?= Internationalized address
=?UTF-8?Q?NON-ASCII-remote2@example.org?= removed:;
Return-Path: <ASCII-FROM> Figure 11: Displaying technique 2: downgraded decoded 'Downgraded-*:'
Envelope-Downgraded: From: <NON-ASCII-FROM> <ASCII-FROM>
Envelope-Downgraded: To: <NON-ASCII-TO> <ASCII-TO> Remove the header fields which is the same with Figure 11 from
Figure 6.
Return-Path: <ASCII-local@example.com>
Downgraded-Mail-From: =?UTF-8?Q?<NON-ASCII-local@example.com>?=
<ASCII-local@example.com>
Downgraded-Rcpt-To: =?UTF-8?Q?<NON-ASCII-remote1@example.net>?=
<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_SUBJECT Subject: =?UTF-8?Q?NON-ASCII-SUBJECT?=
Downgraded: From: <NON-ASCII-FROM <ASCII-FROM>> Downgraded-From: =?UTF-8?Q?DISPLAY-local?=
Downgraded: To: <NON-ASCII-TO <ASCII-TO>> =?UTF-8?Q?<NON-ASCII-local@example.com?= <ASCII-local@example.com>>
Downgraded: CC: <NON-ASCII-CC <ASCII-CC>> Downgraded-To: =?UTF-8?Q?DISPLAY-remote1?=
=?UTF-8?Q?<NON-ASCII-remote1@example.net?= <ASCII-remote1@example.net>>
Downgraded-CC: =?UTF-8?Q?DISPLAY-remote2?=
=?UTF-8?Q?<NON-ASCII-remote2@example.org>?=
Date: DATE Date: DATE
MAIL_BODY MAIL_BODY
Figure 9: Displaying technique 2: Removing duplicated headers Figure 12: Displaying technique 2: Removing duplicated headers
Decode each 'Downgraded' header and replace it with its decoded Decode each 'Downgraded' header and replace it with its decoded
header. If each mail header has [RFC2047] encoded part and which header. If each mail header has [RFC2047] encoded part and which
encoding is "UTF-8", it is a downgraded header, so decode it. encoding is "UTF-8", it is a downgraded header, so decode it.
Return-Path: <ASCII-FROM> Return-Path: <ASCII-local@example.com>
Envelope-Downgraded: From: <NON-ASCII-FROM> <ASCII-FROM> Downgraded-Mail-From: <NON-ASCII-local@example.com>
Envelope-Downgraded: To: <NON-ASCII-TO> <ASCII-TO> <ASCII-local@example.com>
Downgraded-Rcpt-To: <NON-ASCII-remote1@example.net>
<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_SUBJECT Subject: NON-ASCII-SUBJECT
From: <NON-ASCII-FROM <ASCII-FROM>> From: DISPLAY-local<NON-ASCII-local@example.com
To: <NON-ASCII-TO <ASCII-TO>> <ASCII-local@example.com>>
CC: <NON-ASCII-CC <ASCII-CC>> To: DISPLAY-remote1<NON-ASCII-remote1@example.net
<ASCII-remote1@example.net>>
CC: DISPLAY-remote2<NON-ASCII-remote2@example.org>
Date: DATE Date: DATE
MAIL_BODY MAIL_BODY
Figure 13: Display technique 2: decoded message
Figure 10: Display technique 2: decoded message
As a result, in this simple example, all original header fields are As a result, in this simple example, all original header fields are
displayed in the original form. displayed in the original form.
B.4. Downgrading example 2 B.3. Downgrading example 2
In many cases, the sender wants to use non-ASCII address and the In many cases, the sender wants to use non-ASCII address, the
recipient does not support UTF8SMTP and does not have non-ASCII recipient does not support UTF8SMTP and does not have non-ASCII
address. address.
o The sender address is "NON-ASCII-FROM" which is non-ASCII address. o The sender address is "NON-ASCII-local@example.com" which is non-
Its ASCII alternative is "ASCII-FROM". ASCII address. Its ASCII alternative is
o The "To" address is "ASCII-TO" which is ASCII only. "ASCII-local@example.com". It has a display-name "DISPLAY-local"
which contains non-ASCII characters.
o The "To" address is "ASCII-remote1@example.net" which is ASCII
only. It has a display-name "DISPLAY-remote1" which contains non-
ASCII characters.
o The Subject header is "NON-ASCII-SUBJECT" which contains non-ASCII o The Subject header is "NON-ASCII-SUBJECT" which contains non-ASCII
characters. characters.
The second example envelope/message is shown in Figure 14.
Original UTF8SMTP message SMTP session MAIL From: <NON-ASCII-local@example.com>
ALT-ADDRESS=ASCII-local@example.com
MAIL From: <NON-ASCII-FROM> ALT-ADDRESS <ASCII-FROM> RCPT TO: <ASCII-remote1@example.net>
RCPT TO: <ASCII-TO>
------------------------------------------------------------- -------------------------------------------------------------
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: <NON-ASCII-FROM <ASCII-FROM>> From: DISPLAY-local <NON-ASCII-local@example.com
To: <ASCII-TO> <ASCII-local@example.com>>
To: DISPLAY-remote1 <ASCII-remote1@example.net>
Date: DATE Date: DATE
MAIL_BODY MAIL_BODY
Figure 11: Original UTF8SMTP message 2 Figure 14: Original message (example 2)
In this example, SMTP session is downgradable. Figure 12 shows SMTP In this example, SMTP session is downgradable. Figure 15 shows SMTP
downgraded example. downgraded envelope/message.
MAIL From: <ASCII-FROM> MAIL From: <ASCII-local@example.com>
RCPT TO: <ASCII-TO> RCPT TO: <ASCII-remote1@example.net>
------------------------------------------------------------- -------------------------------------------------------------
Envelope-Downgraded: From: <RFC2047(NON-ASCII-FROM)> <ASCII-FROM> Downgraded-Mail-From: =?UTF-8?Q?<NON-ASCII-local@example.com>?=
<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: <NON-ASCII-FROM <ASCII-FROM>> From: DISPLAY-local <NON-ASCII-local@example.com
To: <ASCII-TO> <ASCII-local@example.com>>
To: DISPLAY-remote1 <ASCII-remote1@example.net>
Date: DATE Date: DATE
MAIL_BODY MAIL_BODY
Figure 12: SMTP Downgraded UTF8SMTP message 2 Figure 15: SMTP Downgraded envelope/message (example 2)
After SMTP downgrading, header downgrading is performed. The After SMTP downgrading, header fields downgrading is performed. The
downgraded example is shown in Figure 13. downgraded example is shown in Figure 16.
Envelope-Downgraded: From: <RFC2047(NON-ASCII-FROM)> <ASCII-FROM> Return-Path: <ASCII-local@example.com>
Downgraded-Mail-From: =?UTF-8?Q?<NON-ASCII-local@example.com>?=
<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: RFC2047(UTF-8_SUBJECT) Subject: =?UTF-8?Q?NON-ASCII-SUBJECT?=
Downgraded: From: RFC2047(<NON-ASCII-FROM <ASCII-FROM>>) Downgraded-From: =?UTF-8?Q?DISPLAY-local?=
From: <ASCII-FROM> =?UTF-8?Q?<NON-ASCII-local@example.com?= <ASCII-local@example.com>>
To: <ASCII-TO> From: =?UTF-8?Q?DISPLAY-local?= <ASCII-local@example.com>
To: =?UTF-8?Q?DISPLAY-remote1?= <ASCII-remote1@example.net>
Date: DATE Date: DATE
MAIL_BODY MAIL_BODY
Figure 13: Header downgraded message 2 Figure 16: Downgraded message (example 2)
Authors' Addresses Authors' Addresses
Yoshiro YONEYA (editor) Yoshiro YONEYA (editor)
JPRS JPRS
Chiyoda First Bldg. East 13F, 3-8-1 Nishi-Kanda Chiyoda First Bldg. East 13F, 3-8-1 Nishi-Kanda
Chiyoda-ku, Tokyo 101-0065 Chiyoda-ku, Tokyo 101-0065
Japan Japan
Phone: +81 3 5215 8451 Phone: +81 3 5215 8451
 End of changes. 134 change blocks. 
415 lines changed or deleted 714 lines changed or added

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