2377353cae
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
844 lines
31 KiB
Plaintext
844 lines
31 KiB
Plaintext
|
||
|
||
|
||
|
||
|
||
|
||
Network Working Group P. Resnick
|
||
Request for Comments: 5738 Qualcomm Incorporated
|
||
Updates: 3501 C. Newman
|
||
Category: Experimental Sun Microsystems
|
||
March 2010
|
||
|
||
|
||
IMAP Support for UTF-8
|
||
|
||
Abstract
|
||
|
||
This specification extends the Internet Message Access Protocol
|
||
version 4rev1 (IMAP4rev1) to support UTF-8 encoded international
|
||
characters in user names, mail addresses, and message headers.
|
||
|
||
Status of This Memo
|
||
|
||
This document is not an Internet Standards Track specification; it is
|
||
published for examination, experimental implementation, and
|
||
evaluation.
|
||
|
||
This document defines an Experimental Protocol for the Internet
|
||
community. This document is a product of the Internet Engineering
|
||
Task Force (IETF). It represents the consensus of the IETF
|
||
community. It has received public review and has been approved for
|
||
publication by the Internet Engineering Steering Group (IESG). Not
|
||
all documents approved by the IESG are a candidate for any level of
|
||
Internet Standard; see Section 2 of RFC 5741.
|
||
|
||
Information about the current status of this document, any errata,
|
||
and how to provide feedback on it may be obtained at
|
||
http://www.rfc-editor.org/info/rfc5738.
|
||
|
||
Copyright Notice
|
||
|
||
Copyright (c) 2010 IETF Trust and the persons identified as the
|
||
document authors. All rights reserved.
|
||
|
||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||
Provisions Relating to IETF Documents
|
||
(http://trustee.ietf.org/license-info) in effect on the date of
|
||
publication of this document. Please review these documents
|
||
carefully, as they describe your rights and restrictions with respect
|
||
to this document. Code Components extracted from this document must
|
||
include Simplified BSD License text as described in Section 4.e of
|
||
the Trust Legal Provisions and are provided without warranty as
|
||
described in the Simplified BSD License.
|
||
|
||
|
||
|
||
|
||
Resnick & Newman Experimental [Page 1]
|
||
|
||
RFC 5738 IMAP Support for UTF-8 March 2010
|
||
|
||
|
||
This document may contain material from IETF Documents or IETF
|
||
Contributions published or made publicly available before November
|
||
10, 2008. The person(s) controlling the copyright in some of this
|
||
material may not have granted the IETF Trust the right to allow
|
||
modifications of such material outside the IETF Standards Process.
|
||
Without obtaining an adequate license from the person(s) controlling
|
||
the copyright in such materials, this document may not be modified
|
||
outside the IETF Standards Process, and derivative works of it may
|
||
not be created outside the IETF Standards Process, except to format
|
||
it for publication as an RFC or to translate it into languages other
|
||
than English.
|
||
|
||
Table of Contents
|
||
|
||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||
2. Conventions Used in This Document . . . . . . . . . . . . . . 3
|
||
3. UTF8=ACCEPT IMAP Capability . . . . . . . . . . . . . . . . . 3
|
||
3.1. IMAP UTF-8 Quoted Strings . . . . . . . . . . . . . . . . 3
|
||
3.2. UTF8 Parameter to SELECT and EXAMINE . . . . . . . . . . . 5
|
||
3.3. UTF-8 LIST and LSUB Responses . . . . . . . . . . . . . . 5
|
||
3.4. UTF-8 Interaction with IMAP4 LIST Command Extensions . . . 6
|
||
3.4.1. UTF8 and UTF8ONLY LIST Selection Options . . . . . . . 6
|
||
3.4.2. UTF8 LIST Return Option . . . . . . . . . . . . . . . 6
|
||
4. UTF8=APPEND Capability . . . . . . . . . . . . . . . . . . . . 7
|
||
5. UTF8=USER Capability . . . . . . . . . . . . . . . . . . . . . 7
|
||
6. UTF8=ALL Capability . . . . . . . . . . . . . . . . . . . . . 7
|
||
7. UTF8=ONLY Capability . . . . . . . . . . . . . . . . . . . . . 8
|
||
8. Up-Conversion Server Requirements . . . . . . . . . . . . . . 8
|
||
9. Issues with UTF-8 Header Mailstore . . . . . . . . . . . . . . 9
|
||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
|
||
11. Security Considerations . . . . . . . . . . . . . . . . . . . 11
|
||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
|
||
12.1. Normative References . . . . . . . . . . . . . . . . . . . 11
|
||
12.2. Informative References . . . . . . . . . . . . . . . . . . 13
|
||
Appendix A. Design Rationale . . . . . . . . . . . . . . . . . . 14
|
||
Appendix B. Examples Demonstrating Relationships between
|
||
UTF8= Capabilities . . . . . . . . . . . . . . . . . 15
|
||
Appendix C. Acknowledgments . . . . . . . . . . . . . . . . . . . 15
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Resnick & Newman Experimental [Page 2]
|
||
|
||
RFC 5738 IMAP Support for UTF-8 March 2010
|
||
|
||
|
||
1. Introduction
|
||
|
||
This specification extends IMAP4rev1 [RFC3501] to permit UTF-8
|
||
[RFC3629] in headers as described in "Internationalized Email
|
||
Headers" [RFC5335]. It also adds a mechanism to support mailbox
|
||
names, login names, and passwords using the UTF-8 charset. This
|
||
specification creates five new IMAP capabilities to allow servers to
|
||
advertise these new extensions, along with two new IMAP LIST
|
||
selection options and a new IMAP LIST return option.
|
||
|
||
2. Conventions Used in This Document
|
||
|
||
The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY"
|
||
in this document are to be interpreted as defined in "Key words for
|
||
use in RFCs to Indicate Requirement Levels" [RFC2119].
|
||
|
||
The formal syntax uses the Augmented Backus-Naur Form (ABNF)
|
||
[RFC5234] notation including the core rules defined in Appendix B of
|
||
[RFC5234]. In addition, rules from IMAP4rev1 [RFC3501], UTF-8
|
||
[RFC3629], "Collected Extensions to IMAP4 ABNF" [RFC4466], and IMAP4
|
||
LIST Command Extensions [RFC5258] are also referenced.
|
||
|
||
In examples, "C:" and "S:" indicate lines sent by the client and
|
||
server, respectively. If a single "C:" or "S:" label applies to
|
||
multiple lines, then the line breaks between those lines are for
|
||
editorial clarity only and are not part of the actual protocol
|
||
exchange.
|
||
|
||
3. UTF8=ACCEPT IMAP Capability
|
||
|
||
The "UTF8=ACCEPT" capability indicates that the server supports UTF-8
|
||
quoted strings, the "UTF8" parameter to SELECT and EXAMINE, and UTF-8
|
||
responses from the LIST and LSUB commands.
|
||
|
||
A client MUST use the "ENABLE UTF8=ACCEPT" command (defined in
|
||
[RFC5161]) to indicate to the server that the client accepts UTF-8
|
||
quoted-strings. The "ENABLE UTF8=ACCEPT" command MUST only be used
|
||
in the authenticated state. (Note that the "UTF8=ONLY" capability
|
||
described in Section 7 and the "UTF8=ALL" capability described in
|
||
Section 6 imply the "UTF8=ACCEPT" capability. See additional
|
||
information in these sections.)
|
||
|
||
3.1. IMAP UTF-8 Quoted Strings
|
||
|
||
The IMAP4rev1 [RFC3501] base specification forbids the use of 8-bit
|
||
characters in atoms or quoted strings. Thus, a UTF-8 string can only
|
||
be sent as a literal. This can be inconvenient from a coding
|
||
standpoint, and unless the server offers IMAP4 non-synchronizing
|
||
|
||
|
||
|
||
Resnick & Newman Experimental [Page 3]
|
||
|
||
RFC 5738 IMAP Support for UTF-8 March 2010
|
||
|
||
|
||
literals [RFC2088], this requires an extra round trip for each UTF-8
|
||
string sent by the client. When the IMAP server advertises the
|
||
"UTF8=ACCEPT" capability, it informs the client that it supports
|
||
native UTF-8 quoted-strings with the following syntax:
|
||
|
||
string =/ utf8-quoted
|
||
|
||
utf8-quoted = "*" DQUOTE *UQUOTED-CHAR DQUOTE
|
||
|
||
UQUOTED-CHAR = QUOTED-CHAR / UTF8-2 / UTF8-3 / UTF8-4
|
||
; UTF8-2, UTF8-3, and UTF8-4 are as defined in RFC 3629
|
||
|
||
When this quoting mechanism is used by the client (specifically an
|
||
octet sequence beginning with *" and ending with "), then the server
|
||
MUST reject octet sequences with the high bit set that fail to comply
|
||
with the formal syntax in [RFC3629] with a BAD response.
|
||
|
||
The IMAP server MUST NOT send utf8-quoted syntax to the client unless
|
||
the client has indicated support for that syntax by using the "ENABLE
|
||
UTF8=ACCEPT" command.
|
||
|
||
If the server advertises the "UTF8=ACCEPT" capability, the client MAY
|
||
use utf8-quoted syntax with any IMAP argument that permits a string
|
||
(including astring and nstring). However, if characters outside the
|
||
US-ASCII repertoire are used in an inappropriate place, the results
|
||
would be the same as if other syntactically valid but semantically
|
||
invalid characters were used. For example, if the client includes
|
||
UTF-8 characters in the user or password arguments (and the server
|
||
has not advertised "UTF8=USER"), the LOGIN command will fail as it
|
||
would with any other invalid user name or password. Specific cases
|
||
where UTF-8 characters are permitted or not permitted are described
|
||
in the following paragraphs.
|
||
|
||
All IMAP servers that advertise the "UTF8=ACCEPT" capability SHOULD
|
||
accept UTF-8 in mailbox names, and those that also support the
|
||
"Mailbox International Naming Convention" described in RFC 3501,
|
||
Section 5.1.3 MUST accept utf8-quoted mailbox names and convert them
|
||
to the appropriate internal format. Mailbox names MUST comply with
|
||
the Net-Unicode Definition (Section 2 of [RFC5198]) with the specific
|
||
exception that they MUST NOT contain control characters (0000-001F,
|
||
0080-009F), delete (007F), line separator (2028), or paragraph
|
||
separator (2029).
|
||
|
||
An IMAP client MUST NOT issue a SEARCH command that uses a mixture of
|
||
utf8-quoted syntax and a SEARCH CHARSET other than UTF-8. If an IMAP
|
||
server receives such a SEARCH command, it SHOULD reject the command
|
||
with a BAD response (due to the conflicting charset labels).
|
||
|
||
|
||
|
||
|
||
Resnick & Newman Experimental [Page 4]
|
||
|
||
RFC 5738 IMAP Support for UTF-8 March 2010
|
||
|
||
|
||
3.2. UTF8 Parameter to SELECT and EXAMINE
|
||
|
||
The "UTF8=ACCEPT" capability also indicates that the server supports
|
||
the "UTF8" parameter to SELECT and EXAMINE. When a mailbox is
|
||
selected with the "UTF8" parameter, it alters the behavior of all
|
||
IMAP commands related to message sizes, message headers, and MIME
|
||
body headers so they refer to the message with UTF-8 headers. If the
|
||
mailstore is not UTF-8 header native and the SELECT or EXAMINE
|
||
command with UTF-8 header modifier succeeds, then the server MUST
|
||
return results as if the mailstore were UTF-8 header native with
|
||
upconversion requirements as described in Section 8. The server MAY
|
||
reject the SELECT or EXAMINE command with the [NOT-UTF-8] response
|
||
code, unless the "UTF8=ALL" or "UTF8=ONLY" capability is advertised.
|
||
|
||
Servers MAY include mailboxes that can only be selected or examined
|
||
if the "UTF8" parameter is provided. However, such mailboxes MUST
|
||
NOT be included in the output of an unextended LIST, LSUB, or
|
||
equivalent command. If a client attempts to SELECT or EXAMINE such
|
||
mailboxes without the "UTF8" parameter, the server MUST reject the
|
||
command with a [UTF-8-ONLY] response code. As a result, such
|
||
mailboxes will not be accessible by IMAP clients written prior to
|
||
this specification and are discouraged unless the server advertises
|
||
"UTF8=ONLY" or the server implements IMAP4 LIST Command Extensions
|
||
[RFC5258].
|
||
|
||
utf8-select-param = "UTF8"
|
||
;; Conforms to <select-param> from RFC 4466
|
||
|
||
C: a SELECT newmailbox (UTF8)
|
||
S: ...
|
||
S: a OK SELECT completed
|
||
C: b FETCH 1 (SIZE ENVELOPE BODY)
|
||
S: ... < UTF-8 header native results >
|
||
S: b OK FETCH completed
|
||
|
||
C: c EXAMINE legacymailbox (UTF8)
|
||
S: c NO [NOT-UTF-8] Mailbox does not support UTF-8 access
|
||
|
||
C: d SELECT funky-new-mailbox
|
||
S: d NO [UTF-8-ONLY] Mailbox requires UTF-8 client
|
||
|
||
3.3. UTF-8 LIST and LSUB Responses
|
||
|
||
After an IMAP client successfully issues an "ENABLE UTF8=ACCEPT"
|
||
command, the server MUST NOT return in LIST results any mailbox names
|
||
to the client following the IMAP4 Mailbox International Naming
|
||
Convention. Instead, the server MUST return any mailbox names with
|
||
characters outside the US-ASCII repertoire using utf8-quoted syntax.
|
||
|
||
|
||
|
||
Resnick & Newman Experimental [Page 5]
|
||
|
||
RFC 5738 IMAP Support for UTF-8 March 2010
|
||
|
||
|
||
(The IMAP4 Mailbox International Naming Convention has proved
|
||
problematic in the past, so the desire is to make this syntax
|
||
obsolete as quickly as possible.)
|
||
|
||
3.4. UTF-8 Interaction with IMAP4 LIST Command Extensions
|
||
|
||
When an IMAP server advertises both the "UTF8=ACCEPT" capability and
|
||
the "LIST-EXTENDED" [RFC5258] capability, the server MUST support the
|
||
LIST extensions described in this section.
|
||
|
||
3.4.1. UTF8 and UTF8ONLY LIST Selection Options
|
||
|
||
The "UTF8" LIST selection option tells the server to include
|
||
mailboxes that only support UTF-8 headers in the output of the list
|
||
command. The "UTF8ONLY" LIST selection option tells the server to
|
||
include all mailboxes that support UTF-8 headers and to exclude
|
||
mailboxes that don't support UTF-8 headers. Note that "UTF8ONLY"
|
||
implies "UTF8", so it is not necessary for the client to request
|
||
both. Use of either selection option will also result in UTF-8
|
||
mailbox names in the result as described in Section 3.3 and implies
|
||
the "UTF8" List return option described in Section 3.4.2.
|
||
|
||
3.4.2. UTF8 LIST Return Option
|
||
|
||
If the client supplies the "UTF8" LIST return option, then the server
|
||
MUST include either the "\NoUTF8" or the "\UTF8Only" mailbox
|
||
attribute as appropriate. The "\NoUTF8" mailbox attribute indicates
|
||
that an attempt to SELECT or EXAMINE that mailbox with the "UTF8"
|
||
parameter will fail with a [NOT-UTF-8] response code. The
|
||
"\UTF8Only" mailbox attribute indicates that an attempt to SELECT or
|
||
EXAMINE that mailbox without the "UTF8" parameter will fail with a
|
||
[UTF-8-ONLY] response code. Note that computing this information may
|
||
be expensive on some server implementations, so this return option
|
||
should not be used unless necessary.
|
||
|
||
The ABNF [RFC5234] for these LIST extensions follows:
|
||
|
||
list-select-independent-opt =/ "UTF8"
|
||
|
||
list-select-base-opt =/ "UTF8ONLY"
|
||
|
||
mbx-list-oflag =/ "\NoUTF8" / "\UTF8Only"
|
||
|
||
return-option =/ "UTF8"
|
||
|
||
resp-text-code =/ "NOT-UTF-8" / "UTF-8-ONLY"
|
||
|
||
|
||
|
||
|
||
|
||
Resnick & Newman Experimental [Page 6]
|
||
|
||
RFC 5738 IMAP Support for UTF-8 March 2010
|
||
|
||
|
||
4. UTF8=APPEND Capability
|
||
|
||
If the "UTF8=APPEND" capability is advertised, then the server
|
||
accepts UTF-8 headers in the APPEND command message argument. A
|
||
client that sends a message with UTF-8 headers to the server MUST
|
||
send them using the "UTF8" APPEND data extension. If the server also
|
||
advertises the CATENATE capability (as specified in [RFC4469]), the
|
||
client can use the same data extension to include such a message in a
|
||
CATENATE message part. The ABNF for the APPEND data extension and
|
||
CATENATE extension follows:
|
||
|
||
utf8-literal = "UTF8" SP "(" literal8 ")"
|
||
|
||
append-data =/ utf8-literal
|
||
|
||
cat-part =/ utf8-literal
|
||
|
||
A server that advertises "UTF8=APPEND" has to comply with the
|
||
requirements of the IMAP base specification and [RFC5322] for message
|
||
fetching. Mechanisms for 7-bit downgrading to help comply with the
|
||
standards are discussed in Downgrading mechanism for
|
||
Internationalized eMail Address (IMA) [RFC5504].
|
||
|
||
IMAP servers that do not advertise the "UTF8=APPEND" or "UTF8=ONLY"
|
||
capability SHOULD reject an APPEND command that includes any 8-bit in
|
||
the message headers with a "NO" response.
|
||
|
||
Note that the "UTF8=ONLY" capability described in Section 7 implies
|
||
the "UTF8=APPEND" capability. See additional information in that
|
||
section.
|
||
|
||
5. UTF8=USER Capability
|
||
|
||
If the "UTF8=USER" capability is advertised, that indicates the
|
||
server accepts UTF-8 user names and passwords and applies SASLprep
|
||
[RFC4013] to both arguments of the LOGIN command. The server MUST
|
||
reject UTF-8 that fails to comply with the formal syntax in RFC 3629
|
||
[RFC3629] or if it encounters Unicode characters listed in Section
|
||
2.3 of SASLprep RFC 4013 [RFC4013].
|
||
|
||
6. UTF8=ALL Capability
|
||
|
||
The "UTF8=ALL" capability indicates all server mailboxes support
|
||
UTF-8 headers. Specifically, SELECT and EXAMINE with the "UTF8"
|
||
parameter will never fail with a [NOT-UTF-8] response code.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Resnick & Newman Experimental [Page 7]
|
||
|
||
RFC 5738 IMAP Support for UTF-8 March 2010
|
||
|
||
|
||
Note that the "UTF8=ONLY" capability described in Section 7 implies
|
||
the "UTF8=ALL" capability. See additional information in that
|
||
section.
|
||
|
||
Note that the "UTF8=ALL" capability implies the "UTF8=ACCEPT"
|
||
capability.
|
||
|
||
7. UTF8=ONLY Capability
|
||
|
||
The "UTF8=ONLY" capability permits an IMAP server to advertise that
|
||
it does not support the international mailbox name convention
|
||
(modified UTF-7), and does not permit selection or examination of any
|
||
mailbox unless the "UTF8" parameter is provided. As this is an
|
||
incompatible change to IMAP, a clear warning is necessary. IMAP
|
||
clients that find implementation of the "UTF8=ONLY" capability
|
||
problematic are encouraged to at least detect the "UTF8=ONLY"
|
||
capability and provide an informative error message to the end-user.
|
||
|
||
When an IMAP mailbox internally uses UTF-8 header native storage, the
|
||
down-conversion step is necessary to permit selection or examination
|
||
of the mailbox in a backwards compatible fashion will become more
|
||
difficult to support. Although it is hoped that deployed IMAP
|
||
servers will not advertise "UTF8=ONLY" for some years, this
|
||
capability is intended to minimize the disruption when legacy support
|
||
finally goes away.
|
||
|
||
The "UTF8=ONLY" capability implies the "UTF8=ACCEPT" capability, the
|
||
"UTF8=ALL" capability, and the "UTF8=APPEND" capability. A server
|
||
that advertises "UTF8=ONLY" need not advertise the three implicit
|
||
capabilities.
|
||
|
||
8. Up-Conversion Server Requirements
|
||
|
||
When an IMAP4 server uses a traditional mailbox format that includes
|
||
7-bit headers and it chooses to permit access to that mailbox with
|
||
the "UTF8" parameter, it MUST support minimal up-conversion as
|
||
described in this section.
|
||
|
||
The server MUST support up-conversion of the following address
|
||
header-fields in the message header: From, Sender, To, CC, Bcc,
|
||
Resent-From, Resent-Sender, Resent-To, Resent-CC, Resent-Bcc, and
|
||
Reply-To. This up-conversion MUST include address local-parts in
|
||
fields downgraded according to [RFC5504], address domains encoded
|
||
according to Internationalizing Domain Names in Applications (IDNA)
|
||
[RFC3490], and MIME header encoding [RFC2047] of display-names and
|
||
any [RFC5322] comments.
|
||
|
||
|
||
|
||
|
||
|
||
Resnick & Newman Experimental [Page 8]
|
||
|
||
RFC 5738 IMAP Support for UTF-8 March 2010
|
||
|
||
|
||
The following charsets MUST be supported for up-conversion of MIME
|
||
header encoding [RFC2047]: UTF-8, US-ASCII, ISO-8859-1, ISO-8859-2,
|
||
ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7,
|
||
ISO-8859-8, ISO-8859-9, ISO-8859-10, ISO-8859-14, and ISO-8859-15.
|
||
If the server supports other charsets in IMAP SEARCH or IMAP CONVERT
|
||
[RFC5259], it SHOULD also support those charsets in this conversion.
|
||
|
||
Up-conversion of MIME header encoding of the following headers MUST
|
||
also be implemented: Subject, Date ([RFC5322] comments only),
|
||
Comments, Keywords, and Content-Description.
|
||
|
||
Server implementations also SHOULD up-convert all MIME body headers
|
||
[RFC2045], SHOULD up-convert or remove the deprecated (and misused)
|
||
"name" parameter [RFC1341] on Content-Type, and MUST up-convert the
|
||
Content-Disposition [RFC2183] "filename" parameter, except when any
|
||
of these are contained within a multipart/signed MIME body part (see
|
||
below). These parameters can be encoded using the standard MIME
|
||
parameter encoding [RFC2231] mechanism, or via non-standard use of
|
||
MIME header encoding [RFC2047] in quoted strings.
|
||
|
||
The IMAP server MUST NOT perform up-conversion of headers and content
|
||
of multipart/signed, as well as Original-Recipient and Return-Path.
|
||
|
||
9. Issues with UTF-8 Header Mailstore
|
||
|
||
When an IMAP server uses a mailbox format that supports UTF-8 headers
|
||
and it permits selection or examination of that mailbox without the
|
||
"UTF8" parameter, it is the responsibility of the server to comply
|
||
with the IMAP4rev1 base specification [RFC3501] and [RFC5322] with
|
||
respect to all header information transmitted over the wire.
|
||
Mechanisms for 7-bit downgrading to help comply with the standards
|
||
are discussed in "Downgrading Mechanism for Email Address
|
||
Internationalization" [RFC5504].
|
||
|
||
An IMAP server with a mailbox that supports UTF-8 headers MUST comply
|
||
with the protocol requirements implicit from Section 8. However, the
|
||
code necessary for such compliance need not be part of the IMAP
|
||
server itself in this case. For example, the minimal required up-
|
||
conversion could be performed when a message is inserted into the
|
||
IMAP-accessible mailbox.
|
||
|
||
10. IANA Considerations
|
||
|
||
This adds five new capabilities ("UTF8=ACCEPT", "UTF8=USER",
|
||
"UTF8=APPEND", "UTF8=ALL", and "UTF8=ONLY") to the IMAP4rev1
|
||
Capabilities registry [RFC3501].
|
||
|
||
|
||
|
||
|
||
|
||
Resnick & Newman Experimental [Page 9]
|
||
|
||
RFC 5738 IMAP Support for UTF-8 March 2010
|
||
|
||
|
||
This adds two new IMAP4 list selection options and one new IMAP4 list
|
||
return option.
|
||
|
||
1. LIST-EXTENDED option name: UTF8
|
||
|
||
LIST-EXTENDED option type: SELECTION
|
||
|
||
Implied return options(s): UTF8
|
||
|
||
LIST-EXTENDED option description: Causes the LIST response to
|
||
include mailboxes that mandate the UTF8 SELECT/EXAMINE parameter.
|
||
|
||
Published specification: RFC 5738, Section 3.4.1
|
||
|
||
Security considerations: RFC 5738, Section 11
|
||
|
||
Intended usage: COMMON
|
||
|
||
Person and email address to contact for further information: see
|
||
the Authors' Addresses at the end of this specification
|
||
|
||
Owner/Change controller: iesg@ietf.org
|
||
|
||
2. LIST-EXTENDED option name: UTF8ONLY
|
||
|
||
LIST-EXTENDED option type: SELECTION
|
||
|
||
Implied return options(s): UTF8
|
||
|
||
LIST-EXTENDED option description: Causes the LIST response to
|
||
include mailboxes that mandate the UTF8 SELECT/EXAMINE parameter
|
||
and exclude mailboxes that do not support the UTF8 SELECT/EXAMINE
|
||
parameter.
|
||
|
||
Published specification: RFC 5738, Section 3.4.1
|
||
|
||
Security considerations: RFC 5738, Section 11
|
||
|
||
Intended usage: COMMON
|
||
|
||
Person and email address to contact for further information: see
|
||
the Authors' Addresses at the end of this specification
|
||
|
||
Owner/Change controller: iesg@ietf.org
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Resnick & Newman Experimental [Page 10]
|
||
|
||
RFC 5738 IMAP Support for UTF-8 March 2010
|
||
|
||
|
||
3. LIST-EXTENDED option name: UTF8
|
||
|
||
LIST-EXTENDED option type: RETURN
|
||
|
||
Implied return options(s): none
|
||
|
||
LIST-EXTENDED option description: Causes the LIST response to
|
||
include \NoUTF8 and \UTF8Only mailbox attributes.
|
||
|
||
Published specification: RFC 5738, Section 3.4.1
|
||
|
||
Security considerations: RFC 5738, Section 11
|
||
|
||
Intended usage: COMMON
|
||
|
||
Person and email address to contact for further information: see
|
||
the Authors' Addresses at the end of this specification
|
||
|
||
Owner/Change controller: iesg@ietf.org
|
||
|
||
11. Security Considerations
|
||
|
||
The security considerations of UTF-8 [RFC3629] and SASLprep [RFC4013]
|
||
apply to this specification, particularly with respect to use of
|
||
UTF-8 in user names and passwords. Otherwise, this is not believed
|
||
to alter the security considerations of IMAP4rev1.
|
||
|
||
12. References
|
||
|
||
12.1. Normative References
|
||
|
||
[RFC1341] Borenstein, N. and N. Freed, "MIME (Multipurpose Internet
|
||
Mail Extensions): Mechanisms for Specifying and Describing
|
||
the Format of Internet Message Bodies", RFC 1341,
|
||
June 1992.
|
||
|
||
[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
|
||
Extensions (MIME) Part One: Format of Internet Message
|
||
Bodies", RFC 2045, November 1996.
|
||
|
||
[RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions)
|
||
Part Three: Message Header Extensions for Non-ASCII Text",
|
||
RFC 2047, November 1996.
|
||
|
||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||
|
||
|
||
|
||
|
||
|
||
Resnick & Newman Experimental [Page 11]
|
||
|
||
RFC 5738 IMAP Support for UTF-8 March 2010
|
||
|
||
|
||
[RFC2183] Troost, R., Dorner, S., and K. Moore, "Communicating
|
||
Presentation Information in Internet Messages: The
|
||
Content-Disposition Header Field", RFC 2183, August 1997.
|
||
|
||
[RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded
|
||
Word Extensions:
|
||
Character Sets, Languages, and Continuations", RFC 2231,
|
||
November 1997.
|
||
|
||
[RFC3490] Faltstrom, P., Hoffman, P., and A. Costello,
|
||
"Internationalizing Domain Names in Applications (IDNA)",
|
||
RFC 3490, March 2003.
|
||
|
||
[RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
|
||
4rev1", RFC 3501, March 2003.
|
||
|
||
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
|
||
10646", STD 63, RFC 3629, November 2003.
|
||
|
||
[RFC4013] Zeilenga, K., "SASLprep: Stringprep Profile for User Names
|
||
and Passwords", RFC 4013, February 2005.
|
||
|
||
[RFC4466] Melnikov, A. and C. Daboo, "Collected Extensions to IMAP4
|
||
ABNF", RFC 4466, April 2006.
|
||
|
||
[RFC4469] Resnick, P., "Internet Message Access Protocol (IMAP)
|
||
CATENATE Extension", RFC 4469, April 2006.
|
||
|
||
[RFC5161] Gulbrandsen, A. and A. Melnikov, "The IMAP ENABLE
|
||
Extension", RFC 5161, March 2008.
|
||
|
||
[RFC5198] Klensin, J. and M. Padlipsky, "Unicode Format for Network
|
||
Interchange", RFC 5198, March 2008.
|
||
|
||
[RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
|
||
Specifications: ABNF", STD 68, RFC 5234, January 2008.
|
||
|
||
[RFC5258] Leiba, B. and A. Melnikov, "Internet Message Access
|
||
Protocol version 4 - LIST Command Extensions", RFC 5258,
|
||
June 2008.
|
||
|
||
[RFC5259] Melnikov, A. and P. Coates, "Internet Message Access
|
||
Protocol - CONVERT Extension", RFC 5259, July 2008.
|
||
|
||
[RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
|
||
October 2008.
|
||
|
||
|
||
|
||
|
||
|
||
Resnick & Newman Experimental [Page 12]
|
||
|
||
RFC 5738 IMAP Support for UTF-8 March 2010
|
||
|
||
|
||
[RFC5335] Abel, Y., "Internationalized Email Headers", RFC 5335,
|
||
September 2008.
|
||
|
||
[RFC5504] Fujiwara, K. and Y. Yoneya, "Downgrading Mechanism for
|
||
Email Address Internationalization", RFC 5504, March 2009.
|
||
|
||
12.2. Informative References
|
||
|
||
[RFC2049] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
|
||
Extensions (MIME) Part Five: Conformance Criteria and
|
||
Examples", RFC 2049, November 1996.
|
||
|
||
[RFC2088] Myers, J., "IMAP4 non-synchronizing literals", RFC 2088,
|
||
January 1997.
|
||
|
||
[RFC2277] Alvestrand, H., "IETF Policy on Character Sets and
|
||
Languages", BCP 18, RFC 2277, January 1998.
|
||
|
||
[RFC5721] Gellens, R. and C. Newman, "POP3 Support for UTF-8",
|
||
RFC 5721, February 2010.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Resnick & Newman Experimental [Page 13]
|
||
|
||
RFC 5738 IMAP Support for UTF-8 March 2010
|
||
|
||
|
||
Appendix A. Design Rationale
|
||
|
||
This non-normative section discusses the reasons behind some of the
|
||
design choices in the above specification.
|
||
|
||
The basic approach of advertising the ability to access a mailbox in
|
||
UTF-8 mode is intended to permit graceful upgrade, including servers
|
||
that support multiple mailbox formats. In particular, it would be
|
||
undesirable to force conversion of an entire server mailstore to
|
||
UTF-8 headers, so being able to phase-in support for new mailboxes
|
||
and gradually migrate old mailboxes is permitted by this design.
|
||
|
||
"UTF8=USER" is optional because many identity systems are US-ASCII
|
||
only, so it's helpful to inform the client up front that UTF-8 won't
|
||
work.
|
||
|
||
"UTF8=APPEND" is optional because it effectively requires IMAP server
|
||
support for down-conversion, which is a much more complex operation
|
||
than up-conversion.
|
||
|
||
The "UTF8=ONLY" mechanism simplifies diagnosis of interoperability
|
||
problems when legacy support goes away. In the situation where
|
||
backwards compatibility is broken anyway, just-send-UTF-8 IMAP has
|
||
the advantage that it might work with some legacy clients. However,
|
||
the difficulty of diagnosing interoperability problems caused by a
|
||
just-send-UTF-8 IMAP mechanism is the reason the "UTF8=ONLY"
|
||
capability mechanism was chosen.
|
||
|
||
The up-conversion requirements are designed to balance the desire to
|
||
deprecate and eventually eliminate complicated encodings (like MIME
|
||
header encodings) without creating a significant deployment burden
|
||
for servers. As IMAP4 servers already require a MIME parser, this
|
||
includes additional server up-conversion requirements not present in
|
||
POP3 Support for UTF-8 [RFC5721].
|
||
|
||
The set of mandatory charsets comes from two sources: MIME
|
||
requirements [RFC2049] and IETF Policy on Character Sets [RFC2277].
|
||
Including a requirement to up-convert widely deployed encoded
|
||
ideographic charsets to UTF-8 would be reasonable for most scenarios,
|
||
but may require unacceptable table sizes for some embedded devices.
|
||
The open-ended recommendation to support widely deployed charsets
|
||
avoids the political ramifications of attempting to list such
|
||
charsets. The authors believe market forces, existing open-source
|
||
software, and public conversion tables are sufficient to deploy the
|
||
appropriate charsets.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Resnick & Newman Experimental [Page 14]
|
||
|
||
RFC 5738 IMAP Support for UTF-8 March 2010
|
||
|
||
|
||
Appendix B. Examples Demonstrating Relationships between UTF8=
|
||
Capabilities
|
||
|
||
|
||
UTF8=ACCEPT UTF8=USER UTF8=APPEND
|
||
UTF8=ACCEPT UTF8=ALL
|
||
UTF8=ALL ; Note, same as above
|
||
UTF8=ACCEPT UTF8=USER UTF8=APPEND UTF8=ALL UTF8=ONLY
|
||
UTF8=USER UTF8=ONLY ; Note, same as above
|
||
|
||
Appendix C. Acknowledgments
|
||
|
||
The authors wish to thank the participants of the EAI working group
|
||
for their contributions to this document with particular thanks to
|
||
Harald Alvestrand, David Black, Randall Gellens, Arnt Gulbrandsen,
|
||
Kari Hurtta, John Klensin, Xiaodong Lee, Charles Lindsey, Alexey
|
||
Melnikov, Subramanian Moonesamy, Shawn Steele, Daniel Taharlev, and
|
||
Joseph Yee for their specific contributions to the discussion.
|
||
|
||
Authors' Addresses
|
||
|
||
Pete Resnick
|
||
Qualcomm Incorporated
|
||
5775 Morehouse Drive
|
||
San Diego, CA 92121-1714
|
||
US
|
||
|
||
Phone: +1 858 651 4478
|
||
EMail: presnick@qualcomm.com
|
||
URI: http://www.qualcomm.com/~presnick/
|
||
|
||
Chris Newman
|
||
Sun Microsystems
|
||
800 Royal Oaks
|
||
Monrovia, CA 91016
|
||
US
|
||
|
||
EMail: chris.newman@sun.com
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Resnick & Newman Experimental [Page 15]
|
||
|