7
Network Working Group M. Crispin
8
Request for Comments: 2062 University of Washington
9
Category: Informational December 1996
12
Internet Message Access Protocol - Obsolete Syntax
16
This memo provides information for the Internet community. This memo
17
does not specify an Internet standard of any kind. Distribution of
18
this memo is unlimited.
22
This document describes obsolete syntax which may be encountered by
23
IMAP4 implementations which deal with older versions of the Internet
24
Mail Access Protocol. IMAP4 implementations MAY implement this
25
syntax in order to maximize interoperability with older
28
This document repeats information from earlier documents, most
29
notably RFC 1176 and RFC 1730.
31
Obsolete Commands and Fetch Data Items
33
The following commands are OBSOLETE. It is NOT required to support
34
any of these commands or fetch data items in new server
35
implementations. These commands are documented here for the benefit
36
of implementors who may wish to support them for compatibility with
37
old client implementations.
39
The section headings of these commands are intended to correspond
40
with where they would be located in the main document if they were
43
6.3.OBS.1. FIND ALL.MAILBOXES Command
45
Arguments: mailbox name with possible wildcards
47
Data: untagged responses: MAILBOX
49
Result: OK - find completed
50
NO - find failure: can't list that name
51
BAD - command unknown or arguments invalid
58
Crispin Informational [Page 1]
60
RFC 2062 IMAP4 Obsolete December 1996
63
The FIND ALL.MAILBOXES command returns a subset of names from the
64
complete set of all names available to the user. It returns zero
65
or more untagged MAILBOX replies. The mailbox argument to FIND
66
ALL.MAILBOXES is similar to that for LIST with an empty reference,
67
except that the characters "%" and "?" match a single character.
69
Example: C: A002 FIND ALL.MAILBOXES *
70
S: * MAILBOX blurdybloop
72
S: A002 OK FIND ALL.MAILBOXES completed
74
6.3.OBS.2. FIND MAILBOXES Command
76
Arguments: mailbox name with possible wildcards
78
Data: untagged responses: MAILBOX
80
Result: OK - find completed
81
NO - find failure: can't list that name
82
BAD - command unknown or arguments invalid
84
The FIND MAILBOXES command returns a subset of names from the set
85
of names that the user has declared as being "active" or
86
"subscribed". It returns zero or more untagged MAILBOX replies.
87
The mailbox argument to FIND MAILBOXES is similar to that for LSUB
88
with an empty reference, except that the characters "%" and "?"
89
match a single character.
91
Example: C: A002 FIND MAILBOXES *
92
S: * MAILBOX blurdybloop
94
S: A002 OK FIND MAILBOXES completed
96
6.3.OBS.3. SUBSCRIBE MAILBOX Command
98
Arguments: mailbox name
100
Data: no specific data for this command
102
Result: OK - subscribe completed
103
NO - subscribe failure: can't subscribe to that name
104
BAD - command unknown or arguments invalid
106
The SUBSCRIBE MAILBOX command is identical in effect to the
107
SUBSCRIBE command. A server which implements this command must be
108
able to distinguish between a SUBSCRIBE MAILBOX command and a
109
SUBSCRIBE command with a mailbox name argument of "MAILBOX".
114
Crispin Informational [Page 2]
116
RFC 2062 IMAP4 Obsolete December 1996
119
Example: C: A002 SUBSCRIBE MAILBOX #news.comp.mail.mime
120
S: A002 OK SUBSCRIBE MAILBOX to #news.comp.mail.mime
122
C: A003 SUBSCRIBE MAILBOX
123
S: A003 OK SUBSCRIBE to MAILBOX completed
126
6.3.OBS.4. UNSUBSCRIBE MAILBOX Command
128
Arguments: mailbox name
130
Data: no specific data for this command
132
Result: OK - unsubscribe completed
133
NO - unsubscribe failure: can't unsubscribe that name
134
BAD - command unknown or arguments invalid
136
The UNSUBSCRIBE MAILBOX command is identical in effect to the
137
UNSUBSCRIBE command. A server which implements this command must
138
be able to distinguish between a UNSUBSCRIBE MAILBOX command and
139
an UNSUBSCRIBE command with a mailbox name argument of "MAILBOX".
141
Example: C: A002 UNSUBSCRIBE MAILBOX #news.comp.mail.mime
142
S: A002 OK UNSUBSCRIBE MAILBOX from #news.comp.mail.mime
144
C: A003 UNSUBSCRIBE MAILBOX
145
S: A003 OK UNSUBSCRIBE from MAILBOX completed
147
6.4.OBS.1 PARTIAL Command
149
Arguments: message sequence number
150
message data item name
151
position of first octet
154
Data: untagged responses: FETCH
156
Result: OK - partial completed
157
NO - partial error: can't fetch that data
158
BAD - command unknown or arguments invalid
160
The PARTIAL command is equivalent to the associated FETCH command,
161
with the added functionality that only the specified number of
162
octets, beginning at the specified starting octet, are returned.
163
Only a single message can be fetched at a time. The first octet
164
of a message, and hence the minimum for the starting octet, is
170
Crispin Informational [Page 3]
172
RFC 2062 IMAP4 Obsolete December 1996
175
The following FETCH items are valid data for PARTIAL: RFC822,
176
RFC822.HEADER, RFC822.TEXT, BODY[<section>], as well as any .PEEK
179
Any partial fetch that attempts to read beyond the end of the text
180
is truncated as appropriate. If the starting octet is beyond the
181
end of the text, an empty string is returned.
183
The data are returned with the FETCH response. There is no
184
indication of the range of the partial data in this response. It
185
is not possible to stream multiple PARTIAL commands of the same
186
data item without processing and synchronizing at each step, since
187
streamed commands may be executed out of order.
189
There is no requirement that partial fetches follow any sequence.
190
For example, if a partial fetch of octets 1 through 10000 breaks
191
in an awkward place for BASE64 decoding, it is permitted to
192
continue with a partial fetch of 9987 through 19987, etc.
194
The handling of the \Seen flag is the same as in the associated
197
Example: C: A005 PARTIAL 4 RFC822 1 1024
198
S: * 1 FETCH (RFC822 {1024}
199
S: Return-Path: <gray@cac.washington.edu>
201
S: ......... FLAGS (\Seen))
202
S: A005 OK PARTIAL completed
204
6.4.5.OBS.1 Obsolete FETCH Data Items
206
The following FETCH data items are obsolete:
208
BODY[<...>0] A body part number of 0 is the [RFC-822] header of
209
the message. BODY[0] is functionally equivalent to
210
BODY[HEADER], differing in the syntax of the
211
resulting untagged FETCH data (BODY[0] is
214
RFC822.HEADER.LINES <header_list>
215
Functionally equivalent to BODY.PEEK[HEADER.LINES
216
<header_list>], differing in the syntax of the
217
resulting untagged FETCH data (RFC822.HEADER is
226
Crispin Informational [Page 4]
228
RFC 2062 IMAP4 Obsolete December 1996
231
RFC822.HEADER.LINES.NOT <header_list>
232
Functionally equivalent to
233
BODY.PEEK[HEADER.LINES.NOT <header_list>],
234
differing in the syntax of the resulting untagged
235
FETCH data (RFC822.HEADER is returned).
237
RFC822.PEEK Functionally equivalent to BODY.PEEK[], except for
238
the syntax of the resulting untagged FETCH data
239
(RFC822 is returned).
242
Functionally equivalent to BODY.PEEK[TEXT], except
243
for the syntax of the resulting untagged FETCH data
244
(RFC822.TEXT is returned).
248
The following responses are OBSOLETE. Except as noted below, these
249
responses MUST NOT be transmitted by new server implementations.
250
Client implementations SHOULD accept these responses.
252
The section headings of these responses are intended to correspond
253
with where they would be located in the main document if they were
256
7.2.OBS.1. MAILBOX Response
260
The MAILBOX response MUST NOT be transmitted by server
261
implementations except in response to the obsolete FIND MAILBOXES
262
and FIND ALL.MAILBOXES commands. Client implementations that do
263
not use these commands MAY ignore this response. It is documented
264
here for the benefit of implementors who may wish to support it
265
for compatibility with old client implementations.
267
This response occurs as a result of the FIND MAILBOXES and FIND
268
ALL.MAILBOXES commands. It returns a single name that matches the
269
FIND specification. There are no attributes or hierarchy
272
Example: S: * MAILBOX blurdybloop
282
Crispin Informational [Page 5]
284
RFC 2062 IMAP4 Obsolete December 1996
287
7.3.OBS.1. COPY Response
291
The COPY response MUST NOT be transmitted by new server
292
implementations. Client implementations MUST ignore the COPY
293
response. It is documented here for the benefit of client
294
implementors who may encounter this response from old server
297
In some experimental versions of this protocol, this response was
298
returned in response to a COPY command to indicate on a
299
per-message basis that the message was copied successfully.
301
Example: S: * 44 COPY
303
7.3.OBS.2. STORE Response
307
The STORE response MUST NOT be transmitted by new server
308
implementations. Client implementations MUST treat the STORE
309
response as equivalent to the FETCH response. It is documented
310
here for the benefit of client implementors who may encounter this
311
response from old server implementations.
313
In some experimental versions of this protocol, this response was
314
returned instead of FETCH in response to a STORE command to report
315
the new value of the flags.
317
Example: S: * 69 STORE (FLAGS (\Deleted))
319
Formal Syntax of Obsolete Commands and Responses
321
Each obsolete syntax rule that is suffixed with "_old" is added to
322
the corresponding name in the formal syntax. For example,
323
command_auth_old adds the FIND command to command_auth.
325
command_auth_old ::= find
330
date_year_old ::= 2digit
333
date_time_old ::= <"> date_day_fixed "-" date_month "-" date_year
334
SPACE time "-" zone_name <">
338
Crispin Informational [Page 6]
340
RFC 2062 IMAP4 Obsolete December 1996
343
find ::= "FIND" SPACE ["ALL."] "MAILBOXES" SPACE
346
fetch_att_old ::= "RFC822.HEADER.LINES" [".NOT"] SPACE header_list /
349
fetch_text_old ::= "BODY" [".PEEK"] section_old /
350
"RFC822" [".HEADER" / ".TEXT" [".PEEK"]]
352
msg_data_old ::= "COPY" / ("STORE" SPACE msg_att)
354
partial ::= "PARTIAL" SPACE nz_number SPACE fetch_text_old SPACE
357
section_old ::= "[" (number ["." number]) "]"
359
subscribe_old ::= "SUBSCRIBE" SPACE "MAILBOX" SPACE mailbox
361
unsubscribe_old ::= "UNSUBSCRIBE" SPACE "MAILBOX" SPACE mailbox
363
zone_name ::= "UT" / "GMT" / "Z" / ;; +0000
364
"AST" / "EDT" / ;; -0400
365
"EST" / "CDT" / ;; -0500
366
"CST" / "MDT" / ;; -0600
367
"MST" / "PDT" / ;; -0700
368
"PST" / "YDT" / ;; -0800
369
"YST" / "HDT" / ;; -0900
370
"HST" / "BDT" / ;; -1000
372
"A" / "B" / "C" / "D" / "E" / "F" / ;; +1 to +6
373
"G" / "H" / "I" / "K" / "L" / "M" / ;; +7 to +12
374
"N" / "O" / "P" / "Q" / "R" / "S" / ;; -1 to -6
375
"T" / "U" / "V" / "W" / "X" / "Y" ;; -7 to -12
377
Security Considerations
379
Security issues are not discussed in this memo.
394
Crispin Informational [Page 7]
396
RFC 2062 IMAP4 Obsolete December 1996
402
Networks and Distributed Computing
403
University of Washington
405
Seattle, WA 98105-4527
407
Phone: (206) 543-5762
408
EMail: MRC@CAC.Washington.EDU
450
Crispin Informational [Page 8]