imapext-2007

annotate docs/rfc/rfc2062.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 M. Crispin
yuuji@0 8 Request for Comments: 2062 University of Washington
yuuji@0 9 Category: Informational December 1996
yuuji@0 10
yuuji@0 11
yuuji@0 12 Internet Message Access Protocol - Obsolete Syntax
yuuji@0 13
yuuji@0 14 Status of this Memo
yuuji@0 15
yuuji@0 16 This memo provides information for the Internet community. This memo
yuuji@0 17 does not specify an Internet standard of any kind. Distribution of
yuuji@0 18 this memo is unlimited.
yuuji@0 19
yuuji@0 20 Abstract
yuuji@0 21
yuuji@0 22 This document describes obsolete syntax which may be encountered by
yuuji@0 23 IMAP4 implementations which deal with older versions of the Internet
yuuji@0 24 Mail Access Protocol. IMAP4 implementations MAY implement this
yuuji@0 25 syntax in order to maximize interoperability with older
yuuji@0 26 implementations.
yuuji@0 27
yuuji@0 28 This document repeats information from earlier documents, most
yuuji@0 29 notably RFC 1176 and RFC 1730.
yuuji@0 30
yuuji@0 31 Obsolete Commands and Fetch Data Items
yuuji@0 32
yuuji@0 33 The following commands are OBSOLETE. It is NOT required to support
yuuji@0 34 any of these commands or fetch data items in new server
yuuji@0 35 implementations. These commands are documented here for the benefit
yuuji@0 36 of implementors who may wish to support them for compatibility with
yuuji@0 37 old client implementations.
yuuji@0 38
yuuji@0 39 The section headings of these commands are intended to correspond
yuuji@0 40 with where they would be located in the main document if they were
yuuji@0 41 not obsoleted.
yuuji@0 42
yuuji@0 43 6.3.OBS.1. FIND ALL.MAILBOXES Command
yuuji@0 44
yuuji@0 45 Arguments: mailbox name with possible wildcards
yuuji@0 46
yuuji@0 47 Data: untagged responses: MAILBOX
yuuji@0 48
yuuji@0 49 Result: OK - find completed
yuuji@0 50 NO - find failure: can't list that name
yuuji@0 51 BAD - command unknown or arguments invalid
yuuji@0 52
yuuji@0 53
yuuji@0 54
yuuji@0 55
yuuji@0 56
yuuji@0 57
yuuji@0 58 Crispin Informational [Page 1]
yuuji@0 59
yuuji@0 60 RFC 2062 IMAP4 Obsolete December 1996
yuuji@0 61
yuuji@0 62
yuuji@0 63 The FIND ALL.MAILBOXES command returns a subset of names from the
yuuji@0 64 complete set of all names available to the user. It returns zero
yuuji@0 65 or more untagged MAILBOX replies. The mailbox argument to FIND
yuuji@0 66 ALL.MAILBOXES is similar to that for LIST with an empty reference,
yuuji@0 67 except that the characters "%" and "?" match a single character.
yuuji@0 68
yuuji@0 69 Example: C: A002 FIND ALL.MAILBOXES *
yuuji@0 70 S: * MAILBOX blurdybloop
yuuji@0 71 S: * MAILBOX INBOX
yuuji@0 72 S: A002 OK FIND ALL.MAILBOXES completed
yuuji@0 73
yuuji@0 74 6.3.OBS.2. FIND MAILBOXES Command
yuuji@0 75
yuuji@0 76 Arguments: mailbox name with possible wildcards
yuuji@0 77
yuuji@0 78 Data: untagged responses: MAILBOX
yuuji@0 79
yuuji@0 80 Result: OK - find completed
yuuji@0 81 NO - find failure: can't list that name
yuuji@0 82 BAD - command unknown or arguments invalid
yuuji@0 83
yuuji@0 84 The FIND MAILBOXES command returns a subset of names from the set
yuuji@0 85 of names that the user has declared as being "active" or
yuuji@0 86 "subscribed". It returns zero or more untagged MAILBOX replies.
yuuji@0 87 The mailbox argument to FIND MAILBOXES is similar to that for LSUB
yuuji@0 88 with an empty reference, except that the characters "%" and "?"
yuuji@0 89 match a single character.
yuuji@0 90
yuuji@0 91 Example: C: A002 FIND MAILBOXES *
yuuji@0 92 S: * MAILBOX blurdybloop
yuuji@0 93 S: * MAILBOX INBOX
yuuji@0 94 S: A002 OK FIND MAILBOXES completed
yuuji@0 95
yuuji@0 96 6.3.OBS.3. SUBSCRIBE MAILBOX Command
yuuji@0 97
yuuji@0 98 Arguments: mailbox name
yuuji@0 99
yuuji@0 100 Data: no specific data for this command
yuuji@0 101
yuuji@0 102 Result: OK - subscribe completed
yuuji@0 103 NO - subscribe failure: can't subscribe to that name
yuuji@0 104 BAD - command unknown or arguments invalid
yuuji@0 105
yuuji@0 106 The SUBSCRIBE MAILBOX command is identical in effect to the
yuuji@0 107 SUBSCRIBE command. A server which implements this command must be
yuuji@0 108 able to distinguish between a SUBSCRIBE MAILBOX command and a
yuuji@0 109 SUBSCRIBE command with a mailbox name argument of "MAILBOX".
yuuji@0 110
yuuji@0 111
yuuji@0 112
yuuji@0 113
yuuji@0 114 Crispin Informational [Page 2]
yuuji@0 115
yuuji@0 116 RFC 2062 IMAP4 Obsolete December 1996
yuuji@0 117
yuuji@0 118
yuuji@0 119 Example: C: A002 SUBSCRIBE MAILBOX #news.comp.mail.mime
yuuji@0 120 S: A002 OK SUBSCRIBE MAILBOX to #news.comp.mail.mime
yuuji@0 121 completed
yuuji@0 122 C: A003 SUBSCRIBE MAILBOX
yuuji@0 123 S: A003 OK SUBSCRIBE to MAILBOX completed
yuuji@0 124
yuuji@0 125
yuuji@0 126 6.3.OBS.4. UNSUBSCRIBE MAILBOX Command
yuuji@0 127
yuuji@0 128 Arguments: mailbox name
yuuji@0 129
yuuji@0 130 Data: no specific data for this command
yuuji@0 131
yuuji@0 132 Result: OK - unsubscribe completed
yuuji@0 133 NO - unsubscribe failure: can't unsubscribe that name
yuuji@0 134 BAD - command unknown or arguments invalid
yuuji@0 135
yuuji@0 136 The UNSUBSCRIBE MAILBOX command is identical in effect to the
yuuji@0 137 UNSUBSCRIBE command. A server which implements this command must
yuuji@0 138 be able to distinguish between a UNSUBSCRIBE MAILBOX command and
yuuji@0 139 an UNSUBSCRIBE command with a mailbox name argument of "MAILBOX".
yuuji@0 140
yuuji@0 141 Example: C: A002 UNSUBSCRIBE MAILBOX #news.comp.mail.mime
yuuji@0 142 S: A002 OK UNSUBSCRIBE MAILBOX from #news.comp.mail.mime
yuuji@0 143 completed
yuuji@0 144 C: A003 UNSUBSCRIBE MAILBOX
yuuji@0 145 S: A003 OK UNSUBSCRIBE from MAILBOX completed
yuuji@0 146
yuuji@0 147 6.4.OBS.1 PARTIAL Command
yuuji@0 148
yuuji@0 149 Arguments: message sequence number
yuuji@0 150 message data item name
yuuji@0 151 position of first octet
yuuji@0 152 number of octets
yuuji@0 153
yuuji@0 154 Data: untagged responses: FETCH
yuuji@0 155
yuuji@0 156 Result: OK - partial completed
yuuji@0 157 NO - partial error: can't fetch that data
yuuji@0 158 BAD - command unknown or arguments invalid
yuuji@0 159
yuuji@0 160 The PARTIAL command is equivalent to the associated FETCH command,
yuuji@0 161 with the added functionality that only the specified number of
yuuji@0 162 octets, beginning at the specified starting octet, are returned.
yuuji@0 163 Only a single message can be fetched at a time. The first octet
yuuji@0 164 of a message, and hence the minimum for the starting octet, is
yuuji@0 165 octet 1.
yuuji@0 166
yuuji@0 167
yuuji@0 168
yuuji@0 169
yuuji@0 170 Crispin Informational [Page 3]
yuuji@0 171
yuuji@0 172 RFC 2062 IMAP4 Obsolete December 1996
yuuji@0 173
yuuji@0 174
yuuji@0 175 The following FETCH items are valid data for PARTIAL: RFC822,
yuuji@0 176 RFC822.HEADER, RFC822.TEXT, BODY[<section>], as well as any .PEEK
yuuji@0 177 forms of these.
yuuji@0 178
yuuji@0 179 Any partial fetch that attempts to read beyond the end of the text
yuuji@0 180 is truncated as appropriate. If the starting octet is beyond the
yuuji@0 181 end of the text, an empty string is returned.
yuuji@0 182
yuuji@0 183 The data are returned with the FETCH response. There is no
yuuji@0 184 indication of the range of the partial data in this response. It
yuuji@0 185 is not possible to stream multiple PARTIAL commands of the same
yuuji@0 186 data item without processing and synchronizing at each step, since
yuuji@0 187 streamed commands may be executed out of order.
yuuji@0 188
yuuji@0 189 There is no requirement that partial fetches follow any sequence.
yuuji@0 190 For example, if a partial fetch of octets 1 through 10000 breaks
yuuji@0 191 in an awkward place for BASE64 decoding, it is permitted to
yuuji@0 192 continue with a partial fetch of 9987 through 19987, etc.
yuuji@0 193
yuuji@0 194 The handling of the \Seen flag is the same as in the associated
yuuji@0 195 FETCH command.
yuuji@0 196
yuuji@0 197 Example: C: A005 PARTIAL 4 RFC822 1 1024
yuuji@0 198 S: * 1 FETCH (RFC822 {1024}
yuuji@0 199 S: Return-Path: <gray@cac.washington.edu>
yuuji@0 200 S: ...
yuuji@0 201 S: ......... FLAGS (\Seen))
yuuji@0 202 S: A005 OK PARTIAL completed
yuuji@0 203
yuuji@0 204 6.4.5.OBS.1 Obsolete FETCH Data Items
yuuji@0 205
yuuji@0 206 The following FETCH data items are obsolete:
yuuji@0 207
yuuji@0 208 BODY[<...>0] A body part number of 0 is the [RFC-822] header of
yuuji@0 209 the message. BODY[0] is functionally equivalent to
yuuji@0 210 BODY[HEADER], differing in the syntax of the
yuuji@0 211 resulting untagged FETCH data (BODY[0] is
yuuji@0 212 returned).
yuuji@0 213
yuuji@0 214 RFC822.HEADER.LINES <header_list>
yuuji@0 215 Functionally equivalent to BODY.PEEK[HEADER.LINES
yuuji@0 216 <header_list>], differing in the syntax of the
yuuji@0 217 resulting untagged FETCH data (RFC822.HEADER is
yuuji@0 218 returned).
yuuji@0 219
yuuji@0 220
yuuji@0 221
yuuji@0 222
yuuji@0 223
yuuji@0 224
yuuji@0 225
yuuji@0 226 Crispin Informational [Page 4]
yuuji@0 227
yuuji@0 228 RFC 2062 IMAP4 Obsolete December 1996
yuuji@0 229
yuuji@0 230
yuuji@0 231 RFC822.HEADER.LINES.NOT <header_list>
yuuji@0 232 Functionally equivalent to
yuuji@0 233 BODY.PEEK[HEADER.LINES.NOT <header_list>],
yuuji@0 234 differing in the syntax of the resulting untagged
yuuji@0 235 FETCH data (RFC822.HEADER is returned).
yuuji@0 236
yuuji@0 237 RFC822.PEEK Functionally equivalent to BODY.PEEK[], except for
yuuji@0 238 the syntax of the resulting untagged FETCH data
yuuji@0 239 (RFC822 is returned).
yuuji@0 240
yuuji@0 241 RFC822.TEXT.PEEK
yuuji@0 242 Functionally equivalent to BODY.PEEK[TEXT], except
yuuji@0 243 for the syntax of the resulting untagged FETCH data
yuuji@0 244 (RFC822.TEXT is returned).
yuuji@0 245
yuuji@0 246 Obsolete Responses
yuuji@0 247
yuuji@0 248 The following responses are OBSOLETE. Except as noted below, these
yuuji@0 249 responses MUST NOT be transmitted by new server implementations.
yuuji@0 250 Client implementations SHOULD accept these responses.
yuuji@0 251
yuuji@0 252 The section headings of these responses are intended to correspond
yuuji@0 253 with where they would be located in the main document if they were
yuuji@0 254 not obsoleted.
yuuji@0 255
yuuji@0 256 7.2.OBS.1. MAILBOX Response
yuuji@0 257
yuuji@0 258 Data: name
yuuji@0 259
yuuji@0 260 The MAILBOX response MUST NOT be transmitted by server
yuuji@0 261 implementations except in response to the obsolete FIND MAILBOXES
yuuji@0 262 and FIND ALL.MAILBOXES commands. Client implementations that do
yuuji@0 263 not use these commands MAY ignore this response. It is documented
yuuji@0 264 here for the benefit of implementors who may wish to support it
yuuji@0 265 for compatibility with old client implementations.
yuuji@0 266
yuuji@0 267 This response occurs as a result of the FIND MAILBOXES and FIND
yuuji@0 268 ALL.MAILBOXES commands. It returns a single name that matches the
yuuji@0 269 FIND specification. There are no attributes or hierarchy
yuuji@0 270 delimiter.
yuuji@0 271
yuuji@0 272 Example: S: * MAILBOX blurdybloop
yuuji@0 273
yuuji@0 274
yuuji@0 275
yuuji@0 276
yuuji@0 277
yuuji@0 278
yuuji@0 279
yuuji@0 280
yuuji@0 281
yuuji@0 282 Crispin Informational [Page 5]
yuuji@0 283
yuuji@0 284 RFC 2062 IMAP4 Obsolete December 1996
yuuji@0 285
yuuji@0 286
yuuji@0 287 7.3.OBS.1. COPY Response
yuuji@0 288
yuuji@0 289 Data: none
yuuji@0 290
yuuji@0 291 The COPY response MUST NOT be transmitted by new server
yuuji@0 292 implementations. Client implementations MUST ignore the COPY
yuuji@0 293 response. It is documented here for the benefit of client
yuuji@0 294 implementors who may encounter this response from old server
yuuji@0 295 implementations.
yuuji@0 296
yuuji@0 297 In some experimental versions of this protocol, this response was
yuuji@0 298 returned in response to a COPY command to indicate on a
yuuji@0 299 per-message basis that the message was copied successfully.
yuuji@0 300
yuuji@0 301 Example: S: * 44 COPY
yuuji@0 302
yuuji@0 303 7.3.OBS.2. STORE Response
yuuji@0 304
yuuji@0 305 Data: message data
yuuji@0 306
yuuji@0 307 The STORE response MUST NOT be transmitted by new server
yuuji@0 308 implementations. Client implementations MUST treat the STORE
yuuji@0 309 response as equivalent to the FETCH response. It is documented
yuuji@0 310 here for the benefit of client implementors who may encounter this
yuuji@0 311 response from old server implementations.
yuuji@0 312
yuuji@0 313 In some experimental versions of this protocol, this response was
yuuji@0 314 returned instead of FETCH in response to a STORE command to report
yuuji@0 315 the new value of the flags.
yuuji@0 316
yuuji@0 317 Example: S: * 69 STORE (FLAGS (\Deleted))
yuuji@0 318
yuuji@0 319 Formal Syntax of Obsolete Commands and Responses
yuuji@0 320
yuuji@0 321 Each obsolete syntax rule that is suffixed with "_old" is added to
yuuji@0 322 the corresponding name in the formal syntax. For example,
yuuji@0 323 command_auth_old adds the FIND command to command_auth.
yuuji@0 324
yuuji@0 325 command_auth_old ::= find
yuuji@0 326
yuuji@0 327 command_select_old
yuuji@0 328 ::= partial
yuuji@0 329
yuuji@0 330 date_year_old ::= 2digit
yuuji@0 331 ;; (year - 1900)
yuuji@0 332
yuuji@0 333 date_time_old ::= <"> date_day_fixed "-" date_month "-" date_year
yuuji@0 334 SPACE time "-" zone_name <">
yuuji@0 335
yuuji@0 336
yuuji@0 337
yuuji@0 338 Crispin Informational [Page 6]
yuuji@0 339
yuuji@0 340 RFC 2062 IMAP4 Obsolete December 1996
yuuji@0 341
yuuji@0 342
yuuji@0 343 find ::= "FIND" SPACE ["ALL."] "MAILBOXES" SPACE
yuuji@0 344 list_mailbox
yuuji@0 345
yuuji@0 346 fetch_att_old ::= "RFC822.HEADER.LINES" [".NOT"] SPACE header_list /
yuuji@0 347 fetch_text_old
yuuji@0 348
yuuji@0 349 fetch_text_old ::= "BODY" [".PEEK"] section_old /
yuuji@0 350 "RFC822" [".HEADER" / ".TEXT" [".PEEK"]]
yuuji@0 351
yuuji@0 352 msg_data_old ::= "COPY" / ("STORE" SPACE msg_att)
yuuji@0 353
yuuji@0 354 partial ::= "PARTIAL" SPACE nz_number SPACE fetch_text_old SPACE
yuuji@0 355 number SPACE number
yuuji@0 356
yuuji@0 357 section_old ::= "[" (number ["." number]) "]"
yuuji@0 358
yuuji@0 359 subscribe_old ::= "SUBSCRIBE" SPACE "MAILBOX" SPACE mailbox
yuuji@0 360
yuuji@0 361 unsubscribe_old ::= "UNSUBSCRIBE" SPACE "MAILBOX" SPACE mailbox
yuuji@0 362
yuuji@0 363 zone_name ::= "UT" / "GMT" / "Z" / ;; +0000
yuuji@0 364 "AST" / "EDT" / ;; -0400
yuuji@0 365 "EST" / "CDT" / ;; -0500
yuuji@0 366 "CST" / "MDT" / ;; -0600
yuuji@0 367 "MST" / "PDT" / ;; -0700
yuuji@0 368 "PST" / "YDT" / ;; -0800
yuuji@0 369 "YST" / "HDT" / ;; -0900
yuuji@0 370 "HST" / "BDT" / ;; -1000
yuuji@0 371 "BST" / ;; -1100
yuuji@0 372 "A" / "B" / "C" / "D" / "E" / "F" / ;; +1 to +6
yuuji@0 373 "G" / "H" / "I" / "K" / "L" / "M" / ;; +7 to +12
yuuji@0 374 "N" / "O" / "P" / "Q" / "R" / "S" / ;; -1 to -6
yuuji@0 375 "T" / "U" / "V" / "W" / "X" / "Y" ;; -7 to -12
yuuji@0 376
yuuji@0 377 Security Considerations
yuuji@0 378
yuuji@0 379 Security issues are not discussed in this memo.
yuuji@0 380
yuuji@0 381
yuuji@0 382
yuuji@0 383
yuuji@0 384
yuuji@0 385
yuuji@0 386
yuuji@0 387
yuuji@0 388
yuuji@0 389
yuuji@0 390
yuuji@0 391
yuuji@0 392
yuuji@0 393
yuuji@0 394 Crispin Informational [Page 7]
yuuji@0 395
yuuji@0 396 RFC 2062 IMAP4 Obsolete December 1996
yuuji@0 397
yuuji@0 398
yuuji@0 399 Author's Address
yuuji@0 400
yuuji@0 401 Mark R. Crispin
yuuji@0 402 Networks and Distributed Computing
yuuji@0 403 University of Washington
yuuji@0 404 4545 15th Aveneue NE
yuuji@0 405 Seattle, WA 98105-4527
yuuji@0 406
yuuji@0 407 Phone: (206) 543-5762
yuuji@0 408 EMail: MRC@CAC.Washington.EDU
yuuji@0 409
yuuji@0 410
yuuji@0 411
yuuji@0 412
yuuji@0 413
yuuji@0 414
yuuji@0 415
yuuji@0 416
yuuji@0 417
yuuji@0 418
yuuji@0 419
yuuji@0 420
yuuji@0 421
yuuji@0 422
yuuji@0 423
yuuji@0 424
yuuji@0 425
yuuji@0 426
yuuji@0 427
yuuji@0 428
yuuji@0 429
yuuji@0 430
yuuji@0 431
yuuji@0 432
yuuji@0 433
yuuji@0 434
yuuji@0 435
yuuji@0 436
yuuji@0 437
yuuji@0 438
yuuji@0 439
yuuji@0 440
yuuji@0 441
yuuji@0 442
yuuji@0 443
yuuji@0 444
yuuji@0 445
yuuji@0 446
yuuji@0 447
yuuji@0 448
yuuji@0 449
yuuji@0 450 Crispin Informational [Page 8]
yuuji@0 451

UW-IMAP'd extensions by yuuji