One document matched: draft-ietf-eai-downgraded-display-00.xml
<?xml version="1.0"?>
<!-- $Id: draft-ietf-eai-downgraded-display-00.xml,v 1.14 2008/10/17 05:20:55 fujiwara Exp $ -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY % rfc2119 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
<!ENTITY % rfc2045 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2045.xml'>
<!ENTITY % rfc2047 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2047.xml'>
<!ENTITY % rfc2183 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2183.xml'>
<!ENTITY % rfc2231 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2231.xml'>
<!ENTITY % rfc5321 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5321.xml'>
<!ENTITY % rfc5322 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5322.xml'>
<!ENTITY % rfc3461 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3461.xml'>
<!ENTITY % rfc3864 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3864.xml'>
<!-- <!ENTITY % rfc3987 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3987.xml'> -->
<!ENTITY % rfc4021 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4021.xml'>
<!ENTITY % rfc4952 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4952.xml'>
<!ENTITY % rfc5335 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5335.xml'>
<!ENTITY % rfc5336 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5336.xml'>
<!ENTITY % rfc5337 PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5337.xml'>
<!ENTITY % I-D.ietf-eai-downgrade PUBLIC ''
'http://xml.resource.org/public/rfc/bibxml3/reference.I-D.draft-ietf-eai-downgrade-09.xml'>
]>
<?rfc compact='yes'?>
<?rfc toc='yes'?>
<!-- Validator on -->
<?rfc strict="yes" ?>
<!-- Expand crefs and put them inline -->
<?rfc comments='yes' ?>
<?rfc inline='yes' ?>
<!-- RFC references as names, not numbers -->
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes" ?>
<rfc category="exp" ipr="full3978" docName="draft-ietf-eai-downgraded-display-00.txt">
<!-- ipr: full2026 / noDerivativeWorks2026 / none -->
<front>
<title abbrev="Displaying Downgraded Messages">
Displaying Downgraded Messages for Email Address Internationalization
</title>
<author initials="K.F." surname="Fujiwara" fullname="Kazunori Fujiwara">
<organization>JPRS</organization>
<address>
<postal>
<street>Chiyoda First Bldg. East 13F, 3-8-1 Nishi-Kanda</street>
<city>Chiyoda-ku</city>
<region>Tokyo</region>
<code>101-0065</code>
<country>Japan</country>
</postal>
<phone>+81 3 5215 8451</phone>
<email>fujiwara@jprs.co.jp</email>
</address>
</author>
<date month="Oct" day="17" year="2008" />
<area>Applications</area>
<workgroup>Email Address Internationalization (EAI)</workgroup>
<!-- <area ...>, <workgroup ...>, <keyword ...>, <keyword ...> <note..> -->
<abstract>
<t>
This document describes how to display downgraded messages
which originally contain internationalized E-mail addresses
or internationalized header fields.
</t>
</abstract>
</front>
<middle>
<section title="Introduction" anchor="intro">
<t>
The Email Address Internationalization (UTF8SMTP) extension document set
<xref target="RFC4952" />
<xref target="RFC5336" />
<xref target="RFC5335" />
<xref target="RFC5337" />
expands Email address structure, syntax and Email header format.
To avoid bouncing internationalized Email messages,
the downgrading mechanism <xref target="I-D.ietf-eai-downgrade" />
converts an internationalized message to a traditional Email message
when a server in the delivery path does not support the UTF8SMTP extension.
The downgraded message is a traditional Email message,
except the message has "Downgraded-" header fields.
</t>
<t>
A perfect reverse-function of the downgrading does not exist
because the encoding defined in <xref target="RFC2047" /> is not exactly reversible
and Received header field downgrading may remove FOR clause information.
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 techniques
in MUAs.
</t>
<t>
This is an informational document and it does not supersede the
referenced documents.
</t>
</section>
<section title="Terminology">
<t>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"
in this document are to be interpreted as described in RFC
2119 <xref target="RFC2119" />.
</t>
<t>
Specialized terms used in this specification are defined in the
EAI overview <xref target="RFC4952" /> or in
<xref target="RFC5321" /><xref target="RFC5322" />,
MIME documents
<xref target="RFC2045" />
<xref target="RFC2047" />
<xref target="RFC2183" />
<xref target="RFC2231" />.
</t>
<t>
This document depends on
<xref target="RFC5335" /> and
<xref target="I-D.ietf-eai-downgrade" />.
Key words used in these document are used in this document, too.
</t>
<t>
The term "non-ASCII" is an UTF-8 string which contains at least
one non-ASCII character.
</t>
<t>
The term "address header field" is used for a header field which
contains <mailbox> elements which is defined in <xref target="RFC5322" />.
"Address header fields" contain
"From", "Sender", "Reply-To", "To", "Cc", "Bcc", "Resent-From",
"Resent-Sender", "Resent-To", "Resent-Cc", "Return-Path" header fields.
</t>
<t>
An "UTF8SMTP message" is an Email messages expanded by
<xref target="RFC5335" />.
</t>
</section>
<section title="Displaying downgraded message" anchor="displaying">
<t>
Displaying downgraded message is mostly performed by MIME decoding
according to <xref target="RFC2047" /> and <xref target="RFC2231" />.
Result of MIME decoding,
the header of the message still contains Downgraded-*: header fields,
but the header field bodies are MIME decoded.
These decoded "Downgraded-" header fields contain
the original header field name and the original header field values.
The recipient can read them.
But the recipient's MUA cannot use the original header fields automatically.
</t>
<t>
Additionally, MUAs can process "Downgraded-" header fields.
It is described in
<xref target="DecodingTechnique" /> and
<xref target="DecodingTechnique2" />.
</t>
<section title="Displaying technique 1" anchor="DecodingTechnique">
<t>
MUAs may remove "Downgraded-" from decoded "Downgraded-" header fields' name.
</t>
<t>
First, decode MIME encoded header fields and MIME body part header fields
according to <xref target="RFC2047" /> and <xref target="RFC2231" />.
</t>
<t>
Then, for each "Downgraded-" header field,
generate new header field which field name is the original header field name
and the field value is the decoded header field value,
and replace the "Downgraded-" header field by the generated header field.
</t>
<t>
Don't change "Downgraded-Mail-From" and "Downgraded-Rcpt-To" header fields
because they do not have their original header fields.
</t>
<t>
With this technique, the "address header fields" may be displayed twice,
one is from downgraded header field
and the other is from decoded "Downgraded-" header.
</t>
</section>
<section title="Displaying technique 2" anchor="DecodingTechnique2">
<t>
MUAs may decode and re-generate the original header of the message.
This technique may reconstruct the original message from the downgraded message.
But it is not guaranteed.
</t>
<t>
This technique is implemented by the following steps.
<vspace blankLines="1"/>
<list style="hanging">
<t hangText="Step 1: ">
Select "Downgraded-" header fields
whose original header field is an "address header field".
Target header fields are "Downgraded-From",
"Downgraded-Sender", "Downgraded-Reply-To",
"Downgraded-To", "Downgraded-Cc", "Downgraded-Bcc",
"Downgraded-Resent-From", "Downgraded-Resent-Sender",
"Downgraded-Resent-To", "Downgraded-Resent-Cc", and
"Downgraded-Return-Path" header fields.
<vspace blankLines="1"/>
</t>
<t hangText="Step 2: ">Generate new header field which field name is the original header field name
and the field value is the decoded header field value from the output of Step 1.
<vspace blankLines="1"/>
</t>
<t hangText="Step 3: ">
Apply Email header fields downgrading defined in
section 5 of <xref target="I-D.ietf-eai-downgrade" />
to the output of Step 2
without re-generating "Downgraded-" header fields.
<vspace blankLines="1"/>
</t>
<t hangText="Step 4: ">
Compare the output of Step 3 and the original header fields.
If the same header fields exist for both the output and the original header fields,
remove the same header fields from the original header fields.
This step outputs the original header fields which is modified by this step.
Before this comparison, a canonicalization described below is useful.
<vspace blankLines="1"/>
<list style="numbers">
<t>Unfold all header field continuation lines as described in <xref target="RFC5322" />.</t>
<t>Insert a space character before and after <mailbox-list> separator ","
if there is no space character.</t>
<t>Insert a space character before and after <comment>
if there is no space character.</t>
<t>Decode <encoded-word> whose charset is 'UTF-8'.</t>
<t>Convert all sequences of one or more WSP characters to a single space
character. WSP characters here include those before and after a
line folding boundary.</t>
<t>Delete all WSP characters at the end of each unfolded header field value.</t>
<t>Delete any WSP characters remaining before and after the colon
separating the header field name from the header field value. The
colon separator MUST be retained.</t>
</list>
<vspace blankLines="1"/>
</t>
<t hangText="Step 5: ">
Finally, do 'Displaying technique 1' described in <xref target="DecodingTechnique" /> to the output of Step 4.
</t>
</list>
</t>
</section>
</section>
<section title="Security considerations" anchor="security">
<t>
Displaying downgraded message may break the header of the message.
MUAs should have a function to read the original received message.
</t>
<t>
See "Security considerations" section in <xref target="RFC4952"/> for more discussion.
</t>
</section>
<section title="IANA Considerations">
<t>
</t>
</section>
<section title="Acknowledgements">
<t>
</t>
</section>
<section title="Change History">
<t>
This section is used for tracking the update of this document. Will be
removed after finalize.
</t>
<section title="draft-fujiwara-eai-downgraded-display: Version 00">
<t>
<list style="symbols">
<t>Initial version</t>
<t>It is separated from Appendix A of draft-ietf-eai-downgrade-05.txt</t>
</list>
</t>
</section>
<section title="draft-ietf-eai-downgraded-display: Version 00">
<t>
<list style="symbols">
<t>Submitted as a working group draft</t>
</list>
</t>
</section>
</section>
</middle>
<back>
<references title="Normative References">
&rfc4952;
&rfc5335;
&rfc5336;
&rfc5337;
&I-D.ietf-eai-downgrade;
&rfc2045;
&rfc2047;
&rfc2183;
&rfc2231;
&rfc5321;
&rfc5322;
<!-- &rfc3987; -->
&rfc2119;
</references>
<section title="Examples">
<t>
This section shows a example of displaying downgraded message.
First, an example of the original UTF8SMTP message and its downgraded message are
shown. They are the same as
"Example 1" of <xref target="I-D.ietf-eai-downgrade" />.
The example UTF8SMTP message is shown in <xref target="example-originaleaismtpsession" />.
</t>
<t>
<figure title="Original message" anchor="example-originaleaismtpsession">
<artwork>
<![CDATA[
Message-Id: MESSAGE_ID
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Subject: NON-ASCII-SUBJECT
From: DISPLAY-local <NON-ASCII-local@example.com
<ASCII-local@example.com>>
To: DISPLAY-remote1 <NON-ASCII-remote1@example.net
<ASCII-remote1@example.net>>
Cc: DISPLAY-remote2 <NON-ASCII-remote2@example.org>
Date: DATE
MAIL_BODY
]]>
</artwork>
</figure>
</t>
<t>
Delivered downgraded message is shown in <xref target="example-headerconversiondowngrading" />.
Return-Path header will be added by the final destination MTA.
<figure title="Downgraded message" anchor="example-headerconversiondowngrading">
<artwork>
<![CDATA[
Return-Path: <ASCII-local@example.com>
Downgraded-Mail-From: =?UTF-8?Q?<NON-ASCII-local@example.com>_?=
=?UTF-8?Q?<ASCII-local@example.com>?=
Downgraded-Rcpt-To: =?UTF-8?Q?<NON-ASCII-remote1@example.net>_?=
=?UTF-8?Q?<ASCII-remote1@example.net>?=
Message-Id: MESSAGE_ID
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Subject: =?UTF-8?Q?NON-ASCII-SUBJECT?=
From: =?UTF-8?Q?DISPLAY-local?= <ASCII-local@example.com>
Downgraded-From: =?UTF-8?Q?DISPLAY-local_<NON-ASCII-local@example.com_?=
=?UTF-8?Q?<ASCII-local@example.com>>?=
To: =?UTF-8?Q?DISPLAY-remote1?= <ASCII-remote1@example.net>
Downgraded-To: =?UTF-8?Q?DISPLAY-remote1_?=
=?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
MAIL_BODY
]]>
</artwork>
</figure>
</t>
<t>
<xref target="example-mimedecoded" /> shows MIME decoded message of
<xref target="example-headerconversiondowngrading" />.
The recipient can read the original From, To, Cc header fields as
Downgraded-From, Downgraded-To, Downgraded-Cc header fields.
<figure title="MIME decoded message" anchor="example-mimedecoded">
<artwork>
<![CDATA[
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
From: DISPLAY-local <ASCII-local@example.com>
Downgraded-From: DISPLAY-local <NON-ASCII-local@example.com
<ASCII-local@example.com>>
To: DISPLAY-remote1 <ASCII-remote1@example.net>
Downgraded-To: DISPLAY-remote1 <NON-ASCII-remote1@example.net
<ASCII-remote1@example.net>>
Cc: DISPLAY-remote2 Internationalized address
NON-ASCII-remote2@example.org removed:;
Downgraded-Cc: DISPLAY-remote2 <NON-ASCII-remote2@example.org>
Date: DATE
MAIL_BODY
]]>
</artwork>
</figure>
<vspace blankLines="100"/>
</t>
<section title="Displaying technique 1 example">
<t>
After removing "Downgraded-" from decoded "Downgraded-" header fields from
<xref target="example-mimedecoded" />,
'Displaying technique 1'
example is shown in <xref target="displayingtechnique1example" />.
</t>
<t>
<figure title="Displaying technique 1" anchor="displayingtechnique1example">
<artwork>
<![CDATA[
Return-Path: <ASCII-local@example.com>
Mail-From: <NON-ASCII-local@example.com>
<ASCII-local@example.com>
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
From: DISPLAY-local <ASCII-local@example.com>
From: DISPLAY-local <NON-ASCII-local@example.com
<ASCII-local@example.com>>
To: DISPLAY-remote1 <ASCII-remote1@example.net>
To: DISPLAY-remote1 <NON-ASCII-remote1@example.net
<ASCII-remote1@example.net>>
Cc: DISPLAY-remote2 Internationalized address
NON-ASCII-remote2@example.org removed:;
Cc: DISPLAY-remote2 <NON-ASCII-remote2@example.org>
Date: DATE
MAIL_BODY
]]>
</artwork>
</figure>
</t>
</section>
<section title="Displaying technique 2 example">
<t>
This example shows displaying process of
'Displaying technique 2' for
<xref target="example-headerconversiondowngrading" />.
</t>
<t>
First, perform Step 1.
</t>
<t>
<figure title="Displaying technique 2: Output of Step 1" anchor="example-step1">
<artwork>
<![CDATA[
Downgraded-From: =?UTF-8?Q?DISPLAY-local_<NON-ASCII-local@example.com_?=
=?UTF-8?Q?<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>?=
]]>
</artwork>
</figure>
</t>
<t>
Then, perform Step 2.
</t>
<t>
<figure title="Displaying technique 2: Output of Step 2" anchor="example-step2">
<artwork>
<![CDATA[
From: DISPLAY-local <NON-ASCII-local@example.com
<ASCII-local@example.com>>
To: DISPLAY-remote1 <NON-ASCII-remote1@example.net
<ASCII-remote1@example.net>>
Cc: DISPLAY-remote2 <NON-ASCII-remote2@example.org>
]]>
</artwork>
</figure>
</t>
<t>
Perform Step 3.
</t>
<t>
<figure title="Displaying technique 2: Output of Step 3" anchor="example-step3">
<artwork>
<![CDATA[
From: =?UTF-8?Q?DISPLAY-local?= <ASCII-local@example.com>
To: =?UTF-8?Q?DISPLAY-remote1?= <ASCII-remote1@example.net>
Cc: =?UTF-8?Q?DISPLAY-remote2?= Internationalized address
=?UTF-8?Q?NON-ASCII-remote2@example.org?= removed:;
]]>
</artwork>
</figure>
</t>
<t>
Perform Step 4. "From", "To", "Cc" header fields are removed in <xref target="example-step4" />.
</t>
<t>
<figure title="Displaying technique 2: Output of Step 4" anchor="example-step4">
<artwork>
<![CDATA[
Return-Path: <ASCII-local@example.com>
Downgraded-Mail-From: =?UTF-8?Q?<NON-ASCII-local@example.com>?=
=?UTF-8?Q?<ASCII-local@example.com>?=
Downgraded-Rcpt-To: =?UTF-8?Q?<NON-ASCII-remote1@example.net>_?=
=?UTF-8?Q?<ASCII-remote1@example.net>?=
Message-Id: MESSAGE_ID
Mime-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Subject: =?UTF-8?Q?NON-ASCII-SUBJECT?=
Downgraded-From: =?UTF-8?Q?DISPLAY-local_<NON-ASCII-local@example.com_?=
=?UTF-8?Q?<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>?=
Date: DATE
MAIL_BODY
]]>
</artwork>
</figure>
</t>
<t>
Perform Step 5. (Apply 'Displaying technique 1'.)
</t>
<t>
<figure title="Display technique 2: Decoded message" anchor="displaytechnique2">
<artwork>
<![CDATA[
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
From: DISPLAY-local <NON-ASCII-local@example.com
<ASCII-local@example.com>>
To: DISPLAY-remote1 <NON-ASCII-remote1@example.net
<ASCII-remote1@example.net>>
Cc: DISPLAY-remote2 <NON-ASCII-remote2@example.org>
Date: DATE
MAIL_BODY
]]>
</artwork>
</figure>
</t>
<t>
As a result, in this simple example, all original header fields are displayed in the original form.
Differences between <xref target="example-originaleaismtpsession" /> and <xref target="displaytechnique2" /> are Return-Path, Downgraded-Mail-From, Downgraded-Rcpt-To header fields only.
</t>
</section>
</section>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-24 04:08:57 |