imapext-2007

annotate docs/draft/i18n.txt @ 0:ada5e610ab86

imap-2007e
author yuuji@gentei.org
date Mon, 14 Sep 2009 15:17:45 +0900
parents
children
rev   line source
yuuji@0 1
yuuji@0 2
yuuji@0 3
yuuji@0 4
yuuji@0 5
yuuji@0 6
yuuji@0 7 Network Working Group Chris Newman
yuuji@0 8 Internet-Draft Sun Microsystems
yuuji@0 9 Intended Status: Proposed Standard Arnt Gulbrandsen
yuuji@0 10 Oryx Mail Systems GmhH
yuuji@0 11 Alexey Melnikov
yuuji@0 12 Isode Limited
yuuji@0 13 February 1, 2008
yuuji@0 14
yuuji@0 15 Internet Message Access Protocol Internationalization
yuuji@0 16 draft-ietf-imapext-i18n-15.txt
yuuji@0 17
yuuji@0 18
yuuji@0 19 Status of this Memo
yuuji@0 20 By submitting this Internet-Draft, each author represents that any
yuuji@0 21 applicable patent or other IPR claims of which he or she is aware
yuuji@0 22 have been or will be disclosed, and any of which he or she becomes
yuuji@0 23 aware will be disclosed, in accordance with Section 6 of BCP 79.
yuuji@0 24
yuuji@0 25 Internet-Drafts are working documents of the Internet Engineering
yuuji@0 26 Task Force (IETF), its areas, and its working groups. Note that
yuuji@0 27 other groups may also distribute working documents as Internet-
yuuji@0 28 Drafts.
yuuji@0 29
yuuji@0 30 Internet-Drafts are draft documents valid for a maximum of six
yuuji@0 31 months and may be updated, replaced, or obsoleted by other documents
yuuji@0 32 at any time. It is inappropriate to use Internet-Drafts as
yuuji@0 33 reference material or to cite them other than as "work in progress".
yuuji@0 34
yuuji@0 35 The list of current Internet-Drafts can be accessed at
yuuji@0 36 http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-
yuuji@0 37 Draft Shadow Directories can be accessed at
yuuji@0 38 http://www.ietf.org/shadow.html.
yuuji@0 39
yuuji@0 40 This Internet-Draft expires in August 2008.
yuuji@0 41
yuuji@0 42
yuuji@0 43 Copyright Notice
yuuji@0 44
yuuji@0 45 Copyright (C) The IETF Trust (2008).
yuuji@0 46
yuuji@0 47
yuuji@0 48 Abstract
yuuji@0 49
yuuji@0 50 Internet Message Access Protocol (IMAP) version 4rev1 has basic
yuuji@0 51 support for non-ASCII characters in mailbox names and search
yuuji@0 52 substrings. It also supports non-ASCII message headers and content
yuuji@0 53 encoded as specified by Multipurpose Internet Mail Extensions
yuuji@0 54 (MIME). This specification defines a collection of IMAP extensions
yuuji@0 55
yuuji@0 56
yuuji@0 57
yuuji@0 58 Newman & Co Expires August 2008 FF[Page 1]
yuuji@0 59
yuuji@0 60
yuuji@0 61
yuuji@0 62
yuuji@0 63
yuuji@0 64 Internet-draft February 2008
yuuji@0 65
yuuji@0 66
yuuji@0 67 which improve international support including comparator negotiation
yuuji@0 68 for search, sort and thread, language negotiation for international
yuuji@0 69 error text, and translations for namespace prefixes.
yuuji@0 70
yuuji@0 71
yuuji@0 72 Table of Contents
yuuji@0 73
yuuji@0 74 1. Conventions Used in this Document . . . . . . . . . . . . . . 2
yuuji@0 75 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
yuuji@0 76 3. LANGUAGE Extension . . . . . . . . . . . . . . . . . . . . . 3
yuuji@0 77 3.1 LANGUAGE Extension Requirements . . . . . . . . . . . . . . . 3
yuuji@0 78 3.2 LANGUAGE Command . . . . . . . . . . . . . . . . . . . . . . 4
yuuji@0 79 3.3 LANGUAGE Response . . . . . . . . . . . . . . . . . . . . . . 6
yuuji@0 80 3.4 TRANSLATION Extension to the NAMESPACE Response . . . . . . . 6
yuuji@0 81 3.5 Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 6
yuuji@0 82 4. I18NLEVEL=1 and I18NLEVEL=2 Extensions . . . . . . . . . . . 7
yuuji@0 83 4.1 Introduction and Overview . . . . . . . . . . . . . . . . . . 8
yuuji@0 84 4.2 Requirements common to both I18NLEVEL=1 and I18NLEVEL=2 . . .
yuuji@0 85 4.3 I18NLEVEL=1 Extension Requirements . . . . . . . . . . . . . 8
yuuji@0 86 4.4 I18NLEVEL=2 Extension Requirements . . . . . . . . . . . . . 8
yuuji@0 87 4.5 Compatibility Notes
yuuji@0 88 4.6 Comparators and Charsets . . . . . . . . . . . . . . . . . . 9
yuuji@0 89 4.7 COMPARATOR Command . . . . . . . . . . . . . . . . . . . . . 9
yuuji@0 90 4.8 COMPARATOR Response . . . . . . . . . . . . . . . . . . . . . 10
yuuji@0 91 4.9 BADCOMPARATOR Response Code . . . . . . . . . . . . . . . . .
yuuji@0 92 4.10 Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . 10
yuuji@0 93 5. Other IMAP Internationalization Issues . . . . . . . . . . . 11
yuuji@0 94 5.1 UTF-8 Userids and Passwords . . . . . . . . . . . . . . . . . 11
yuuji@0 95 5.2 UTF-8 Mailbox Names . . . . . . . . . . . . . . . . . . . . . 11
yuuji@0 96 5.3 UTF-8 Domains, Addresses and Mail Headers . . . . . . . . . . 11
yuuji@0 97 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
yuuji@0 98 7. Security Considerations . . . . . . . . . . . . . . . . . . . 12
yuuji@0 99 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12
yuuji@0 100 9. Relevant Standards for i18n IMAP Implementations . . . . . . 13
yuuji@0 101 Normative References . . . . . . . . . . . . . . . . . . . . 13
yuuji@0 102 Informative References . . . . . . . . . . . . . . . . . . . 14
yuuji@0 103 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 15
yuuji@0 104 Intellectual Property and Copyright Statements . . . . . . . 16
yuuji@0 105
yuuji@0 106
yuuji@0 107 Conventions Used in This Document
yuuji@0 108
yuuji@0 109 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
yuuji@0 110 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
yuuji@0 111 document are to be interpreted as described in [RFC2119].
yuuji@0 112
yuuji@0 113 The formal syntax use the Augmented Backus-Naur Form (ABNF)
yuuji@0 114 [RFC4234] notation including the core rules defined in Appendix A.
yuuji@0 115
yuuji@0 116
yuuji@0 117
yuuji@0 118 Newman & Co Expires August 2008 FF[Page 2]
yuuji@0 119
yuuji@0 120
yuuji@0 121
yuuji@0 122
yuuji@0 123
yuuji@0 124 Internet-draft February 2008
yuuji@0 125
yuuji@0 126
yuuji@0 127 The UTF8-related productions are defined in [RFC3629].
yuuji@0 128
yuuji@0 129 In examples, "C:" and "S:" indicate lines sent by the client and
yuuji@0 130 server respectively. If a single "C:" or "S:" label applies to
yuuji@0 131 multiple lines, then the line breaks between those lines are for
yuuji@0 132 editorial clarity only and are not part of the actual protocol
yuuji@0 133 exchange.
yuuji@0 134
yuuji@0 135
yuuji@0 136 2. Introduction
yuuji@0 137
yuuji@0 138 This specification defines two IMAP4rev1 [RFC3501] extensions to
yuuji@0 139 enhance international support. These extensions can be advertised
yuuji@0 140 and implemented separately.
yuuji@0 141
yuuji@0 142 The LANGUAGE extension allows the client to request a suitable
yuuji@0 143 language for protocol error messages and in combination with the
yuuji@0 144 NAMESPACE extension [RFC2342] enables namespace translations.
yuuji@0 145
yuuji@0 146 The I18NLEVEL=2 extension allows the client to request a suitable
yuuji@0 147 collation which will modify the behavior of the base specification's
yuuji@0 148 SEARCH command as well as the SORT and THREAD extensions [SORT].
yuuji@0 149 This leverages the collation registry [RFC4790].
yuuji@0 150
yuuji@0 151
yuuji@0 152 3. LANGUAGE Extension
yuuji@0 153
yuuji@0 154 IMAP allows server responses to include human-readable text that in
yuuji@0 155 many cases needs to be presented to the user. But that text is
yuuji@0 156 limited to US-ASCII by the IMAP specification [RFC3501] in order to
yuuji@0 157 preserve backwards compatibility with deployed IMAP implementations.
yuuji@0 158 This section specifies a way for an IMAP client to negotiate which
yuuji@0 159 language the server should use when sending human-readable text.
yuuji@0 160
yuuji@0 161 The LANGUAGE extension only provides a mechanism for altering fixed
yuuji@0 162 server strings such as response text and NAMESPACE folder names.
yuuji@0 163 Assigning localized language aliases to shared mailboxes would be
yuuji@0 164 done with a separate mechanism such as the proposed METADATA
yuuji@0 165 extension (see [METADATA]).
yuuji@0 166
yuuji@0 167
yuuji@0 168 3.1 LANGUAGE Extension Requirements
yuuji@0 169
yuuji@0 170 IMAP servers that support this extension MUST list the keyword
yuuji@0 171 LANGUAGE in their CAPABILITY response as well as in the greeting
yuuji@0 172 CAPABILITY data.
yuuji@0 173
yuuji@0 174 A server that advertises this extension MUST use the language "i-
yuuji@0 175
yuuji@0 176
yuuji@0 177
yuuji@0 178 Newman & Co Expires August 2008 FF[Page 3]
yuuji@0 179
yuuji@0 180
yuuji@0 181
yuuji@0 182
yuuji@0 183
yuuji@0 184 Internet-draft February 2008
yuuji@0 185
yuuji@0 186
yuuji@0 187 default" as described in [RFC2277] as its default language until
yuuji@0 188 another supported language is negotiated by the client. A server
yuuji@0 189 MUST include "i-default" as one of its supported languages.
yuuji@0 190
yuuji@0 191 Clients and servers that support this extension MUST also support
yuuji@0 192 the NAMESPACE extension [RFC2342].
yuuji@0 193
yuuji@0 194 The LANGUAGE command is valid in all states. Clients are urged to
yuuji@0 195 issue LANGUAGE before authentication, since some servers send
yuuji@0 196 valuable user information as part of authentication (e.g. "password
yuuji@0 197 is correct, but expired"). If a security layer (such as SASL or
yuuji@0 198 TLS) is subsequently negotiated by the client, it MUST re-issue the
yuuji@0 199 LANGUAGE command in order to make sure that no previous active
yuuji@0 200 attack (if any) on LANGUAGE negotiation has effect on subsequent
yuuji@0 201 error messages. (See Section 7 for a more detailed explanation of
yuuji@0 202 the attack.)
yuuji@0 203
yuuji@0 204
yuuji@0 205
yuuji@0 206 3.2 LANGUAGE Command
yuuji@0 207
yuuji@0 208 Arguments: Optional language range arguments.
yuuji@0 209
yuuji@0 210 Response: A possible LANGUAGE response (see section 3.3).
yuuji@0 211 A possible NAMESPACE response (see section 3.4).
yuuji@0 212
yuuji@0 213 Result: OK - Command completed
yuuji@0 214 NO - Could not complete command
yuuji@0 215 BAD - arguments invalid
yuuji@0 216
yuuji@0 217 The LANGUAGE command requests that human-readable text emitted by
yuuji@0 218 the server be localized to a language matching one of the language
yuuji@0 219 range argument as described by section 2 of [RFC4647].
yuuji@0 220
yuuji@0 221 If the command succeeds, the server will return human-readable
yuuji@0 222 responses in the first supported language specified. These
yuuji@0 223 responses will be in UTF-8 [RFC3629]. The server MUST send a
yuuji@0 224 LANGUAGE response specifying the language used, and the change takes
yuuji@0 225 effect immediately after the LANGUAGE response.
yuuji@0 226
yuuji@0 227 If the command fails, the server continues to return human-readable
yuuji@0 228 responses in the language it was previously using.
yuuji@0 229
yuuji@0 230 The special "default" language range argument indicates a request to
yuuji@0 231 use a language designated as preferred by the server administrator.
yuuji@0 232 The preferred language MAY vary based on the currently active user.
yuuji@0 233
yuuji@0 234 If a language range does not match a known language tag exactly but
yuuji@0 235
yuuji@0 236
yuuji@0 237
yuuji@0 238 Newman & Co Expires August 2008 FF[Page 4]
yuuji@0 239
yuuji@0 240
yuuji@0 241
yuuji@0 242
yuuji@0 243
yuuji@0 244 Internet-draft February 2008
yuuji@0 245
yuuji@0 246
yuuji@0 247 does match a language by the rules of [RFC4647], the server MUST
yuuji@0 248 send an untagged LANGUAGE response indicating the language selected.
yuuji@0 249
yuuji@0 250 If there aren't any arguments, the server SHOULD send an untagged
yuuji@0 251 LANGUAGE response listing the languages it supports. If the server
yuuji@0 252 is unable to enumerate the list of languages it supports it MAY
yuuji@0 253 return a tagged NO response to the enumeration request.
yuuji@0 254
yuuji@0 255 < The server defaults to using English i-default responses until
yuuji@0 256 the user explicitly changes the language. >
yuuji@0 257
yuuji@0 258 C: A001 LOGIN KAREN PASSWORD
yuuji@0 259 S: A001 OK LOGIN completed
yuuji@0 260
yuuji@0 261 < Client requested MUL language, which no server supports. >
yuuji@0 262
yuuji@0 263 C: A002 LANGUAGE MUL
yuuji@0 264 S: A002 NO Unsupported language MUL
yuuji@0 265
yuuji@0 266 < A LANGUAGE command with no arguments is a request to enumerate
yuuji@0 267 the list of languages the server supports. >
yuuji@0 268
yuuji@0 269 C: A003 LANGUAGE
yuuji@0 270 S: * LANGUAGE (EN DE IT i-default)
yuuji@0 271 S: A003 OK Supported languages have been enumerated
yuuji@0 272
yuuji@0 273 C: B001 LANGUAGE
yuuji@0 274 S: B001 NO Server is unable to enumerate supported languages
yuuji@0 275
yuuji@0 276 < Once the client changes the language, all responses will be in
yuuji@0 277 that language starting after the LANGUAGE response. Note that
yuuji@0 278 this includes the NAMESPACE response. Because RFCs are in US-
yuuji@0 279 ASCII, this document uses an ASCII transcription rather than
yuuji@0 280 UTF-8 text, e.g. ue in the word "ausgefuehrt" >
yuuji@0 281
yuuji@0 282 C: C001 LANGUAGE DE
yuuji@0 283 S: * LANGUAGE (DE)
yuuji@0 284 S: * NAMESPACE (("" "/")) (("Other Users/" "/" "TRANSLATION"
yuuji@0 285 ("Andere Ben&APw-tzer/"))) (("Public Folders/" "/"
yuuji@0 286 "TRANSLATION" ("Gemeinsame Postf&AM8-cher/")))
yuuji@0 287 S: C001 OK Sprachwechsel durch LANGUAGE-Befehl ausgefuehrt
yuuji@0 288
yuuji@0 289 < If a server does not support the requested primary language,
yuuji@0 290 responses will continue to be returned in the current language
yuuji@0 291 the server is using. >
yuuji@0 292
yuuji@0 293 C: D001 LANGUAGE FR
yuuji@0 294 S: D001 NO Diese Sprache ist nicht unterstuetzt
yuuji@0 295
yuuji@0 296
yuuji@0 297
yuuji@0 298 Newman & Co Expires August 2008 FF[Page 5]
yuuji@0 299
yuuji@0 300
yuuji@0 301
yuuji@0 302
yuuji@0 303
yuuji@0 304 Internet-draft February 2008
yuuji@0 305
yuuji@0 306
yuuji@0 307 C: D002 LANGUAGE DE-IT
yuuji@0 308 S: * LANGUAGE (DE-IT)
yuuji@0 309 S: * NAMESPACE (("" "/"))(("Other Users/" "/" "TRANSLATION"
yuuji@0 310 ("Andere Ben&APw-tzer/"))) (("Public Folders/" "/"
yuuji@0 311 "TRANSLATION" ("Gemeinsame Postf&AM8-cher/")))
yuuji@0 312 S: D002 OK Sprachwechsel durch LANGUAGE-Befehl ausgefuehrt
yuuji@0 313 C: D003 LANGUAGE "default"
yuuji@0 314 S: * LANGUAGE (DE)
yuuji@0 315 S: D003 OK Sprachwechsel durch LANGUAGE-Befehl ausgefuehrt
yuuji@0 316
yuuji@0 317 < Server does not speak French, but does speak English. User
yuuji@0 318 speaks Canadian French and Canadian English. >
yuuji@0 319
yuuji@0 320 C: E001 LANGUAGE FR-CA EN-CA
yuuji@0 321 S: * LANGUAGE (EN)
yuuji@0 322 S: E001 OK Now speaking English
yuuji@0 323
yuuji@0 324
yuuji@0 325
yuuji@0 326 3.3 LANGUAGE Response
yuuji@0 327
yuuji@0 328 Contents: A list of one or more language tags.
yuuji@0 329
yuuji@0 330 The LANGUAGE response occurs as a result of a LANGUAGE command. A
yuuji@0 331 LANGUAGE response with a list containing a single language tag
yuuji@0 332 indicates that the server is now using that language. A LANGUAGE
yuuji@0 333 response with a list containing multiple language tags indicates the
yuuji@0 334 server is communicating a list of available languages to the client,
yuuji@0 335 and no change in the active language has been made.
yuuji@0 336
yuuji@0 337
yuuji@0 338 3.4 TRANSLATION Extension to the NAMESPACE Response
yuuji@0 339
yuuji@0 340 If localized representations of the namespace prefixes are available
yuuji@0 341 in the selected language, the server SHOULD include these in the
yuuji@0 342 TRANSLATION extension to the NAMESPACE response.
yuuji@0 343
yuuji@0 344 The TRANSLATION extension to the NAMESPACE response returns a single
yuuji@0 345 string, containing the modified UTF-7 [RFC3501] encoded translation
yuuji@0 346 of the namespace prefix. It is the responsibility of the client to
yuuji@0 347 convert between the namespace prefix and the translation of the
yuuji@0 348 namespace prefix when presenting mailbox names to the user.
yuuji@0 349
yuuji@0 350 In this example a server supports the IMAP4 NAMESPACE command. It
yuuji@0 351 uses no prefix to the user's Personal Namespace, a prefix of "Other
yuuji@0 352 Users" to its Other Users' Namespace and a prefix of "Public
yuuji@0 353 Folders" to its only Shared Namespace. Since a client will often
yuuji@0 354 display these prefixes to the user, the server includes a
yuuji@0 355
yuuji@0 356
yuuji@0 357
yuuji@0 358 Newman & Co Expires August 2008 FF[Page 6]
yuuji@0 359
yuuji@0 360
yuuji@0 361
yuuji@0 362
yuuji@0 363
yuuji@0 364 Internet-draft February 2008
yuuji@0 365
yuuji@0 366
yuuji@0 367 translation of them that can be presented to the user.
yuuji@0 368
yuuji@0 369 C: A001 LANGUAGE DE-IT
yuuji@0 370 S: * NAMESPACE (("" "/")) (("Other Users/" "/" "TRANSLATION"
yuuji@0 371 ("Andere Ben&APw-tzer/"))) (("Public Folders/" "/"
yuuji@0 372 "TRANSLATION" ("Gemeinsame Postf&AM8-cher/")))
yuuji@0 373 S: A001 OK LANGUAGE-Befehl ausgefuehrt
yuuji@0 374
yuuji@0 375
yuuji@0 376 3.5 Formal Syntax
yuuji@0 377
yuuji@0 378 The following syntax specification inherits ABNF [RFC4234] rules
yuuji@0 379 from IMAP4rev1 [RFC3501], IMAP4 Namespace [RFC2342], Tags for the
yuuji@0 380 Identifying Languages [RFC4646], UTF-8 [RFC3629] and Collected
yuuji@0 381 Extensions to IMAP4 ABNF [RFC4466].
yuuji@0 382
yuuji@0 383 command-any =/ language-cmd
yuuji@0 384 ; LANGUAGE command is valid in all states
yuuji@0 385
yuuji@0 386 language-cmd = "LANGUAGE" *(SP lang-range-quoted)
yuuji@0 387
yuuji@0 388 response-payload =/ language-data
yuuji@0 389
yuuji@0 390 language-data = "LANGUAGE" SP "(" lang-tag-quoted *(SP
yuuji@0 391 lang-tag-quoted) ")"
yuuji@0 392
yuuji@0 393 namespace-trans = SP DQUOTE "TRANSLATION" DQUOTE SP "(" string ")"
yuuji@0 394 ; the string is encoded in Modified UTF-7.
yuuji@0 395 ; this is a subset of the syntax permitted by
yuuji@0 396 ; the Namespace-Response-Extension rule in [RFC4466]
yuuji@0 397
yuuji@0 398 lang-range-quoted = astring
yuuji@0 399 ; Once any literal wrapper or quoting is removed, this
yuuji@0 400 ; follows the language-range rule in [RFC4647]
yuuji@0 401
yuuji@0 402 lang-tag-quoted = astring
yuuji@0 403 ; Once any literal wrapper or quoting is removed, this follows
yuuji@0 404 ; the Language-Tag rule in [RFC4646]
yuuji@0 405
yuuji@0 406 resp-text = ["[" resp-text-code "]" SP ] UTF8-TEXT-CHAR
yuuji@0 407 *(UTF8-TEXT-CHAR / "[")
yuuji@0 408 ; After the server is changed to a language other than
yuuji@0 409 ; i-default, this resp-text rule replaces the resp-text
yuuji@0 410 ; rule from [RFC3501].
yuuji@0 411
yuuji@0 412 UTF8-TEXT-CHAR = %x20-5A / %x5C-7E / UTF8-2 / UTF8-3 / UTF8-4
yuuji@0 413 ; UTF-8 excluding 7-bit control characters and "["
yuuji@0 414
yuuji@0 415
yuuji@0 416
yuuji@0 417
yuuji@0 418 Newman & Co Expires August 2008 FF[Page 7]
yuuji@0 419
yuuji@0 420
yuuji@0 421
yuuji@0 422
yuuji@0 423
yuuji@0 424 Internet-draft February 2008
yuuji@0 425
yuuji@0 426
yuuji@0 427 4. I18NLEVEL=1 and I18NLEVEL=2 Extensions
yuuji@0 428
yuuji@0 429
yuuji@0 430 4.1 Introduction and Overview
yuuji@0 431
yuuji@0 432 IMAP4rev1 [RFC3501] includes the SEARCH command which can be used to
yuuji@0 433 locate messages matching criteria including human-readable text.
yuuji@0 434 The SORT extension [SORT] to IMAP allows the client to ask the
yuuji@0 435 server to determine the order of messages based on criteria
yuuji@0 436 including human-readable text. These mechanisms require the ability
yuuji@0 437 to support non-English search and sort functions.
yuuji@0 438
yuuji@0 439 Section 4 defines two IMAP extensions for internationalizing IMAP
yuuji@0 440 SEARCH, SORT and THREAD [SORT] using the comparator framework
yuuji@0 441 [RFC4790].
yuuji@0 442
yuuji@0 443 The I18NLEVEL=1 extension updates SEARCH/SORT/THREAD to use
yuuji@0 444 i;unicode-casemap comparator, as defined in [UCM]. See Sections 4.2
yuuji@0 445 and 4.3 for more details.
yuuji@0 446
yuuji@0 447 The I18NLEVEL=2 extension is a superset of the I18NLEVEL=1
yuuji@0 448 extension. It adds to I18NLEVEL=1 extension the ability to determine
yuuji@0 449 the active comparator (see definition below) and negotiate use of
yuuji@0 450 comparators using the COMPARATOR command. It also adds the
yuuji@0 451 COMPARATOR response that indicates the active comparator and
yuuji@0 452 possibly other available comparators. See Sections 4.2 and 4.4 for
yuuji@0 453 more details.
yuuji@0 454
yuuji@0 455
yuuji@0 456 4.2 Requirements common to both I18NLEVEL=1 and I18NLEVEL=2
yuuji@0 457
yuuji@0 458 The term "default comparator" refers to the comparator which is used
yuuji@0 459 by SEARCH and SORT absent any negotiation using the COMPARATOR (see
yuuji@0 460 Section 4.7) command. The term "active comparator" refers to the
yuuji@0 461 comparator which will be used within a session e.g. by SEARCH and
yuuji@0 462 SORT. The COMPARATOR command is used to change the active
yuuji@0 463 comparator.
yuuji@0 464
yuuji@0 465 The active comparator applies to the following SEARCH keys: "BCC",
yuuji@0 466 "BODY", "CC", "FROM", "SUBJECT", "TEXT", "TO" and "HEADER". If the
yuuji@0 467 server also advertises the "SORT" extension, then the active
yuuji@0 468 comparator applies to the following SORT keys: "CC", "FROM",
yuuji@0 469 "SUBJECT" and "TO". If the server advertises THREAD=ORDEREDSUBJECT,
yuuji@0 470 then the active comparator applies to the ORDEREDSUBJECT threading
yuuji@0 471 algorithm. If the server advertises THREAD=REFERENCES, then the
yuuji@0 472 active comparator applies to the subject field comparisons done by
yuuji@0 473 REFERENCES threading algorithm. Future extensions may choose to
yuuji@0 474 apply the active comparator to their SEARCH keys.
yuuji@0 475
yuuji@0 476
yuuji@0 477
yuuji@0 478 Newman & Co Expires August 2008 FF[Page 8]
yuuji@0 479
yuuji@0 480
yuuji@0 481
yuuji@0 482
yuuji@0 483
yuuji@0 484 Internet-draft February 2008
yuuji@0 485
yuuji@0 486
yuuji@0 487 For SORT and THREAD, the pre-processing necessary to extract the
yuuji@0 488 base subject text from a Subject header occurs prior to the
yuuji@0 489 application of a comparator.
yuuji@0 490
yuuji@0 491 A server that advertises I18NLEVEL=1 or I18NLEVEL=2 extension MUST
yuuji@0 492 implement the i;unicode-casemap comparator, as defined in [UCM].
yuuji@0 493
yuuji@0 494 A server that advertises I18NLEVEL=1 or I18NLEVEL=2 extension MUST
yuuji@0 495 support UTF-8 as a SEARCH charset.
yuuji@0 496
yuuji@0 497
yuuji@0 498 4.3 I18NLEVEL=1 Extension Requirements
yuuji@0 499
yuuji@0 500 An IMAP server that satisfies all requirements specified in sections
yuuji@0 501 4.2 and 4.6 (and doesn't support/advertise any other I18NLEVEL=<n>
yuuji@0 502 extension, where n > 1) MUST list the keyword I18NLEVEL=1 in its
yuuji@0 503 CAPABILITY data once IMAP enters the authenticated state, and MAY
yuuji@0 504 list that keyword in other states.
yuuji@0 505
yuuji@0 506
yuuji@0 507
yuuji@0 508 4.4 I18NLEVEL=2 Extension Requirements
yuuji@0 509
yuuji@0 510 IMAP server that satisfies all requirements specified in sections
yuuji@0 511 4.2, 4.4, 4.6-4.10 (and doesn't support/advertise any other
yuuji@0 512 I18NLEVEL=<n> extension, where n > 2) MUST list the keyword
yuuji@0 513 I18NLEVEL=2 in its CAPABILITY data once IMAP enters the
yuuji@0 514 authenticated state, and MAY list that keyword in other states.
yuuji@0 515
yuuji@0 516 A server that advertises this extension MUST implement the
yuuji@0 517 i;unicode-casemap comparator, as defined in [UCM]. It MAY implement
yuuji@0 518 other comparators from the IANA registry established by [RFC4790].
yuuji@0 519 See also section 4.5 of this document.
yuuji@0 520
yuuji@0 521 A server that advertises this extension SHOULD use i;unicode-casemap
yuuji@0 522 as the default comparator. (Note that i;unicode-casemap is the
yuuji@0 523 default comparator for I18NLEVEL=1, but not necessarily the default
yuuji@0 524 for I18NLEVEL=2.) The selection of the default comparator MAY be
yuuji@0 525 adjustable by the server administrator, and MAY be sensitive to the
yuuji@0 526 current user. Once the IMAP connection enters authenticated state,
yuuji@0 527 the default comparator MUST remain static for the remainder of that
yuuji@0 528 connection.
yuuji@0 529
yuuji@0 530 Note that since SEARCH uses the substring operation, IMAP servers
yuuji@0 531 can only implement collations that offer the substring operation
yuuji@0 532 (see [RFC4790 section 4.2.2). Since SORT uses ordering operation
yuuji@0 533 (and by implication equality), IMAP servers which advertise the SORT
yuuji@0 534 extension can only implement collations that offer all three
yuuji@0 535
yuuji@0 536
yuuji@0 537
yuuji@0 538 Newman & Co Expires August 2008 FF[Page 9]
yuuji@0 539
yuuji@0 540
yuuji@0 541
yuuji@0 542
yuuji@0 543
yuuji@0 544 Internet-draft February 2008
yuuji@0 545
yuuji@0 546
yuuji@0 547 operations (see [RFC4790] sections 4.2.2-4).
yuuji@0 548
yuuji@0 549 If the active collation does not provide the operations needed by an
yuuji@0 550 IMAP command, the server MUST respond with a tagged BAD.
yuuji@0 551
yuuji@0 552
yuuji@0 553 4.5 Compatibility Notes
yuuji@0 554
yuuji@0 555 Several server implementations deployed prior to the publication of
yuuji@0 556 this specification comply with I18NLEVEL=1 (see section 4.3), but do
yuuji@0 557 not advertise that. Other legacy servers use the i;ascii-casemap
yuuji@0 558 (see [RFC4790]) comparator.
yuuji@0 559
yuuji@0 560 There is no good way for a client to know which comparator that a
yuuji@0 561 legacy server uses. If the client has to assume the worst, it may
yuuji@0 562 end up doing expensive local operations to obtain i;unicode-casemap
yuuji@0 563 comparisons even though the server implements it.
yuuji@0 564
yuuji@0 565 Legacy server implementations which comply with I18NLEVEL=1 should
yuuji@0 566 be updated to advertise I18NLEVEL=1. All server implementations
yuuji@0 567 should eventually be updated to comply with the I18NLEVEL=2
yuuji@0 568 extension.
yuuji@0 569
yuuji@0 570
yuuji@0 571 4.6 Comparators and Character Encodings
yuuji@0 572
yuuji@0 573 RFC 3501, section 6.4.4 says:
yuuji@0 574
yuuji@0 575 In all search keys that use strings, a message matches
yuuji@0 576 the key if the string is a substring of the field. The
yuuji@0 577 matching is case-insensitive.
yuuji@0 578
yuuji@0 579 When performing the SEARCH operation, the active comparator is
yuuji@0 580 applied instead of the case-insensitive matching specified above.
yuuji@0 581
yuuji@0 582 An IMAP server which performs collation operations (e.g., as part of
yuuji@0 583 commands such as SEARCH, SORT, THREAD) does so according to the
yuuji@0 584 following procedure:
yuuji@0 585
yuuji@0 586 (a) MIME encoding (for example see [RFC2047] for headers and
yuuji@0 587 [RFC2045] for body parts) MUST be removed in the texts being
yuuji@0 588 collated.
yuuji@0 589
yuuji@0 590 If MIME encoding removal fails for a message (e.g., a body part
yuuji@0 591 of the message has an unsupported Content-Transfer-Encoding,
yuuji@0 592 uses characters not allowed by the Content-Transfer-Encoding,
yuuji@0 593 etc.), the collation of this message is undefined by this
yuuji@0 594 specification, and is handled in an implementation-dependent
yuuji@0 595
yuuji@0 596
yuuji@0 597
yuuji@0 598 Newman & Co Expires August 2008 FF[Page 10]
yuuji@0 599
yuuji@0 600
yuuji@0 601
yuuji@0 602
yuuji@0 603
yuuji@0 604 Internet-draft February 2008
yuuji@0 605
yuuji@0 606
yuuji@0 607 manner.
yuuji@0 608
yuuji@0 609 (b) The decoded text from (a) MUST be converted to the charset
yuuji@0 610 expected by the active comparator.
yuuji@0 611
yuuji@0 612 (c) For the substring operation:
yuuji@0 613 If step (b) failed (e.g., the text is in an unknown charset,
yuuji@0 614 contains a sequence which is not valid according in that
yuuji@0 615 charset, etc.), the original decoded text from (a) (i.e.,
yuuji@0 616 before the charset conversion attempt) is collated using the
yuuji@0 617 i;octet comparator (see [RFC4790]).
yuuji@0 618
yuuji@0 619 If step (b) was successful, the converted text from (b) is
yuuji@0 620 collated according to the active comparator.
yuuji@0 621
yuuji@0 622
yuuji@0 623 For the ordering operation:
yuuji@0 624
yuuji@0 625 All strings that were successfully converted by step (b) are
yuuji@0 626 separated from all strings that failed step (b). Strings in
yuuji@0 627 each group are collated independently. All strings successfully
yuuji@0 628 converted by step (b) are then validated by the active
yuuji@0 629 comparator. Strings that pass validation are collated using the
yuuji@0 630 active comparator. All strings that either fail step (b) or fail
yuuji@0 631 the active collation's validity operation are collated (after
yuuji@0 632 applying step (a)) using the i;octet comparator (see [RFC4790]).
yuuji@0 633 The resulting sorted list is produced by appending all collated
yuuji@0 634 "failed" strings after all strings collated using the active
yuuji@0 635 comparator.
yuuji@0 636
yuuji@0 637
yuuji@0 638 Example: The following example demonstrates ordering of 4
yuuji@0 639 different strings using i;unicode-casemap [UCM] comparator.
yuuji@0 640 Strings are represented using hexadecimal notation used by
yuuji@0 641 ABNF [RFC4234].
yuuji@0 642
yuuji@0 643 (1) %xD0 %xC0 %xD0 %xBD %xD0 %xB4 %xD1 %x80 %xD0 %xB5
yuuji@0 644 %xD0 %xB9 (labeled with charset=UTF-8)
yuuji@0 645 (2) %xD1 %x81 %xD0 %x95 %xD0 %xA0 %xD0 %x93 %xD0 %x95
yuuji@0 646 %xD0 %x99 (labeled with charset=UTF-8)
yuuji@0 647 (3) %xD0 %x92 %xD0 %xB0 %xD1 %x81 %xD0 %xB8 %xD0 %xBB
yuuji@0 648 %xD0 %xB8 %xFF %xB9 (labeled with charset=UTF-8)
yuuji@0 649 (4) %xE1 %xCC %xC5 %xCB %xD3 %xC5 %xCA (labeled with
yuuji@0 650 charset=KOI8-R)
yuuji@0 651
yuuji@0 652 Step (b) will convert string # 4 to the following
yuuji@0 653 sequence of octets (in UTF-8):
yuuji@0 654
yuuji@0 655
yuuji@0 656
yuuji@0 657
yuuji@0 658 Newman & Co Expires August 2008 FF[Page 11]
yuuji@0 659
yuuji@0 660
yuuji@0 661
yuuji@0 662
yuuji@0 663
yuuji@0 664 Internet-draft February 2008
yuuji@0 665
yuuji@0 666
yuuji@0 667 %xD0 %x90 %xD0 %xBB %xD0 %xB5 %xD0 %xBA %xD1 %x81 %xD0
yuuji@0 668 %xB5 %xD0 %xB9
yuuji@0 669
yuuji@0 670 and will reject strings (1) and (3), as they contain
yuuji@0 671 octets not allowed in charset=UTF-8.
yuuji@0 672 After that, using the i;unicode-casemap collation,
yuuji@0 673 string (4) will collate before string (2). Using the
yuuji@0 674 i;octet collation on the original strings, string (3)
yuuji@0 675 will collate before string (1). So the final ordering
yuuji@0 676 is as follows: (4) (2) (3) (1).
yuuji@0 677
yuuji@0 678 If the substring operation (e.g., IMAP SEARCH) of the active
yuuji@0 679 comparator returns the "undefined" result (see section 4.2.3 of
yuuji@0 680 [RFC4790]) for either the text specified in the SEARCH command or
yuuji@0 681 the message text, then the operation is repeated on the result of
yuuji@0 682 step (a) using the i;octet comparator.
yuuji@0 683
yuuji@0 684 The ordering operation (e.g., IMAP SORT and THREAD) SHOULD collate
yuuji@0 685 the following together: strings encoded using unknown or invalid
yuuji@0 686 character encodings, strings in unrecognized charsets, and invalid
yuuji@0 687 input (as defined by the active collation).
yuuji@0 688
yuuji@0 689
yuuji@0 690
yuuji@0 691 4.7 COMPARATOR Command
yuuji@0 692
yuuji@0 693 Arguments: Optional comparator order arguments.
yuuji@0 694
yuuji@0 695 Response: A possible COMPARATOR response (see Section 4.8).
yuuji@0 696
yuuji@0 697 Result: OK - Command completed
yuuji@0 698 NO - No matching comparator found
yuuji@0 699 BAD - arguments invalid
yuuji@0 700
yuuji@0 701 The COMPARATOR command is valid in authenticated and selected
yuuji@0 702 states.
yuuji@0 703
yuuji@0 704 The COMPARATOR command is used to determine or change the active
yuuji@0 705 comparator. When issued with no arguments, it results in a
yuuji@0 706 COMPARATOR response indicating the currently active comparator.
yuuji@0 707
yuuji@0 708 When issued with one or more comparator argument, it changes the
yuuji@0 709 active comparator as directed. (If more than one installed
yuuji@0 710 comparator is matched by an argument, the first argument wins.) The
yuuji@0 711 COMPARATOR response lists all matching comparators if more than one
yuuji@0 712 matches the specified patterns.
yuuji@0 713
yuuji@0 714 The argument "default" refers to the server's default comparator.
yuuji@0 715
yuuji@0 716
yuuji@0 717
yuuji@0 718 Newman & Co Expires August 2008 FF[Page 12]
yuuji@0 719
yuuji@0 720
yuuji@0 721
yuuji@0 722
yuuji@0 723
yuuji@0 724 Internet-draft February 2008
yuuji@0 725
yuuji@0 726
yuuji@0 727 Otherwise each argument is an collation specification as defined in
yuuji@0 728 the Internet Application Protocol Comparator Registry [RFC4790].
yuuji@0 729
yuuji@0 730 < The client requests activating a Czech comparator if possible,
yuuji@0 731 or else a generic international comparator which it considers
yuuji@0 732 suitable for Czech. The server picks the first supported
yuuji@0 733 comparator. >
yuuji@0 734
yuuji@0 735 C: A001 COMPARATOR "cz;*" i;basic
yuuji@0 736 S: * COMPARATOR i;basic
yuuji@0 737 S: A001 OK Will use i;basic for collation
yuuji@0 738
yuuji@0 739
yuuji@0 740 4.8 COMPARATOR Response
yuuji@0 741
yuuji@0 742 Contents: The active comparator.
yuuji@0 743 An optional list of available matching comparators
yuuji@0 744
yuuji@0 745 The COMPARATOR response occurs as a result of a COMPARATOR command.
yuuji@0 746 The first argument in the comparator response is the name of the
yuuji@0 747 active comparator. The second argument is a list of comparators
yuuji@0 748 which matched any of the arguments to the COMPARATOR command and is
yuuji@0 749 present only if more than one match is found.
yuuji@0 750
yuuji@0 751
yuuji@0 752 4.9 BADCOMPARATOR response code
yuuji@0 753
yuuji@0 754 This response code SHOULD be returned as a result of server failing
yuuji@0 755 an IMAP command (returning NO), when the server knows that none of
yuuji@0 756 the specified comparators match the requested comparator(s).
yuuji@0 757
yuuji@0 758
yuuji@0 759 4.10 Formal Syntax
yuuji@0 760
yuuji@0 761 The following syntax specification inherits ABNF [RFC4234] rules
yuuji@0 762 from IMAP4rev1 [RFC3501], and Internet Application Protocol
yuuji@0 763 Comparator Registry [RFC4790].
yuuji@0 764
yuuji@0 765 command-auth =/ comparator-cmd
yuuji@0 766
yuuji@0 767 resp-text-code =/ "BADCOMPARATOR"
yuuji@0 768
yuuji@0 769 comparator-cmd = "COMPARATOR" *(SP comp-order-quoted)
yuuji@0 770
yuuji@0 771 response-payload =/ comparator-data
yuuji@0 772
yuuji@0 773 comparator-data = "COMPARATOR" SP comp-sel-quoted [SP "("
yuuji@0 774 comp-id-quoted *(SP comp-id-quoted) ")"]
yuuji@0 775
yuuji@0 776
yuuji@0 777
yuuji@0 778 Newman & Co Expires August 2008 FF[Page 13]
yuuji@0 779
yuuji@0 780
yuuji@0 781
yuuji@0 782
yuuji@0 783
yuuji@0 784 Internet-draft February 2008
yuuji@0 785
yuuji@0 786
yuuji@0 787 comp-id-quoted = astring
yuuji@0 788 ; Once any literal wrapper or quoting is removed, this
yuuji@0 789 ; follows the collation-id rule from [RFC4790]
yuuji@0 790
yuuji@0 791 comp-order-quoted = astring
yuuji@0 792 ; Once any literal wrapper or quoting is removed, this
yuuji@0 793 ; follows the collation-order rule from [RFC4790]
yuuji@0 794
yuuji@0 795 comp-sel-quoted = astring
yuuji@0 796 ; Once any literal wrapper or quoting is removed, this
yuuji@0 797 ; follows the collation-selected rule from [RFC4790]
yuuji@0 798
yuuji@0 799
yuuji@0 800 5. Other IMAP Internationalization Issues
yuuji@0 801
yuuji@0 802 The following sections provide an overview of various other IMAP
yuuji@0 803 internationalization issues. These issues are not resolved by this
yuuji@0 804 specification, but could be resolved by other standards work, such
yuuji@0 805 as that being done by the EAI group (see [IMAP-EAI]).
yuuji@0 806
yuuji@0 807
yuuji@0 808 5.1 Unicode Userids and Passwords
yuuji@0 809
yuuji@0 810 IMAP4rev1 currently restricts the userid and password fields of the
yuuji@0 811 LOGIN command to US-ASCII. The "userid" and "password" fields of the
yuuji@0 812 IMAP LOGIN command are restricted to US-ASCII only until a future
yuuji@0 813 standards track RFC states otherwise. Servers are encouraged to
yuuji@0 814 validate both fields to make sure they conform to the formal syntax
yuuji@0 815 of UTF-8 and to reject the LOGIN command if that syntax is violated.
yuuji@0 816 Servers MAY reject the use of any 8-bit in the "userid" or
yuuji@0 817 "password" field.
yuuji@0 818
yuuji@0 819 When AUTHENTICATE is used, some servers may support userids and
yuuji@0 820 passwords in Unicode [RFC3490] since SASL (see [RFC4422]) allows
yuuji@0 821 that. However, such userids cannot be used as part of email
yuuji@0 822 addresses.
yuuji@0 823
yuuji@0 824
yuuji@0 825 5.2 UTF-8 Mailbox Names
yuuji@0 826
yuuji@0 827 The modified UTF-7 mailbox naming convention described in section
yuuji@0 828 5.1.3 of RFC 3501 is best viewed as an transition from the status
yuuji@0 829 quo in 1996 when modified UTF-7 was first specified. At that time,
yuuji@0 830 there was widespread unofficial use of local character sets such as
yuuji@0 831 ISO-8859-1 and Shift-JIS for non-ASCII mailbox names, with resultant
yuuji@0 832 non-interoperability.
yuuji@0 833
yuuji@0 834 The requirements in section 5.1 of RFC 3501 are very important if
yuuji@0 835
yuuji@0 836
yuuji@0 837
yuuji@0 838 Newman & Co Expires August 2008 FF[Page 14]
yuuji@0 839
yuuji@0 840
yuuji@0 841
yuuji@0 842
yuuji@0 843
yuuji@0 844 Internet-draft February 2008
yuuji@0 845
yuuji@0 846
yuuji@0 847 we're ever going to be able to deploy UTF-8 mailbox names. Servers
yuuji@0 848 are encouraged to enforce them.
yuuji@0 849
yuuji@0 850
yuuji@0 851 5.3 UTF-8 Domains, Addresses and Mail Headers
yuuji@0 852
yuuji@0 853 There is now an IETF standard for Internationalizing Domain Names in
yuuji@0 854 Applications [RFC3490]. While IMAP clients are free to support this
yuuji@0 855 standard, an argument can be made that it would be helpful to simple
yuuji@0 856 clients if the IMAP server could perform this conversion (the same
yuuji@0 857 argument would apply to MIME header encoding [RFC2047]). However,
yuuji@0 858 it would be unwise to move forward with such work until the work in
yuuji@0 859 progress to define the format of international email addresses is
yuuji@0 860 complete.
yuuji@0 861
yuuji@0 862
yuuji@0 863 6. IANA Considerations
yuuji@0 864
yuuji@0 865 The IANA is requested to add LANGUAGE, I18NLEVEL=1 and I18NLEVEL=2
yuuji@0 866 to the IMAP4 Capabilities Registry. [Note to IANA:
yuuji@0 867 http://www.iana.org/assignments/imap4-capabilities]
yuuji@0 868
yuuji@0 869
yuuji@0 870 7. Security Considerations
yuuji@0 871
yuuji@0 872 The LANGUAGE extension makes a new command available in "Not
yuuji@0 873 Authenticated" state in IMAP. Some IMAP implementations run with
yuuji@0 874 root privilege when the server is in "Not Authenticated" state and
yuuji@0 875 do not revoke that privilege until after authentication is complete.
yuuji@0 876 Such implementations are particularly vulnerable to buffer overflow
yuuji@0 877 security errors at this stage and need to implement parsing of this
yuuji@0 878 command with extra care.
yuuji@0 879
yuuji@0 880 A LANGUAGE command issued prior to activation of a security layer is
yuuji@0 881 subject to an active attack which suppresses or modifies the
yuuji@0 882 negotiation and thus makes STARTTLS or authentication error messages
yuuji@0 883 more difficult to interpret. This is not a new attack as the error
yuuji@0 884 messages themselves are subject to active attack. Clients MUST re-
yuuji@0 885 issue the LANGUAGE command once a security layer is active, so this
yuuji@0 886 does not impact subsequent protocol operations.
yuuji@0 887
yuuji@0 888 LANGUAGE, I18NLEVEL=1 and I18NLEVEL=2 extensions use the UTF-8
yuuji@0 889 charset, thus the security considerations for UTF-8 [RFC3629] are
yuuji@0 890 relevent. However, neither uses UTF-8 for identifiers so the most
yuuji@0 891 serious concerns do not apply.
yuuji@0 892
yuuji@0 893
yuuji@0 894 8. Acknowledgements
yuuji@0 895
yuuji@0 896
yuuji@0 897
yuuji@0 898 Newman & Co Expires August 2008 FF[Page 15]
yuuji@0 899
yuuji@0 900
yuuji@0 901
yuuji@0 902
yuuji@0 903
yuuji@0 904 Internet-draft February 2008
yuuji@0 905
yuuji@0 906
yuuji@0 907 The LANGUAGE extension is based on a previous Internet draft by Mike
yuuji@0 908 Gahrns, a substantial portion of the text in that section was
yuuji@0 909 written by him. Many people have participated in discussions about
yuuji@0 910 an IMAP Language extension in the various fora of the IETF and
yuuji@0 911 Internet working groups, so any list of contributors is bound to be
yuuji@0 912 incomplete. However, the authors would like to thank Andrew McCown
yuuji@0 913 for early work on the original proposal, John Myers for suggestions
yuuji@0 914 regarding the namespace issue, along with Jutta Degener, Mark
yuuji@0 915 Crispin, Mark Pustilnik, Larry Osterman, Cyrus Daboo, Martin Duerst,
yuuji@0 916 Timo Sirainen, Ben Campbell and Magnus Nystrom for their many
yuuji@0 917 suggestions that have been incorporated into this document.
yuuji@0 918
yuuji@0 919 Initial discussion of the I18NLEVEL=2 extension involved input from
yuuji@0 920 Mark Crispin and other participants of the IMAP Extensions WG.
yuuji@0 921
yuuji@0 922
yuuji@0 923 9. Relevant Standards for i18n IMAP Implementations
yuuji@0 924
yuuji@0 925 This is a non-normative list of standards to consider when
yuuji@0 926 implementing i18n aware IMAP software.
yuuji@0 927
yuuji@0 928 o The LANGUAGE and I18NLEVEL=2 extensions to IMAP (this
yuuji@0 929 specification).
yuuji@0 930 o The 8-bit rules for mailbox naming in section 5.1 of RFC 3501.
yuuji@0 931 o The Mailbox International Naming Convention in section 5.1.3 of
yuuji@0 932 RFC 3501.
yuuji@0 933 o MIME [RFC2045] for message bodies.
yuuji@0 934 o MIME header encoding [RFC2047] for message headers.
yuuji@0 935 o The IETF EAI working group.
yuuji@0 936 o MIME Parameter Value and Encoded Word Extensions [RFC2231] for
yuuji@0 937 filenames. Quality IMAP server implementations will
yuuji@0 938 automatically combine multipart parameters when generating the
yuuji@0 939 BODYSTRUCTURE. There is also some deployed non-standard use of
yuuji@0 940 MIME header encoding inside double-quotes for filenames.
yuuji@0 941 o IDNA [RFC3490] and punycode [RFC3492] for domain names
yuuji@0 942 (currently only relevant to IMAP clients).
yuuji@0 943 o The UTF-8 charset [RFC3629].
yuuji@0 944 o The IETF policy on Character Sets and Languages [RFC2277].
yuuji@0 945
yuuji@0 946
yuuji@0 947 Normative References
yuuji@0 948
yuuji@0 949 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
yuuji@0 950 Requirement Levels", BCP 14, RFC 2119, March 1997.
yuuji@0 951
yuuji@0 952 [RFC2277] Alvestrand, "IETF Policy on Character Sets and
yuuji@0 953 Languages", BCP 18, RFC 2277, January 1998.
yuuji@0 954
yuuji@0 955
yuuji@0 956
yuuji@0 957
yuuji@0 958 Newman & Co Expires August 2008 FF[Page 16]
yuuji@0 959
yuuji@0 960
yuuji@0 961
yuuji@0 962
yuuji@0 963
yuuji@0 964 Internet-draft February 2008
yuuji@0 965
yuuji@0 966
yuuji@0 967 [RFC2342] Gahrns, Newman, "IMAP4 Namespace", RFC 2342, May 1998.
yuuji@0 968
yuuji@0 969 [RFC3501] Crispin, "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
yuuji@0 970 4rev1", RFC 3501, March 2003.
yuuji@0 971
yuuji@0 972 [RFC3629] Yergeau, "UTF-8, a transformation format of ISO 10646",
yuuji@0 973 STD 63, RFC 3629, November 2003.
yuuji@0 974
yuuji@0 975 [RFC4234] Crocker, Overell, "Augmented BNF for Syntax
yuuji@0 976 Specifications: ABNF", RFC 4234, Brandenburg
yuuji@0 977 Internetworking, Demon Internet Ltd, October 2005.
yuuji@0 978
yuuji@0 979 [RFC4422] Melnikov, Zeilenga, "Simple Authentication and Security
yuuji@0 980 Layer (SASL)", RFC 4422, June 2006.
yuuji@0 981
yuuji@0 982 [RFC4466] Melnikov, Daboo, "Collected Extensions to IMAP4 ABNF",
yuuji@0 983 RFC 4466, Isode Ltd., April 2006.
yuuji@0 984
yuuji@0 985 [RFC4646] Philips, Davis, "Tags for Identifying Languages", BCP 47,
yuuji@0 986 RFC 4646, September 2006.
yuuji@0 987
yuuji@0 988 [RFC4647] Philips, Davis, "Matching of Language Tags", BCP 47, RFC
yuuji@0 989 4647, September 2006.
yuuji@0 990
yuuji@0 991 [RFC4790] Newman, Duerst, Gulbrandsen, "Internet Application
yuuji@0 992 Protocol Comparator Registry", RFC 4790, February 2007.
yuuji@0 993
yuuji@0 994 [SORT] Crispin, M. and K. Murchison, "INTERNET MESSAGE ACCESS
yuuji@0 995 PROTOCOL - SORT AND THREAD EXTENSION", draft-ietf-
yuuji@0 996 imapext-sort-19 (work in progress), November 2006.
yuuji@0 997
yuuji@0 998 [UCM] Crispin, "i;unicode-casemap - Simple Unicode Collation
yuuji@0 999 Algorithm", RFC 5051, October 2007.
yuuji@0 1000
yuuji@0 1001 [RFC2045] Freed, Borenstein, "Multipurpose Internet Mail Extensions
yuuji@0 1002 (MIME) Part One: Format of Internet Message Bodies", RFC
yuuji@0 1003 2045, November 1996.
yuuji@0 1004
yuuji@0 1005 [RFC2047] Moore, "MIME (Multipurpose Internet Mail Extensions) Part
yuuji@0 1006 Three: Message Header Extensions for Non-ASCII Text", RFC
yuuji@0 1007 2047, November 1996.
yuuji@0 1008
yuuji@0 1009
yuuji@0 1010 Informative References
yuuji@0 1011
yuuji@0 1012
yuuji@0 1013 [RFC2231] Freed, Moore, "MIME Parameter Value and Encoded Word
yuuji@0 1014 Extensions: Character Sets, Languages, and
yuuji@0 1015
yuuji@0 1016
yuuji@0 1017
yuuji@0 1018 Newman & Co Expires August 2008 FF[Page 17]
yuuji@0 1019
yuuji@0 1020
yuuji@0 1021
yuuji@0 1022
yuuji@0 1023
yuuji@0 1024 Internet-draft February 2008
yuuji@0 1025
yuuji@0 1026
yuuji@0 1027 Continuations", RFC 2231, November 1997.
yuuji@0 1028
yuuji@0 1029 [RFC3490] Faltstrom, Hoffman, Costello, "Internationalizing Domain
yuuji@0 1030 Names in Applications (IDNA)", RFC 3490, March 2003.
yuuji@0 1031
yuuji@0 1032 [RFC3492] Costello, "Punycode: A Bootstring encoding of Unicode for
yuuji@0 1033 Internationalized Domain Names in Applications (IDNA)",
yuuji@0 1034 RFC 3492, March 2003.
yuuji@0 1035
yuuji@0 1036 [METADATA] Daboo, C., "IMAP METADATA Extension", draft-daboo-imap-
yuuji@0 1037 annotatemore-12 (work in progress), December 2007.
yuuji@0 1038
yuuji@0 1039 [IMAP-EAI] Resnick, Newman, "IMAP Support for UTF-8", draft-ietf-
yuuji@0 1040 eai-imap-utf8 (work in progress), May 2006.
yuuji@0 1041
yuuji@0 1042
yuuji@0 1043
yuuji@0 1044 Authors' Addresses
yuuji@0 1045
yuuji@0 1046 Chris Newman
yuuji@0 1047 Sun Microsystems
yuuji@0 1048 3401 Centrelake Dr., Suite 410
yuuji@0 1049 Ontario, CA 91761
yuuji@0 1050 US
yuuji@0 1051
yuuji@0 1052 Email: chris.newman@sun.com
yuuji@0 1053
yuuji@0 1054
yuuji@0 1055 Arnt Gulbrandsen
yuuji@0 1056 Oryx Mail Systems GmbH
yuuji@0 1057 Schweppermannstr. 8
yuuji@0 1058 D-81671 Muenchen
yuuji@0 1059 Germany
yuuji@0 1060
yuuji@0 1061 Email: arnt@oryx.com
yuuji@0 1062
yuuji@0 1063 Fax: +49 89 4502 9758
yuuji@0 1064
yuuji@0 1065
yuuji@0 1066 Alexey Melnikov
yuuji@0 1067 Isode Limited
yuuji@0 1068 5 Castle Business Village, 36 Station Road,
yuuji@0 1069 Hampton, Middlesex, TW12 2BX, UK
yuuji@0 1070
yuuji@0 1071 Email: Alexey.Melnikov@isode.com
yuuji@0 1072
yuuji@0 1073
yuuji@0 1074
yuuji@0 1075
yuuji@0 1076
yuuji@0 1077
yuuji@0 1078 Newman & Co Expires August 2008 FF[Page 18]
yuuji@0 1079
yuuji@0 1080
yuuji@0 1081
yuuji@0 1082
yuuji@0 1083
yuuji@0 1084 Internet-draft February 2008
yuuji@0 1085
yuuji@0 1086
yuuji@0 1087 Intellectual Property Statement
yuuji@0 1088
yuuji@0 1089 The IETF takes no position regarding the validity or scope of any
yuuji@0 1090 Intellectual Property Rights or other rights that might be claimed to
yuuji@0 1091 pertain to the implementation or use of the technology described in
yuuji@0 1092 this document or the extent to which any license under such rights
yuuji@0 1093 might or might not be available; nor does it represent that it has
yuuji@0 1094 made any independent effort to identify any such rights. Information
yuuji@0 1095 on the procedures with respect to rights in RFC documents can be found
yuuji@0 1096 in BCP 78 and BCP 79.
yuuji@0 1097
yuuji@0 1098 Copies of IPR disclosures made to the IETF Secretariat and any
yuuji@0 1099 assurances of licenses to be made available, or the result of an
yuuji@0 1100 attempt made to obtain a general license or permission for the use of
yuuji@0 1101 such proprietary rights by implementers or users of this specification
yuuji@0 1102 can be obtained from the IETF on-line IPR repository at
yuuji@0 1103 http://www.ietf.org/ipr.
yuuji@0 1104
yuuji@0 1105 The IETF invites any interested party to bring to its attention any
yuuji@0 1106 copyrights, patents or patent applications, or other proprietary
yuuji@0 1107 rights that may cover technology that may be required to implement
yuuji@0 1108 this standard. Please address the information to the IETF at
yuuji@0 1109 ietf-ipr@ietf.org.
yuuji@0 1110
yuuji@0 1111
yuuji@0 1112 Full Copyright Statement
yuuji@0 1113
yuuji@0 1114 Copyright (C) The IETF Trust (2008). This document is subject to
yuuji@0 1115 the rights, licenses and restrictions contained in BCP 78, and
yuuji@0 1116 except as set forth therein, the authors retain all their rights.
yuuji@0 1117
yuuji@0 1118 This document and the information contained herein are provided on
yuuji@0 1119 an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
yuuji@0 1120 REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE
yuuji@0 1121 IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL
yuuji@0 1122 WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
yuuji@0 1123 WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE
yuuji@0 1124 ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS
yuuji@0 1125 FOR A PARTICULAR PURPOSE.
yuuji@0 1126
yuuji@0 1127
yuuji@0 1128 Acknowledgment
yuuji@0 1129
yuuji@0 1130 Funding for the RFC Editor function is currently provided by the
yuuji@0 1131 Internet Society.
yuuji@0 1132
yuuji@0 1133
yuuji@0 1134
yuuji@0 1135
yuuji@0 1136
yuuji@0 1137
yuuji@0 1138 Newman & Co Expires August 2008 FF[Page 19]
yuuji@0 1139
yuuji@0 1140

UW-IMAP'd extensions by yuuji