rfc5738.IMAP_UTF8.txt 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843
  1. Network Working Group P. Resnick
  2. Request for Comments: 5738 Qualcomm Incorporated
  3. Updates: 3501 C. Newman
  4. Category: Experimental Sun Microsystems
  5. March 2010
  6. IMAP Support for UTF-8
  7. Abstract
  8. This specification extends the Internet Message Access Protocol
  9. version 4rev1 (IMAP4rev1) to support UTF-8 encoded international
  10. characters in user names, mail addresses, and message headers.
  11. Status of This Memo
  12. This document is not an Internet Standards Track specification; it is
  13. published for examination, experimental implementation, and
  14. evaluation.
  15. This document defines an Experimental Protocol for the Internet
  16. community. This document is a product of the Internet Engineering
  17. Task Force (IETF). It represents the consensus of the IETF
  18. community. It has received public review and has been approved for
  19. publication by the Internet Engineering Steering Group (IESG). Not
  20. all documents approved by the IESG are a candidate for any level of
  21. Internet Standard; see Section 2 of RFC 5741.
  22. Information about the current status of this document, any errata,
  23. and how to provide feedback on it may be obtained at
  24. http://www.rfc-editor.org/info/rfc5738.
  25. Copyright Notice
  26. Copyright (c) 2010 IETF Trust and the persons identified as the
  27. document authors. All rights reserved.
  28. This document is subject to BCP 78 and the IETF Trust's Legal
  29. Provisions Relating to IETF Documents
  30. (http://trustee.ietf.org/license-info) in effect on the date of
  31. publication of this document. Please review these documents
  32. carefully, as they describe your rights and restrictions with respect
  33. to this document. Code Components extracted from this document must
  34. include Simplified BSD License text as described in Section 4.e of
  35. the Trust Legal Provisions and are provided without warranty as
  36. described in the Simplified BSD License.
  37. Resnick & Newman Experimental [Page 1]
  38. RFC 5738 IMAP Support for UTF-8 March 2010
  39. This document may contain material from IETF Documents or IETF
  40. Contributions published or made publicly available before November
  41. 10, 2008. The person(s) controlling the copyright in some of this
  42. material may not have granted the IETF Trust the right to allow
  43. modifications of such material outside the IETF Standards Process.
  44. Without obtaining an adequate license from the person(s) controlling
  45. the copyright in such materials, this document may not be modified
  46. outside the IETF Standards Process, and derivative works of it may
  47. not be created outside the IETF Standards Process, except to format
  48. it for publication as an RFC or to translate it into languages other
  49. than English.
  50. Table of Contents
  51. 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
  52. 2. Conventions Used in This Document . . . . . . . . . . . . . . 3
  53. 3. UTF8=ACCEPT IMAP Capability . . . . . . . . . . . . . . . . . 3
  54. 3.1. IMAP UTF-8 Quoted Strings . . . . . . . . . . . . . . . . 3
  55. 3.2. UTF8 Parameter to SELECT and EXAMINE . . . . . . . . . . . 5
  56. 3.3. UTF-8 LIST and LSUB Responses . . . . . . . . . . . . . . 5
  57. 3.4. UTF-8 Interaction with IMAP4 LIST Command Extensions . . . 6
  58. 3.4.1. UTF8 and UTF8ONLY LIST Selection Options . . . . . . . 6
  59. 3.4.2. UTF8 LIST Return Option . . . . . . . . . . . . . . . 6
  60. 4. UTF8=APPEND Capability . . . . . . . . . . . . . . . . . . . . 7
  61. 5. UTF8=USER Capability . . . . . . . . . . . . . . . . . . . . . 7
  62. 6. UTF8=ALL Capability . . . . . . . . . . . . . . . . . . . . . 7
  63. 7. UTF8=ONLY Capability . . . . . . . . . . . . . . . . . . . . . 8
  64. 8. Up-Conversion Server Requirements . . . . . . . . . . . . . . 8
  65. 9. Issues with UTF-8 Header Mailstore . . . . . . . . . . . . . . 9
  66. 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
  67. 11. Security Considerations . . . . . . . . . . . . . . . . . . . 11
  68. 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
  69. 12.1. Normative References . . . . . . . . . . . . . . . . . . . 11
  70. 12.2. Informative References . . . . . . . . . . . . . . . . . . 13
  71. Appendix A. Design Rationale . . . . . . . . . . . . . . . . . . 14
  72. Appendix B. Examples Demonstrating Relationships between
  73. UTF8= Capabilities . . . . . . . . . . . . . . . . . 15
  74. Appendix C. Acknowledgments . . . . . . . . . . . . . . . . . . . 15
  75. Resnick & Newman Experimental [Page 2]
  76. RFC 5738 IMAP Support for UTF-8 March 2010
  77. 1. Introduction
  78. This specification extends IMAP4rev1 [RFC3501] to permit UTF-8
  79. [RFC3629] in headers as described in "Internationalized Email
  80. Headers" [RFC5335]. It also adds a mechanism to support mailbox
  81. names, login names, and passwords using the UTF-8 charset. This
  82. specification creates five new IMAP capabilities to allow servers to
  83. advertise these new extensions, along with two new IMAP LIST
  84. selection options and a new IMAP LIST return option.
  85. 2. Conventions Used in This Document
  86. The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY"
  87. in this document are to be interpreted as defined in "Key words for
  88. use in RFCs to Indicate Requirement Levels" [RFC2119].
  89. The formal syntax uses the Augmented Backus-Naur Form (ABNF)
  90. [RFC5234] notation including the core rules defined in Appendix B of
  91. [RFC5234]. In addition, rules from IMAP4rev1 [RFC3501], UTF-8
  92. [RFC3629], "Collected Extensions to IMAP4 ABNF" [RFC4466], and IMAP4
  93. LIST Command Extensions [RFC5258] are also referenced.
  94. In examples, "C:" and "S:" indicate lines sent by the client and
  95. server, respectively. If a single "C:" or "S:" label applies to
  96. multiple lines, then the line breaks between those lines are for
  97. editorial clarity only and are not part of the actual protocol
  98. exchange.
  99. 3. UTF8=ACCEPT IMAP Capability
  100. The "UTF8=ACCEPT" capability indicates that the server supports UTF-8
  101. quoted strings, the "UTF8" parameter to SELECT and EXAMINE, and UTF-8
  102. responses from the LIST and LSUB commands.
  103. A client MUST use the "ENABLE UTF8=ACCEPT" command (defined in
  104. [RFC5161]) to indicate to the server that the client accepts UTF-8
  105. quoted-strings. The "ENABLE UTF8=ACCEPT" command MUST only be used
  106. in the authenticated state. (Note that the "UTF8=ONLY" capability
  107. described in Section 7 and the "UTF8=ALL" capability described in
  108. Section 6 imply the "UTF8=ACCEPT" capability. See additional
  109. information in these sections.)
  110. 3.1. IMAP UTF-8 Quoted Strings
  111. The IMAP4rev1 [RFC3501] base specification forbids the use of 8-bit
  112. characters in atoms or quoted strings. Thus, a UTF-8 string can only
  113. be sent as a literal. This can be inconvenient from a coding
  114. standpoint, and unless the server offers IMAP4 non-synchronizing
  115. Resnick & Newman Experimental [Page 3]
  116. RFC 5738 IMAP Support for UTF-8 March 2010
  117. literals [RFC2088], this requires an extra round trip for each UTF-8
  118. string sent by the client. When the IMAP server advertises the
  119. "UTF8=ACCEPT" capability, it informs the client that it supports
  120. native UTF-8 quoted-strings with the following syntax:
  121. string =/ utf8-quoted
  122. utf8-quoted = "*" DQUOTE *UQUOTED-CHAR DQUOTE
  123. UQUOTED-CHAR = QUOTED-CHAR / UTF8-2 / UTF8-3 / UTF8-4
  124. ; UTF8-2, UTF8-3, and UTF8-4 are as defined in RFC 3629
  125. When this quoting mechanism is used by the client (specifically an
  126. octet sequence beginning with *" and ending with "), then the server
  127. MUST reject octet sequences with the high bit set that fail to comply
  128. with the formal syntax in [RFC3629] with a BAD response.
  129. The IMAP server MUST NOT send utf8-quoted syntax to the client unless
  130. the client has indicated support for that syntax by using the "ENABLE
  131. UTF8=ACCEPT" command.
  132. If the server advertises the "UTF8=ACCEPT" capability, the client MAY
  133. use utf8-quoted syntax with any IMAP argument that permits a string
  134. (including astring and nstring). However, if characters outside the
  135. US-ASCII repertoire are used in an inappropriate place, the results
  136. would be the same as if other syntactically valid but semantically
  137. invalid characters were used. For example, if the client includes
  138. UTF-8 characters in the user or password arguments (and the server
  139. has not advertised "UTF8=USER"), the LOGIN command will fail as it
  140. would with any other invalid user name or password. Specific cases
  141. where UTF-8 characters are permitted or not permitted are described
  142. in the following paragraphs.
  143. All IMAP servers that advertise the "UTF8=ACCEPT" capability SHOULD
  144. accept UTF-8 in mailbox names, and those that also support the
  145. "Mailbox International Naming Convention" described in RFC 3501,
  146. Section 5.1.3 MUST accept utf8-quoted mailbox names and convert them
  147. to the appropriate internal format. Mailbox names MUST comply with
  148. the Net-Unicode Definition (Section 2 of [RFC5198]) with the specific
  149. exception that they MUST NOT contain control characters (0000-001F,
  150. 0080-009F), delete (007F), line separator (2028), or paragraph
  151. separator (2029).
  152. An IMAP client MUST NOT issue a SEARCH command that uses a mixture of
  153. utf8-quoted syntax and a SEARCH CHARSET other than UTF-8. If an IMAP
  154. server receives such a SEARCH command, it SHOULD reject the command
  155. with a BAD response (due to the conflicting charset labels).
  156. Resnick & Newman Experimental [Page 4]
  157. RFC 5738 IMAP Support for UTF-8 March 2010
  158. 3.2. UTF8 Parameter to SELECT and EXAMINE
  159. The "UTF8=ACCEPT" capability also indicates that the server supports
  160. the "UTF8" parameter to SELECT and EXAMINE. When a mailbox is
  161. selected with the "UTF8" parameter, it alters the behavior of all
  162. IMAP commands related to message sizes, message headers, and MIME
  163. body headers so they refer to the message with UTF-8 headers. If the
  164. mailstore is not UTF-8 header native and the SELECT or EXAMINE
  165. command with UTF-8 header modifier succeeds, then the server MUST
  166. return results as if the mailstore were UTF-8 header native with
  167. upconversion requirements as described in Section 8. The server MAY
  168. reject the SELECT or EXAMINE command with the [NOT-UTF-8] response
  169. code, unless the "UTF8=ALL" or "UTF8=ONLY" capability is advertised.
  170. Servers MAY include mailboxes that can only be selected or examined
  171. if the "UTF8" parameter is provided. However, such mailboxes MUST
  172. NOT be included in the output of an unextended LIST, LSUB, or
  173. equivalent command. If a client attempts to SELECT or EXAMINE such
  174. mailboxes without the "UTF8" parameter, the server MUST reject the
  175. command with a [UTF-8-ONLY] response code. As a result, such
  176. mailboxes will not be accessible by IMAP clients written prior to
  177. this specification and are discouraged unless the server advertises
  178. "UTF8=ONLY" or the server implements IMAP4 LIST Command Extensions
  179. [RFC5258].
  180. utf8-select-param = "UTF8"
  181. ;; Conforms to <select-param> from RFC 4466
  182. C: a SELECT newmailbox (UTF8)
  183. S: ...
  184. S: a OK SELECT completed
  185. C: b FETCH 1 (SIZE ENVELOPE BODY)
  186. S: ... < UTF-8 header native results >
  187. S: b OK FETCH completed
  188. C: c EXAMINE legacymailbox (UTF8)
  189. S: c NO [NOT-UTF-8] Mailbox does not support UTF-8 access
  190. C: d SELECT funky-new-mailbox
  191. S: d NO [UTF-8-ONLY] Mailbox requires UTF-8 client
  192. 3.3. UTF-8 LIST and LSUB Responses
  193. After an IMAP client successfully issues an "ENABLE UTF8=ACCEPT"
  194. command, the server MUST NOT return in LIST results any mailbox names
  195. to the client following the IMAP4 Mailbox International Naming
  196. Convention. Instead, the server MUST return any mailbox names with
  197. characters outside the US-ASCII repertoire using utf8-quoted syntax.
  198. Resnick & Newman Experimental [Page 5]
  199. RFC 5738 IMAP Support for UTF-8 March 2010
  200. (The IMAP4 Mailbox International Naming Convention has proved
  201. problematic in the past, so the desire is to make this syntax
  202. obsolete as quickly as possible.)
  203. 3.4. UTF-8 Interaction with IMAP4 LIST Command Extensions
  204. When an IMAP server advertises both the "UTF8=ACCEPT" capability and
  205. the "LIST-EXTENDED" [RFC5258] capability, the server MUST support the
  206. LIST extensions described in this section.
  207. 3.4.1. UTF8 and UTF8ONLY LIST Selection Options
  208. The "UTF8" LIST selection option tells the server to include
  209. mailboxes that only support UTF-8 headers in the output of the list
  210. command. The "UTF8ONLY" LIST selection option tells the server to
  211. include all mailboxes that support UTF-8 headers and to exclude
  212. mailboxes that don't support UTF-8 headers. Note that "UTF8ONLY"
  213. implies "UTF8", so it is not necessary for the client to request
  214. both. Use of either selection option will also result in UTF-8
  215. mailbox names in the result as described in Section 3.3 and implies
  216. the "UTF8" List return option described in Section 3.4.2.
  217. 3.4.2. UTF8 LIST Return Option
  218. If the client supplies the "UTF8" LIST return option, then the server
  219. MUST include either the "\NoUTF8" or the "\UTF8Only" mailbox
  220. attribute as appropriate. The "\NoUTF8" mailbox attribute indicates
  221. that an attempt to SELECT or EXAMINE that mailbox with the "UTF8"
  222. parameter will fail with a [NOT-UTF-8] response code. The
  223. "\UTF8Only" mailbox attribute indicates that an attempt to SELECT or
  224. EXAMINE that mailbox without the "UTF8" parameter will fail with a
  225. [UTF-8-ONLY] response code. Note that computing this information may
  226. be expensive on some server implementations, so this return option
  227. should not be used unless necessary.
  228. The ABNF [RFC5234] for these LIST extensions follows:
  229. list-select-independent-opt =/ "UTF8"
  230. list-select-base-opt =/ "UTF8ONLY"
  231. mbx-list-oflag =/ "\NoUTF8" / "\UTF8Only"
  232. return-option =/ "UTF8"
  233. resp-text-code =/ "NOT-UTF-8" / "UTF-8-ONLY"
  234. Resnick & Newman Experimental [Page 6]
  235. RFC 5738 IMAP Support for UTF-8 March 2010
  236. 4. UTF8=APPEND Capability
  237. If the "UTF8=APPEND" capability is advertised, then the server
  238. accepts UTF-8 headers in the APPEND command message argument. A
  239. client that sends a message with UTF-8 headers to the server MUST
  240. send them using the "UTF8" APPEND data extension. If the server also
  241. advertises the CATENATE capability (as specified in [RFC4469]), the
  242. client can use the same data extension to include such a message in a
  243. CATENATE message part. The ABNF for the APPEND data extension and
  244. CATENATE extension follows:
  245. utf8-literal = "UTF8" SP "(" literal8 ")"
  246. append-data =/ utf8-literal
  247. cat-part =/ utf8-literal
  248. A server that advertises "UTF8=APPEND" has to comply with the
  249. requirements of the IMAP base specification and [RFC5322] for message
  250. fetching. Mechanisms for 7-bit downgrading to help comply with the
  251. standards are discussed in Downgrading mechanism for
  252. Internationalized eMail Address (IMA) [RFC5504].
  253. IMAP servers that do not advertise the "UTF8=APPEND" or "UTF8=ONLY"
  254. capability SHOULD reject an APPEND command that includes any 8-bit in
  255. the message headers with a "NO" response.
  256. Note that the "UTF8=ONLY" capability described in Section 7 implies
  257. the "UTF8=APPEND" capability. See additional information in that
  258. section.
  259. 5. UTF8=USER Capability
  260. If the "UTF8=USER" capability is advertised, that indicates the
  261. server accepts UTF-8 user names and passwords and applies SASLprep
  262. [RFC4013] to both arguments of the LOGIN command. The server MUST
  263. reject UTF-8 that fails to comply with the formal syntax in RFC 3629
  264. [RFC3629] or if it encounters Unicode characters listed in Section
  265. 2.3 of SASLprep RFC 4013 [RFC4013].
  266. 6. UTF8=ALL Capability
  267. The "UTF8=ALL" capability indicates all server mailboxes support
  268. UTF-8 headers. Specifically, SELECT and EXAMINE with the "UTF8"
  269. parameter will never fail with a [NOT-UTF-8] response code.
  270. Resnick & Newman Experimental [Page 7]
  271. RFC 5738 IMAP Support for UTF-8 March 2010
  272. Note that the "UTF8=ONLY" capability described in Section 7 implies
  273. the "UTF8=ALL" capability. See additional information in that
  274. section.
  275. Note that the "UTF8=ALL" capability implies the "UTF8=ACCEPT"
  276. capability.
  277. 7. UTF8=ONLY Capability
  278. The "UTF8=ONLY" capability permits an IMAP server to advertise that
  279. it does not support the international mailbox name convention
  280. (modified UTF-7), and does not permit selection or examination of any
  281. mailbox unless the "UTF8" parameter is provided. As this is an
  282. incompatible change to IMAP, a clear warning is necessary. IMAP
  283. clients that find implementation of the "UTF8=ONLY" capability
  284. problematic are encouraged to at least detect the "UTF8=ONLY"
  285. capability and provide an informative error message to the end-user.
  286. When an IMAP mailbox internally uses UTF-8 header native storage, the
  287. down-conversion step is necessary to permit selection or examination
  288. of the mailbox in a backwards compatible fashion will become more
  289. difficult to support. Although it is hoped that deployed IMAP
  290. servers will not advertise "UTF8=ONLY" for some years, this
  291. capability is intended to minimize the disruption when legacy support
  292. finally goes away.
  293. The "UTF8=ONLY" capability implies the "UTF8=ACCEPT" capability, the
  294. "UTF8=ALL" capability, and the "UTF8=APPEND" capability. A server
  295. that advertises "UTF8=ONLY" need not advertise the three implicit
  296. capabilities.
  297. 8. Up-Conversion Server Requirements
  298. When an IMAP4 server uses a traditional mailbox format that includes
  299. 7-bit headers and it chooses to permit access to that mailbox with
  300. the "UTF8" parameter, it MUST support minimal up-conversion as
  301. described in this section.
  302. The server MUST support up-conversion of the following address
  303. header-fields in the message header: From, Sender, To, CC, Bcc,
  304. Resent-From, Resent-Sender, Resent-To, Resent-CC, Resent-Bcc, and
  305. Reply-To. This up-conversion MUST include address local-parts in
  306. fields downgraded according to [RFC5504], address domains encoded
  307. according to Internationalizing Domain Names in Applications (IDNA)
  308. [RFC3490], and MIME header encoding [RFC2047] of display-names and
  309. any [RFC5322] comments.
  310. Resnick & Newman Experimental [Page 8]
  311. RFC 5738 IMAP Support for UTF-8 March 2010
  312. The following charsets MUST be supported for up-conversion of MIME
  313. header encoding [RFC2047]: UTF-8, US-ASCII, ISO-8859-1, ISO-8859-2,
  314. ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7,
  315. ISO-8859-8, ISO-8859-9, ISO-8859-10, ISO-8859-14, and ISO-8859-15.
  316. If the server supports other charsets in IMAP SEARCH or IMAP CONVERT
  317. [RFC5259], it SHOULD also support those charsets in this conversion.
  318. Up-conversion of MIME header encoding of the following headers MUST
  319. also be implemented: Subject, Date ([RFC5322] comments only),
  320. Comments, Keywords, and Content-Description.
  321. Server implementations also SHOULD up-convert all MIME body headers
  322. [RFC2045], SHOULD up-convert or remove the deprecated (and misused)
  323. "name" parameter [RFC1341] on Content-Type, and MUST up-convert the
  324. Content-Disposition [RFC2183] "filename" parameter, except when any
  325. of these are contained within a multipart/signed MIME body part (see
  326. below). These parameters can be encoded using the standard MIME
  327. parameter encoding [RFC2231] mechanism, or via non-standard use of
  328. MIME header encoding [RFC2047] in quoted strings.
  329. The IMAP server MUST NOT perform up-conversion of headers and content
  330. of multipart/signed, as well as Original-Recipient and Return-Path.
  331. 9. Issues with UTF-8 Header Mailstore
  332. When an IMAP server uses a mailbox format that supports UTF-8 headers
  333. and it permits selection or examination of that mailbox without the
  334. "UTF8" parameter, it is the responsibility of the server to comply
  335. with the IMAP4rev1 base specification [RFC3501] and [RFC5322] with
  336. respect to all header information transmitted over the wire.
  337. Mechanisms for 7-bit downgrading to help comply with the standards
  338. are discussed in "Downgrading Mechanism for Email Address
  339. Internationalization" [RFC5504].
  340. An IMAP server with a mailbox that supports UTF-8 headers MUST comply
  341. with the protocol requirements implicit from Section 8. However, the
  342. code necessary for such compliance need not be part of the IMAP
  343. server itself in this case. For example, the minimal required up-
  344. conversion could be performed when a message is inserted into the
  345. IMAP-accessible mailbox.
  346. 10. IANA Considerations
  347. This adds five new capabilities ("UTF8=ACCEPT", "UTF8=USER",
  348. "UTF8=APPEND", "UTF8=ALL", and "UTF8=ONLY") to the IMAP4rev1
  349. Capabilities registry [RFC3501].
  350. Resnick & Newman Experimental [Page 9]
  351. RFC 5738 IMAP Support for UTF-8 March 2010
  352. This adds two new IMAP4 list selection options and one new IMAP4 list
  353. return option.
  354. 1. LIST-EXTENDED option name: UTF8
  355. LIST-EXTENDED option type: SELECTION
  356. Implied return options(s): UTF8
  357. LIST-EXTENDED option description: Causes the LIST response to
  358. include mailboxes that mandate the UTF8 SELECT/EXAMINE parameter.
  359. Published specification: RFC 5738, Section 3.4.1
  360. Security considerations: RFC 5738, Section 11
  361. Intended usage: COMMON
  362. Person and email address to contact for further information: see
  363. the Authors' Addresses at the end of this specification
  364. Owner/Change controller: iesg@ietf.org
  365. 2. LIST-EXTENDED option name: UTF8ONLY
  366. LIST-EXTENDED option type: SELECTION
  367. Implied return options(s): UTF8
  368. LIST-EXTENDED option description: Causes the LIST response to
  369. include mailboxes that mandate the UTF8 SELECT/EXAMINE parameter
  370. and exclude mailboxes that do not support the UTF8 SELECT/EXAMINE
  371. parameter.
  372. Published specification: RFC 5738, Section 3.4.1
  373. Security considerations: RFC 5738, Section 11
  374. Intended usage: COMMON
  375. Person and email address to contact for further information: see
  376. the Authors' Addresses at the end of this specification
  377. Owner/Change controller: iesg@ietf.org
  378. Resnick & Newman Experimental [Page 10]
  379. RFC 5738 IMAP Support for UTF-8 March 2010
  380. 3. LIST-EXTENDED option name: UTF8
  381. LIST-EXTENDED option type: RETURN
  382. Implied return options(s): none
  383. LIST-EXTENDED option description: Causes the LIST response to
  384. include \NoUTF8 and \UTF8Only mailbox attributes.
  385. Published specification: RFC 5738, Section 3.4.1
  386. Security considerations: RFC 5738, Section 11
  387. Intended usage: COMMON
  388. Person and email address to contact for further information: see
  389. the Authors' Addresses at the end of this specification
  390. Owner/Change controller: iesg@ietf.org
  391. 11. Security Considerations
  392. The security considerations of UTF-8 [RFC3629] and SASLprep [RFC4013]
  393. apply to this specification, particularly with respect to use of
  394. UTF-8 in user names and passwords. Otherwise, this is not believed
  395. to alter the security considerations of IMAP4rev1.
  396. 12. References
  397. 12.1. Normative References
  398. [RFC1341] Borenstein, N. and N. Freed, "MIME (Multipurpose Internet
  399. Mail Extensions): Mechanisms for Specifying and Describing
  400. the Format of Internet Message Bodies", RFC 1341,
  401. June 1992.
  402. [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
  403. Extensions (MIME) Part One: Format of Internet Message
  404. Bodies", RFC 2045, November 1996.
  405. [RFC2047] Moore, K., "MIME (Multipurpose Internet Mail Extensions)
  406. Part Three: Message Header Extensions for Non-ASCII Text",
  407. RFC 2047, November 1996.
  408. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
  409. Requirement Levels", BCP 14, RFC 2119, March 1997.
  410. Resnick & Newman Experimental [Page 11]
  411. RFC 5738 IMAP Support for UTF-8 March 2010
  412. [RFC2183] Troost, R., Dorner, S., and K. Moore, "Communicating
  413. Presentation Information in Internet Messages: The
  414. Content-Disposition Header Field", RFC 2183, August 1997.
  415. [RFC2231] Freed, N. and K. Moore, "MIME Parameter Value and Encoded
  416. Word Extensions:
  417. Character Sets, Languages, and Continuations", RFC 2231,
  418. November 1997.
  419. [RFC3490] Faltstrom, P., Hoffman, P., and A. Costello,
  420. "Internationalizing Domain Names in Applications (IDNA)",
  421. RFC 3490, March 2003.
  422. [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
  423. 4rev1", RFC 3501, March 2003.
  424. [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
  425. 10646", STD 63, RFC 3629, November 2003.
  426. [RFC4013] Zeilenga, K., "SASLprep: Stringprep Profile for User Names
  427. and Passwords", RFC 4013, February 2005.
  428. [RFC4466] Melnikov, A. and C. Daboo, "Collected Extensions to IMAP4
  429. ABNF", RFC 4466, April 2006.
  430. [RFC4469] Resnick, P., "Internet Message Access Protocol (IMAP)
  431. CATENATE Extension", RFC 4469, April 2006.
  432. [RFC5161] Gulbrandsen, A. and A. Melnikov, "The IMAP ENABLE
  433. Extension", RFC 5161, March 2008.
  434. [RFC5198] Klensin, J. and M. Padlipsky, "Unicode Format for Network
  435. Interchange", RFC 5198, March 2008.
  436. [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
  437. Specifications: ABNF", STD 68, RFC 5234, January 2008.
  438. [RFC5258] Leiba, B. and A. Melnikov, "Internet Message Access
  439. Protocol version 4 - LIST Command Extensions", RFC 5258,
  440. June 2008.
  441. [RFC5259] Melnikov, A. and P. Coates, "Internet Message Access
  442. Protocol - CONVERT Extension", RFC 5259, July 2008.
  443. [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
  444. October 2008.
  445. Resnick & Newman Experimental [Page 12]
  446. RFC 5738 IMAP Support for UTF-8 March 2010
  447. [RFC5335] Abel, Y., "Internationalized Email Headers", RFC 5335,
  448. September 2008.
  449. [RFC5504] Fujiwara, K. and Y. Yoneya, "Downgrading Mechanism for
  450. Email Address Internationalization", RFC 5504, March 2009.
  451. 12.2. Informative References
  452. [RFC2049] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
  453. Extensions (MIME) Part Five: Conformance Criteria and
  454. Examples", RFC 2049, November 1996.
  455. [RFC2088] Myers, J., "IMAP4 non-synchronizing literals", RFC 2088,
  456. January 1997.
  457. [RFC2277] Alvestrand, H., "IETF Policy on Character Sets and
  458. Languages", BCP 18, RFC 2277, January 1998.
  459. [RFC5721] Gellens, R. and C. Newman, "POP3 Support for UTF-8",
  460. RFC 5721, February 2010.
  461. Resnick & Newman Experimental [Page 13]
  462. RFC 5738 IMAP Support for UTF-8 March 2010
  463. Appendix A. Design Rationale
  464. This non-normative section discusses the reasons behind some of the
  465. design choices in the above specification.
  466. The basic approach of advertising the ability to access a mailbox in
  467. UTF-8 mode is intended to permit graceful upgrade, including servers
  468. that support multiple mailbox formats. In particular, it would be
  469. undesirable to force conversion of an entire server mailstore to
  470. UTF-8 headers, so being able to phase-in support for new mailboxes
  471. and gradually migrate old mailboxes is permitted by this design.
  472. "UTF8=USER" is optional because many identity systems are US-ASCII
  473. only, so it's helpful to inform the client up front that UTF-8 won't
  474. work.
  475. "UTF8=APPEND" is optional because it effectively requires IMAP server
  476. support for down-conversion, which is a much more complex operation
  477. than up-conversion.
  478. The "UTF8=ONLY" mechanism simplifies diagnosis of interoperability
  479. problems when legacy support goes away. In the situation where
  480. backwards compatibility is broken anyway, just-send-UTF-8 IMAP has
  481. the advantage that it might work with some legacy clients. However,
  482. the difficulty of diagnosing interoperability problems caused by a
  483. just-send-UTF-8 IMAP mechanism is the reason the "UTF8=ONLY"
  484. capability mechanism was chosen.
  485. The up-conversion requirements are designed to balance the desire to
  486. deprecate and eventually eliminate complicated encodings (like MIME
  487. header encodings) without creating a significant deployment burden
  488. for servers. As IMAP4 servers already require a MIME parser, this
  489. includes additional server up-conversion requirements not present in
  490. POP3 Support for UTF-8 [RFC5721].
  491. The set of mandatory charsets comes from two sources: MIME
  492. requirements [RFC2049] and IETF Policy on Character Sets [RFC2277].
  493. Including a requirement to up-convert widely deployed encoded
  494. ideographic charsets to UTF-8 would be reasonable for most scenarios,
  495. but may require unacceptable table sizes for some embedded devices.
  496. The open-ended recommendation to support widely deployed charsets
  497. avoids the political ramifications of attempting to list such
  498. charsets. The authors believe market forces, existing open-source
  499. software, and public conversion tables are sufficient to deploy the
  500. appropriate charsets.
  501. Resnick & Newman Experimental [Page 14]
  502. RFC 5738 IMAP Support for UTF-8 March 2010
  503. Appendix B. Examples Demonstrating Relationships between UTF8=
  504. Capabilities
  505. UTF8=ACCEPT UTF8=USER UTF8=APPEND
  506. UTF8=ACCEPT UTF8=ALL
  507. UTF8=ALL ; Note, same as above
  508. UTF8=ACCEPT UTF8=USER UTF8=APPEND UTF8=ALL UTF8=ONLY
  509. UTF8=USER UTF8=ONLY ; Note, same as above
  510. Appendix C. Acknowledgments
  511. The authors wish to thank the participants of the EAI working group
  512. for their contributions to this document with particular thanks to
  513. Harald Alvestrand, David Black, Randall Gellens, Arnt Gulbrandsen,
  514. Kari Hurtta, John Klensin, Xiaodong Lee, Charles Lindsey, Alexey
  515. Melnikov, Subramanian Moonesamy, Shawn Steele, Daniel Taharlev, and
  516. Joseph Yee for their specific contributions to the discussion.
  517. Authors' Addresses
  518. Pete Resnick
  519. Qualcomm Incorporated
  520. 5775 Morehouse Drive
  521. San Diego, CA 92121-1714
  522. US
  523. Phone: +1 858 651 4478
  524. EMail: presnick@qualcomm.com
  525. URI: http://www.qualcomm.com/~presnick/
  526. Chris Newman
  527. Sun Microsystems
  528. 800 Royal Oaks
  529. Monrovia, CA 91016
  530. US
  531. EMail: chris.newman@sun.com
  532. Resnick & Newman Experimental [Page 15]