7 Network Working Group J. Myers
8 Request for Comments: 2359 Netscape Communications
9 Category: Standards Track June 1998
12 IMAP4 UIDPLUS extension
16 This document specifies an Internet standards track protocol for the
17 Internet community, and requests discussion and suggestions for
18 improvements. Please refer to the current edition of the "Internet
19 Official Protocol Standards" (STD 1) for the standardization state
20 and status of this protocol. Distribution of this memo is unlimited.
24 Copyright (C) The Internet Society (1998). All Rights Reserved.
28 The IMAP extension described here assumes a particular means of using
29 IMAP to support disconnected operation. However, this means of
30 supporting disconnected operation is not yet documented. Also, there
31 are multiple theories about how best to do disconnected operation in
32 IMAP, and as yet, there is no consensus on which one should be
33 adopted as a standard.
35 This document is being approved as a Proposed Standard because it
36 does not appear to have technical flaws in itelf. However, approval
37 of this document as a Proposed Standard should not be considered an
38 IETF endorsement of any particular means of doing disconnected
43 1. Abstract .............................................. 2
44 2. Conventions Used in this Document ..................... 2
45 3. Introduction and Overview ............................. 2
46 4. Features .............................................. 2
47 4.1. UID EXPUNGE Command ................................... 2
48 4.2. APPENDUID response code ............................... 3
49 4.3. COPYUID response code ................................. 4
50 5. Formal Syntax ......................................... 4
51 6. References ............................................ 4
52 7. Security Considerations ............................... 5
53 8. Author's Address ...................................... 5
54 9. Full Copyright Statement .............................. 6
58 Myers Standards Track [Page 1]
60 RFC 2359 IMAP4 UIDPLUS extension June 1998
65 The UIDPLUS extension of the Internet Message Access Protocol [IMAP4]
66 provides a set of features intended to reduce the amount of time and
67 resources used by some client operations. The features in UIDPLUS
68 are primarily intended for disconnected-use clients.
70 2. Conventions Used in this Document
72 In examples, "C:" and "S:" indicate lines sent by the client and
75 The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY"
76 in this document are to be interpreted as defined in "Key words for
77 use in RFCs to Indicate Requirement Levels" [KEYWORDS].
79 3. Introduction and Overview
81 The UIDPLUS extension is present in any IMAP4 server implementation
82 which returns "UIDPLUS" as one of the supported capabilities to the
83 CAPABILITY command. The UIDPLUS extension contains one additional
84 command and additional data returned with successful APPEND and COPY
87 Clients that wish to use the new command in UIDPLUS must of course
88 first test for the presence of the extension by issuing a CAPABILITY
89 command. Each of the features in UIDPLUS are optimizations; clients
90 can provide the same functionality, albeit more slowly, by using
91 commands in the base protocol. With each feature, this document
92 recommends a fallback approach to take when the UIDPLUS extension is
93 not supported by the server.
97 4.1. UID EXPUNGE Command
99 Arguments: message set
101 Data: untagged responses: EXPUNGE
103 Result: OK - expunge completed
104 NO - expunge failure (e.g. permission denied)
105 BAD - command unknown or arguments invalid
114 Myers Standards Track [Page 2]
116 RFC 2359 IMAP4 UIDPLUS extension June 1998
119 The UID EXPUNGE command permanently removes from the currently
120 selected mailbox all messages that both have the \Deleted flag set
121 and have a UID that is included in the specified message set. If
122 a message either does not have the \Deleted flag set or is has a
123 UID that is not included in the specified message set, it is not
126 This command may be used to ensure that a replayed EXPUNGE command
127 does not remove any messages that have been marked as \Deleted
128 between the time that the user requested the expunge operation and
129 the time the server processes the command.
131 If the server does not support the UIDPLUS capability, the client
132 should fall back to using the STORE command to temporarily remove
133 the \Deleted flag from messages it does not want to remove. The
134 client could alternatively fall back to using the EXPUNGE command,
135 risking the unintended removal of some messages.
137 Example: C: A003 UID EXPUNGE 3000:3002
141 S: A003 OK UID EXPUNGE completed
143 4.2. APPENDUID response code
145 Successful APPEND commands return an APPENDUID response code in the
146 tagged OK response. The APPENDUID response code contains as
147 arguments the UIDVALIDITY of the destination mailbox and the UID
148 assigned to the appended message.
150 If the server does not support the UIDPLUS capability, the client can
151 only discover this information by selecting the destination mailbox
152 and issuing FETCH commands.
154 Example: C: A003 APPEND saved-messages (\Seen) {310}
155 C: Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)
156 C: From: Fred Foobar <foobar@Blurdybloop.COM>
157 C: Subject: afternoon meeting
158 C: To: mooch@owatagu.siam.edu
159 C: Message-Id: <B27397-0100000@Blurdybloop.COM>
161 C: Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
163 C: Hello Joe, do you think we can meet at 3:30 tomorrow?
165 S: A003 OK [APPENDUID 38505 3955] APPEND completed
170 Myers Standards Track [Page 3]
172 RFC 2359 IMAP4 UIDPLUS extension June 1998
175 4.3. COPYUID response code
177 Successful COPY and UID COPY commands return a COPYUID response code
178 in the tagged OK response whenever at least one message was copied.
179 The COPYUID response code contains as an argument the UIDVALIDITY of
180 the appended-to mailbox, a message set containing the UIDs of the
181 messages copied to the destination mailbox, in the order they were
182 copied, and a message containing the UIDs assigned to the copied
183 messages, in the order they were assigned. Neither of the message
184 sets may contain extraneous UIDs or the symbol '*'.
186 If the server does not support the UIDPLUS capability, the client can
187 only discover this information by selecting the destination mailbox
188 and issuing FETCH commands.
190 Example: C: A003 COPY 2:4 MEETING
191 S: A003 OK [COPYUID 38505 304,319:320 3956:3958] Done
192 C: A003 UID COPY 305:310 MEETING
197 The following syntax specification uses the augmented Backus-Naur
198 Form (BNF) notation as specified in [RFC-822] as modified by [IMAP4].
199 Non-terminals referenced but not defined below are as defined by
202 Except as noted otherwise, all alphabetic characters are case-
203 insensitive. The use of upper or lower case characters to define
204 token strings is for editorial clarity only. Implementations MUST
205 accept these strings in a case-insensitive fashion.
207 resp_code_apnd ::= "APPENDUID" SPACE nz_number SPACE uniqueid
209 resp_code_copy ::= "COPYUID" SPACE nz_number SPACE set SPACE set
211 uid_expunge ::= "UID" SPACE "EXPUNGE" SPACE set
215 [IMAP4] Crispin, M., "Internet Message Access Protocol -
216 Version 4rev1", RFC 2060, December 1996.
218 [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
219 Requirement Levels", BCP 14, RFC 2119, March 1997.
221 [RFC-822] Crocker, D., "Standard for the Format of ARPA Internet
222 Text Messages", STD 11, RFC 822, August 1982.
226 Myers Standards Track [Page 4]
228 RFC 2359 IMAP4 UIDPLUS extension June 1998
231 7. Security Considerations
233 There are no known security issues with this extension.
238 Netscape Communications
239 501 East Middlefield Road
241 Mountain View, CA 94043
243 EMail: jgmyers@netscape.com
282 Myers Standards Track [Page 5]
284 RFC 2359 IMAP4 UIDPLUS extension June 1998
287 9. Full Copyright Statement
289 Copyright (C) The Internet Society (1998). All Rights Reserved.
291 This document and translations of it may be copied and furnished to
292 others, and derivative works that comment on or otherwise explain it
293 or assist in its implementation may be prepared, copied, published
294 and distributed, in whole or in part, without restriction of any
295 kind, provided that the above copyright notice and this paragraph are
296 included on all such copies and derivative works. However, this
297 document itself may not be modified in any way, such as by removing
298 the copyright notice or references to the Internet Society or other
299 Internet organizations, except as needed for the purpose of
300 developing Internet standards in which case the procedures for
301 copyrights defined in the Internet Standards process must be
302 followed, or as required to translate it into languages other than
305 The limited permissions granted above are perpetual and will not be
306 revoked by the Internet Society or its successors or assigns.
308 This document and the information contained herein is provided on an
309 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
310 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
311 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
312 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
313 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
338 Myers Standards Track [Page 6]