draft-ietf-slim-multilangcontent-01.txt   draft-ietf-slim-multilangcontent-02.txt 
IETF N. Tomkinson IETF N. Tomkinson
Internet-Draft N. Borenstein Internet-Draft N. Borenstein
Intended status: Standards Track Mimecast Ltd Intended status: Standards Track Mimecast Ltd
Expires: January 9, 2017 July 8, 2016 Expires: January 21, 2017 July 20, 2016
Multiple Language Content Type Multiple Language Content Type
draft-ietf-slim-multilangcontent-01 draft-ietf-slim-multilangcontent-02
Abstract Abstract
This document defines an addition to the Multipurpose Internet Mail This document defines an addition to the Multipurpose Internet Mail
Extensions (MIME) standard to make it possible to send one message Extensions (MIME) standard to make it possible to send one message
that contains multiple language versions of the same information. that contains multiple language versions of the same information.
The translations would be identified by a language tag and selected The translations would be identified by a language tag and selected
by the email client based on a user's language settings. by the email client based on a user's language settings.
Status of This Memo Status of This Memo
skipping to change at page 1, line 34 skipping to change at page 1, line 34
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 9, 2017. This Internet-Draft will expire on January 21, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 4, line 32 skipping to change at page 4, line 32
first part after the multilingual preface is in the language believed first part after the multilingual preface is in the language believed
to be the most likely to be recognised by the recipient as this will to be the most likely to be recognised by the recipient as this will
constitute the default part when language negotiation fails and there constitute the default part when language negotiation fails and there
is no Language Independent part. All of the language message parts is no Language Independent part. All of the language message parts
MUST have a Content-Language field and a Content-Type field and MAY MUST have a Content-Language field and a Content-Type field and MAY
have a Translation-Type parameter applied to the Content-Language have a Translation-Type parameter applied to the Content-Language
field. field.
The Content-Type for each individual language message part SHOULD be The Content-Type for each individual language message part SHOULD be
message/rfc822 to provide good support with non-conforming email message/rfc822 to provide good support with non-conforming email
clients. However, an implementation MAY use message/global when clients. However, an implementation MAY use message/global as
support for message/global becomes more commonplace. Each language support for message/global becomes more commonplace. Each language
message part SHOULD have a Subject field in the appropriate language message part SHOULD have a Subject field in the appropriate language
for that language part. for that language part and SHOULD NOT have a From field.
3.3. The Language Independent Message Part 3.3. The Language Independent Message Part
If there is language independent content intended for the recipient If there is language independent content intended for the recipient
to see if they have a preferred language other than one of those to see if they have a preferred language other than one of those
specified in the language message parts and the default language specified in the language message parts and the default language
message part is unlikely to be understood, another part MAY be message part is unlikely to be understood, another part MAY be
provided. This could typically be a language independent graphic. provided. This could typically be a language independent graphic.
When this part is present, it MUST be the last part, MUST have a When this part is present, it MUST be the last part, MUST have a
Content-Language field with a value of "zxx" (as described in BCP 47/ Content-Language field with a value of "zxx" (as described in BCP 47/
RFC 5646 [RFC5646]) and SHOULD NOT have a Subject field. The part RFC 5646 [RFC5646]) and SHOULD NOT have a Subject field and SHOULD
SHOULD have a Content-Type of message/rfc822 or message/global (to NOT have a From field. The part SHOULD have a Content-Type of
match the language message parts). message/rfc822 or message/global (to match the language message
parts).
4. Message Part Selection 4. Message Part Selection
The logic for selecting the message part to render and present to the The logic for selecting the message part to render and present to the
recipient is summarised in the next few paragraphs. recipient is summarised in the next few paragraphs.
Firstly, if the email client does not understand multipart/ Firstly, if the email client does not understand multipart/
multilingual then it SHOULD treat the message as if it was multipart/ multilingual then it SHOULD treat the message as if it was multipart/
mixed and render message parts accordingly. mixed and render message parts accordingly.
skipping to change at page 7, line 27 skipping to change at page 7, line 27
8.1. An Example of a Simple Multiple language email message 8.1. An Example of a Simple Multiple language email message
Below is a minimal example of a multiple language email message. It Below is a minimal example of a multiple language email message. It
has the multilingual preface and two language message parts. has the multilingual preface and two language message parts.
From: Nik From: Nik
To: Nathaniel To: Nathaniel
Subject: Example of a message in Spanish and English Subject: Example of a message in Spanish and English
Date: Thu, 7 Jul 2016 21:28:00 +0100 Date: Thu, 7 Jul 2016 21:28:00 +0100
MIME-Version: 1.0 MIME-Version: 1.0
Content-type: multipart/multilingual; Content-Type: multipart/multilingual;
boundary="01189998819991197253" boundary="01189998819991197253"
--01189998819991197253 --01189998819991197253
Content-type: text/plain; charset="UTF-8" Content-Type: text/plain; charset="UTF-8"
Content-Disposition: inline Content-Disposition: inline
Content-transfer-encoding: quoted-printable Content-Transfer-Encoding: quoted-printable
This is a message in multiple languages. It says the This is a message in multiple languages. It says the
same thing in each language. If you can read it in one language, same thing in each language. If you can read it in one language,
you can ignore the other translations. The other translations may be you can ignore the other translations. The other translations may be
presented as attachments or grouped together. presented as attachments or grouped together.
Este es un mensaje en varios idiomas. Dice lo mismo en Este es un mensaje en varios idiomas. Dice lo mismo en
cada idioma. Si puede leerlo en un idioma, puede ignorar las otras cada idioma. Si puede leerlo en un idioma, puede ignorar las otras
traducciones. Las otras traducciones pueden presentarse como archivos traducciones. Las otras traducciones pueden presentarse como archivos
adjuntos o agrupados. adjuntos o agrupados.
--01189998819991197253 --01189998819991197253
Content-type: message/rfc822 Content-Type: message/rfc822
Content-Language: en; translation-type=original Content-Language: en; translation-type=original
Content-disposition: inline Content-Disposition: inline
Subject: Example of a message in Spanish and English Subject: Example of a message in Spanish and English
Content-Type: text/plain; charset="US-ASCII" Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 MIME-Version: 1.0
Hello, this message content is provided in your language. Hello, this message content is provided in your language.
--01189998819991197253 --01189998819991197253
Content-type: message/rfc822 Content-Type: message/rfc822
Content-Language: es; translation-type=human Content-Language: es; translation-type=human
Content-disposition: inline Content-Disposition: inline
Subject: =?UTF-8?Q?Ejemplo_pr=C3=A1ctico_de_mensaje_?= Subject: =?UTF-8?Q?Ejemplo_pr=C3=A1ctico_de_mensaje_?=
=?UTF-8?Q?en_espa=C3=B1ol_e_ingl=C3=A9s?= =?UTF-8?Q?en_espa=C3=B1ol_e_ingl=C3=A9s?=
Content-Type: text/plain; charset="US-ASCII" Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 MIME-Version: 1.0
Hola, el contenido de este mensaje esta disponible en su idioma. Hola, el contenido de este mensaje esta disponible en su idioma.
--01189998819991197253-- --01189998819991197253--
skipping to change at page 8, line 36 skipping to change at page 8, line 36
Below is an example of a multiple language email message that has the Below is an example of a multiple language email message that has the
multilingual preface followed by two language message parts and then multilingual preface followed by two language message parts and then
a language independent png image. a language independent png image.
From: Nik From: Nik
To: Nathaniel To: Nathaniel
Subject: Example of a message in Spanish and English Subject: Example of a message in Spanish and English
Date: Thu, 7 Jul 2016 21:08:00 +0100 Date: Thu, 7 Jul 2016 21:08:00 +0100
MIME-Version: 1.0 MIME-Version: 1.0
Content-type: multipart/multilingual; Content-Type: multipart/multilingual;
boundary="01189998819991197253" boundary="01189998819991197253"
--01189998819991197253 --01189998819991197253
Content-type: text/plain; charset="UTF-8" Content-Type: text/plain; charset="UTF-8"
Content-Disposition: inline Content-Disposition: inline
Content-transfer-encoding: quoted-printable Content-Transfer-Encoding: quoted-printable
This is a message in multiple languages. It says the This is a message in multiple languages. It says the
same thing in each language. If you can read it in one language, same thing in each language. If you can read it in one language,
you can ignore the other translations. The other translations may be you can ignore the other translations. The other translations may be
presented as attachments or grouped together. presented as attachments or grouped together.
Este es un mensaje en varios idiomas. Dice lo mismo en Este es un mensaje en varios idiomas. Dice lo mismo en
cada idioma. Si puede leerlo en un idioma, puede ignorar las otras cada idioma. Si puede leerlo en un idioma, puede ignorar las otras
traducciones. Las otras traducciones pueden presentarse como archivos traducciones. Las otras traducciones pueden presentarse como archivos
adjuntos o agrupados. adjuntos o agrupados.
--01189998819991197253 --01189998819991197253
Content-type: message/rfc822 Content-Type: message/rfc822
Content-Language: en; translation-type=original Content-Language: en; translation-type=original
Content-disposition: inline Content-Disposition: inline
Subject: Example of a message in Spanish and English Subject: Example of a message in Spanish and English
Content-Type: text/plain; charset="US-ASCII" Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 MIME-Version: 1.0
Hello, this message content is provided in your language. Hello, this message content is provided in your language.
--01189998819991197253 --01189998819991197253
Content-type: message/rfc822 Content-Type: message/rfc822
Content-Language: es; translation-type=human Content-Language: es; translation-type=human
Content-disposition: inline Content-Disposition: inline
Subject: =?UTF-8?Q?Ejemplo_pr=C3=A1ctico_de_mensaje_?= Subject: =?UTF-8?Q?Ejemplo_pr=C3=A1ctico_de_mensaje_?=
=?UTF-8?Q?en_espa=C3=B1ol_e_ingl=C3=A9s?= =?UTF-8?Q?en_espa=C3=B1ol_e_ingl=C3=A9s?=
Content-Type: text/plain; charset="US-ASCII" Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 MIME-Version: 1.0
Hola, el contenido de este mensaje esta disponible en su idioma. Hola, el contenido de este mensaje esta disponible en su idioma.
--01189998819991197253 --01189998819991197253
Content-type: message/rfc822; name="Icon" Content-Type: message/rfc822; name="Icon"
Content-Language: zxx Content-Language: zxx
Content-disposition: inline Content-Disposition: inline
Content-Type: multipart/mixed; Content-Type: multipart/mixed;
boundary="99911972530118999881"; charset="US-ASCII" boundary="99911972530118999881"; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 MIME-Version: 1.0
--99911972530118999881 --99911972530118999881
Content-Type: image/png; name="icon.png" Content-Type: image/png; name="icon.png"
Content-Disposition: inline Content-Disposition: inline
Content-transfer-encoding: base64 Content-Transfer-Encoding: base64
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAKQ2lDQ1BJQ0MgUHJvZmlsZQAA iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAKQ2lDQ1BJQ0MgUHJvZmlsZQAA
SA2dlndUU1... shortened for brevity ...7yxfd1SNsEy+OXr76qr SA2dlndUU1... shortened for brevity ...7yxfd1SNsEy+OXr76qr
997zF2hvZYeDEP5ftGV6Xzx2o9MAAAAASUVORK5CYII= 997zF2hvZYeDEP5ftGV6Xzx2o9MAAAAASUVORK5CYII=
--99911972530118999881-- --99911972530118999881--
--01189998819991197253-- --01189998819991197253--
8.3. An Example of a complex Multiple language email message with 8.3. An Example of a complex Multiple language email message with
language independent part language independent part
skipping to change at page 10, line 18 skipping to change at page 10, line 18
message. It has the multilingual preface and two language message message. It has the multilingual preface and two language message
parts and then a language independent png image. The language parts and then a language independent png image. The language
message parts have multipart/alternative contents and would therefore message parts have multipart/alternative contents and would therefore
require further processing to determine the content to display. require further processing to determine the content to display.
From: Nik From: Nik
To: Nathaniel To: Nathaniel
Subject: Example of a message in Spanish and English Subject: Example of a message in Spanish and English
Date: Thu, 7 Jul 2016 20:55:00 +0100 Date: Thu, 7 Jul 2016 20:55:00 +0100
MIME-Version: 1.0 MIME-Version: 1.0
Content-type: multipart/multilingual; Content-Type: multipart/multilingual;
boundary="01189998819991197253" boundary="01189998819991197253"
--01189998819991197253 --01189998819991197253
Content-type: text/plain; charset="UTF-8" Content-Type: text/plain; charset="UTF-8"
Content-Disposition: inline Content-Disposition: inline
Content-transfer-encoding: quoted-printable Content-Transfer-Encoding: quoted-printable
This is a message in multiple languages. It says the This is a message in multiple languages. It says the
same thing in each language. If you can read it in one language, same thing in each language. If you can read it in one language,
you can ignore the other translations. The other translations may be you can ignore the other translations. The other translations may be
presented as attachments or grouped together. presented as attachments or grouped together.
Este es un mensaje en varios idiomas. Dice lo mismo en Este es un mensaje en varios idiomas. Dice lo mismo en
cada idioma. Si puede leerlo en un idioma, puede ignorar las otras cada idioma. Si puede leerlo en un idioma, puede ignorar las otras
traducciones. Las otras traducciones pueden presentarse como archivos traducciones. Las otras traducciones pueden presentarse como archivos
adjuntos o agrupados. adjuntos o agrupados.
--01189998819991197253 --01189998819991197253
Content-type: message/rfc822 Content-Type: message/rfc822
Content-Language: en; translation-type=original Content-Language: en; translation-type=original
Content-disposition: inline Content-Disposition: inline
Subject: Example of a message in Spanish and English Subject: Example of a message in Spanish and English
Content-Type: multipart/alternative; Content-Type: multipart/alternative;
boundary="72530118999911999881"; charset="US-ASCII" boundary="72530118999911999881"; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 MIME-Version: 1.0
--72530118999911999881 --72530118999911999881
Content-Type: text/plain; charset="US-ASCII" Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
skipping to change at page 11, line 13 skipping to change at page 11, line 13
Hello, this message content is provided in your language. Hello, this message content is provided in your language.
--72530118999911999881 --72530118999911999881
Content-Type: text/html; charset="US-ASCII" Content-Type: text/html; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
<html><body>Hello, this message content is <b>provided</b> in <i>your</i> language.</body></html> <html><body>Hello, this message content is <b>provided</b> in <i>your</i> language.</body></html>
--72530118999911999881-- --72530118999911999881--
--01189998819991197253 --01189998819991197253
Content-type: message/rfc822 Content-Type: message/rfc822
Content-Language: es; translation-type=human Content-Language: es; translation-type=human
Content-disposition: inline Content-Disposition: inline
Subject: =?UTF-8?Q?Ejemplo_pr=C3=A1ctico_de_mensaje_?= Subject: =?UTF-8?Q?Ejemplo_pr=C3=A1ctico_de_mensaje_?=
=?UTF-8?Q?en_espa=C3=B1ol_e_ingl=C3=A9s?= =?UTF-8?Q?en_espa=C3=B1ol_e_ingl=C3=A9s?=
Content-Type: multipart/alternative; Content-Type: multipart/alternative;
boundary="53011899989991197281"; charset="US-ASCII" boundary="53011899989991197281"; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 MIME-Version: 1.0
--53011899989991197281 --53011899989991197281
Content-Type: text/plain; charset="US-ASCII" Content-Type: text/plain; charset="US-ASCII"
skipping to change at page 11, line 39 skipping to change at page 11, line 39
--53011899989991197281 --53011899989991197281
Content-Type: text/html; charset="US-ASCII" Content-Type: text/html; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
<html><body>Hola, el contenido de este <b>mensaje</b> <i>esta</i> <html><body>Hola, el contenido de este <b>mensaje</b> <i>esta</i>
disponible en su idioma.</body></html> disponible en su idioma.</body></html>
--53011899989991197281-- --53011899989991197281--
--01189998819991197253 --01189998819991197253
Content-type: message/rfc822; name="Icon" Content-Type: message/rfc822; name="Icon"
Content-Language: zxx Content-Language: zxx
Content-disposition: inline Content-Disposition: inline
Content-Type: multipart/mixed; Content-Type: multipart/mixed;
boundary="99911972530118999881"; charset="US-ASCII" boundary="99911972530118999881"; charset="US-ASCII"
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 MIME-Version: 1.0
--99911972530118999881 --99911972530118999881
Content-Type: image/png; name="icon.png" Content-Type: image/png; name="icon.png"
Content-Disposition: inline Content-Disposition: inline
Content-transfer-encoding: base64 Content-Transfer-Encoding: base64
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAKQ2lDQ1BJQ0MgUHJvZmlsZQAA iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAKQ2lDQ1BJQ0MgUHJvZmlsZQAA
SA2dlndUU1... shortened for brevity ...7yxfd1SNsEy+OXr76qr SA2dlndUU1... shortened for brevity ...7yxfd1SNsEy+OXr76qr
997zF2hvZYeDEP5ftGV6Xzx2o9MAAAAASUVORK5CYII= 997zF2hvZYeDEP5ftGV6Xzx2o9MAAAAASUVORK5CYII=
--99911972530118999881-- --99911972530118999881--
--01189998819991197253-- --01189998819991197253--
9. Changes from Previous Versions 9. Changes from Previous Versions
9.1. Changes from draft-tomkinson-multilangcontent-01 to draft- 9.1. Changes from draft-tomkinson-multilangcontent-01 to draft-
skipping to change at page 13, line 38 skipping to change at page 13, line 38
slim-multilangcontent-01 slim-multilangcontent-01
o Changed the inner content type to require message/rfc822 or o Changed the inner content type to require message/rfc822 or
message/global. message/global.
o Updated the examples to reflect the new inner content types. o Updated the examples to reflect the new inner content types.
o Added to the security considerations to highlight the risk from o Added to the security considerations to highlight the risk from
insufficient spam filters. insufficient spam filters.
9.6. Changes from draft-ietf-slim-multilangcontent-01 to draft-ietf-
slim-multilangcontent-02
o Restricted the use of a From field in the language message parts
and the language independent part.
o Updated the security considerations to highlight the risk of an
unmatched sender addresses that could be set in the language
message parts.
10. Acknowledgements 10. Acknowledgements
The authors are grateful for the helpful input received from many The authors are grateful for the helpful input received from many
people but would especially like to acknowledge the help of Harald people but would especially like to acknowledge the help of Harald
Alvestrand, Stephane Bortzmeyer, Eric Burger, Mark Davis, Doug Ewell, Alvestrand, Stephane Bortzmeyer, Eric Burger, Mark Davis, Doug Ewell,
Randall Gellens, Gunnar Hellstrom, Sean Leonard, John Levine, Alexey Randall Gellens, Gunnar Hellstrom, Sean Leonard, John Levine, Alexey
Melnikov, Addison Phillips, Pete Resnick, Fiona Tomkinson, Simon Melnikov, Addison Phillips, Pete Resnick, Fiona Tomkinson, Simon
Tyler and Daniel Vargha. Tyler and Daniel Vargha.
The authors would also like to thank Fernando Alvaro and Luis de The authors would also like to thank Fernando Alvaro and Luis de
skipping to change at page 14, line 21 skipping to change at page 14, line 27
Whilst it is intended that each language message part is a direct Whilst it is intended that each language message part is a direct
translation of the original message, this may not always be the case translation of the original message, this may not always be the case
and these parts could contain undesirable content. Therefore there and these parts could contain undesirable content. Therefore there
is a possible risk that undesirable text or images could be shown to is a possible risk that undesirable text or images could be shown to
the recipient if the message is passed through a spam filter that the recipient if the message is passed through a spam filter that
does not check all of the message parts. The risk should be minimal does not check all of the message parts. The risk should be minimal
due to the fact that an unknown multipart subtype should be treated due to the fact that an unknown multipart subtype should be treated
as multipart/mixed and so each message part should be subsequently as multipart/mixed and so each message part should be subsequently
scanned. scanned.
Because the language message parts have a Content-Type of message/
rfc822 or message/global, they might contain From fields which could
have different values to that of the top-level From field and may not
reflect the actual sender. An implementation might choose to include
a From field, even though it is specified in this document that the
language message parts SHOULD NOT have a From field. The incorrect
From field values might get shown to the recipient in a non-
conforming email client and may mislead the recipient into thinking
that the email came from someone other than the real sender.
13. References 13. References
13.1. Normative References 13.1. Normative References
[RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail [RFC2046] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part Two: Media Types", RFC 2046, Extensions (MIME) Part Two: Media Types", RFC 2046,
DOI 10.17487/RFC2046, November 1996, DOI 10.17487/RFC2046, November 1996,
<http://www.rfc-editor.org/info/rfc2046>. <http://www.rfc-editor.org/info/rfc2046>.
[RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions) [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions)
 End of changes. 35 change blocks. 
35 lines changed or deleted 56 lines changed or added

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