340 lines
11 KiB
Plaintext
340 lines
11 KiB
Plaintext
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Network Working Group J. Myers
|
|||
|
Request for Comments: 2359 Netscape Communications
|
|||
|
Category: Standards Track June 1998
|
|||
|
|
|||
|
|
|||
|
IMAP4 UIDPLUS extension
|
|||
|
|
|||
|
Status of this Memo
|
|||
|
|
|||
|
This document specifies an Internet standards track protocol for the
|
|||
|
Internet community, and requests discussion and suggestions for
|
|||
|
improvements. Please refer to the current edition of the "Internet
|
|||
|
Official Protocol Standards" (STD 1) for the standardization state
|
|||
|
and status of this protocol. Distribution of this memo is unlimited.
|
|||
|
|
|||
|
Copyright Notice
|
|||
|
|
|||
|
Copyright (C) The Internet Society (1998). All Rights Reserved.
|
|||
|
|
|||
|
IESG NOTE
|
|||
|
|
|||
|
The IMAP extension described here assumes a particular means of using
|
|||
|
IMAP to support disconnected operation. However, this means of
|
|||
|
supporting disconnected operation is not yet documented. Also, there
|
|||
|
are multiple theories about how best to do disconnected operation in
|
|||
|
IMAP, and as yet, there is no consensus on which one should be
|
|||
|
adopted as a standard.
|
|||
|
|
|||
|
This document is being approved as a Proposed Standard because it
|
|||
|
does not appear to have technical flaws in itelf. However, approval
|
|||
|
of this document as a Proposed Standard should not be considered an
|
|||
|
IETF endorsement of any particular means of doing disconnected
|
|||
|
operation in IMAP.
|
|||
|
|
|||
|
Table of Contents
|
|||
|
|
|||
|
1. Abstract .............................................. 2
|
|||
|
2. Conventions Used in this Document ..................... 2
|
|||
|
3. Introduction and Overview ............................. 2
|
|||
|
4. Features .............................................. 2
|
|||
|
4.1. UID EXPUNGE Command ................................... 2
|
|||
|
4.2. APPENDUID response code ............................... 3
|
|||
|
4.3. COPYUID response code ................................. 4
|
|||
|
5. Formal Syntax ......................................... 4
|
|||
|
6. References ............................................ 4
|
|||
|
7. Security Considerations ............................... 5
|
|||
|
8. Author's Address ...................................... 5
|
|||
|
9. Full Copyright Statement .............................. 6
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers Standards Track [Page 1]
|
|||
|
|
|||
|
RFC 2359 IMAP4 UIDPLUS extension June 1998
|
|||
|
|
|||
|
|
|||
|
1. Abstract
|
|||
|
|
|||
|
The UIDPLUS extension of the Internet Message Access Protocol [IMAP4]
|
|||
|
provides a set of features intended to reduce the amount of time and
|
|||
|
resources used by some client operations. The features in UIDPLUS
|
|||
|
are primarily intended for disconnected-use clients.
|
|||
|
|
|||
|
2. Conventions Used in this Document
|
|||
|
|
|||
|
In examples, "C:" and "S:" indicate lines sent by the client and
|
|||
|
server respectively.
|
|||
|
|
|||
|
The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY"
|
|||
|
in this document are to be interpreted as defined in "Key words for
|
|||
|
use in RFCs to Indicate Requirement Levels" [KEYWORDS].
|
|||
|
|
|||
|
3. Introduction and Overview
|
|||
|
|
|||
|
The UIDPLUS extension is present in any IMAP4 server implementation
|
|||
|
which returns "UIDPLUS" as one of the supported capabilities to the
|
|||
|
CAPABILITY command. The UIDPLUS extension contains one additional
|
|||
|
command and additional data returned with successful APPEND and COPY
|
|||
|
commands.
|
|||
|
|
|||
|
Clients that wish to use the new command in UIDPLUS must of course
|
|||
|
first test for the presence of the extension by issuing a CAPABILITY
|
|||
|
command. Each of the features in UIDPLUS are optimizations; clients
|
|||
|
can provide the same functionality, albeit more slowly, by using
|
|||
|
commands in the base protocol. With each feature, this document
|
|||
|
recommends a fallback approach to take when the UIDPLUS extension is
|
|||
|
not supported by the server.
|
|||
|
|
|||
|
4. Features
|
|||
|
|
|||
|
4.1. UID EXPUNGE Command
|
|||
|
|
|||
|
Arguments: message set
|
|||
|
|
|||
|
Data: untagged responses: EXPUNGE
|
|||
|
|
|||
|
Result: OK - expunge completed
|
|||
|
NO - expunge failure (e.g. permission denied)
|
|||
|
BAD - command unknown or arguments invalid
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers Standards Track [Page 2]
|
|||
|
|
|||
|
RFC 2359 IMAP4 UIDPLUS extension June 1998
|
|||
|
|
|||
|
|
|||
|
The UID EXPUNGE command permanently removes from the currently
|
|||
|
selected mailbox all messages that both have the \Deleted flag set
|
|||
|
and have a UID that is included in the specified message set. If
|
|||
|
a message either does not have the \Deleted flag set or is has a
|
|||
|
UID that is not included in the specified message set, it is not
|
|||
|
affected.
|
|||
|
|
|||
|
This command may be used to ensure that a replayed EXPUNGE command
|
|||
|
does not remove any messages that have been marked as \Deleted
|
|||
|
between the time that the user requested the expunge operation and
|
|||
|
the time the server processes the command.
|
|||
|
|
|||
|
If the server does not support the UIDPLUS capability, the client
|
|||
|
should fall back to using the STORE command to temporarily remove
|
|||
|
the \Deleted flag from messages it does not want to remove. The
|
|||
|
client could alternatively fall back to using the EXPUNGE command,
|
|||
|
risking the unintended removal of some messages.
|
|||
|
|
|||
|
Example: C: A003 UID EXPUNGE 3000:3002
|
|||
|
S: * 3 EXPUNGE
|
|||
|
S: * 3 EXPUNGE
|
|||
|
S: * 3 EXPUNGE
|
|||
|
S: A003 OK UID EXPUNGE completed
|
|||
|
|
|||
|
4.2. APPENDUID response code
|
|||
|
|
|||
|
Successful APPEND commands return an APPENDUID response code in the
|
|||
|
tagged OK response. The APPENDUID response code contains as
|
|||
|
arguments the UIDVALIDITY of the destination mailbox and the UID
|
|||
|
assigned to the appended message.
|
|||
|
|
|||
|
If the server does not support the UIDPLUS capability, the client can
|
|||
|
only discover this information by selecting the destination mailbox
|
|||
|
and issuing FETCH commands.
|
|||
|
|
|||
|
Example: C: A003 APPEND saved-messages (\Seen) {310}
|
|||
|
C: Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)
|
|||
|
C: From: Fred Foobar <foobar@Blurdybloop.COM>
|
|||
|
C: Subject: afternoon meeting
|
|||
|
C: To: mooch@owatagu.siam.edu
|
|||
|
C: Message-Id: <B27397-0100000@Blurdybloop.COM>
|
|||
|
C: MIME-Version: 1.0
|
|||
|
C: Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
|
|||
|
C:
|
|||
|
C: Hello Joe, do you think we can meet at 3:30 tomorrow?
|
|||
|
C:
|
|||
|
S: A003 OK [APPENDUID 38505 3955] APPEND completed
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers Standards Track [Page 3]
|
|||
|
|
|||
|
RFC 2359 IMAP4 UIDPLUS extension June 1998
|
|||
|
|
|||
|
|
|||
|
4.3. COPYUID response code
|
|||
|
|
|||
|
Successful COPY and UID COPY commands return a COPYUID response code
|
|||
|
in the tagged OK response whenever at least one message was copied.
|
|||
|
The COPYUID response code contains as an argument the UIDVALIDITY of
|
|||
|
the appended-to mailbox, a message set containing the UIDs of the
|
|||
|
messages copied to the destination mailbox, in the order they were
|
|||
|
copied, and a message containing the UIDs assigned to the copied
|
|||
|
messages, in the order they were assigned. Neither of the message
|
|||
|
sets may contain extraneous UIDs or the symbol '*'.
|
|||
|
|
|||
|
If the server does not support the UIDPLUS capability, the client can
|
|||
|
only discover this information by selecting the destination mailbox
|
|||
|
and issuing FETCH commands.
|
|||
|
|
|||
|
Example: C: A003 COPY 2:4 MEETING
|
|||
|
S: A003 OK [COPYUID 38505 304,319:320 3956:3958] Done
|
|||
|
C: A003 UID COPY 305:310 MEETING
|
|||
|
S: A003 OK Done
|
|||
|
|
|||
|
5. Formal Syntax
|
|||
|
|
|||
|
The following syntax specification uses the augmented Backus-Naur
|
|||
|
Form (BNF) notation as specified in [RFC-822] as modified by [IMAP4].
|
|||
|
Non-terminals referenced but not defined below are as defined by
|
|||
|
[IMAP4].
|
|||
|
|
|||
|
Except as noted otherwise, all alphabetic characters are case-
|
|||
|
insensitive. The use of upper or lower case characters to define
|
|||
|
token strings is for editorial clarity only. Implementations MUST
|
|||
|
accept these strings in a case-insensitive fashion.
|
|||
|
|
|||
|
resp_code_apnd ::= "APPENDUID" SPACE nz_number SPACE uniqueid
|
|||
|
|
|||
|
resp_code_copy ::= "COPYUID" SPACE nz_number SPACE set SPACE set
|
|||
|
|
|||
|
uid_expunge ::= "UID" SPACE "EXPUNGE" SPACE set
|
|||
|
|
|||
|
6. References
|
|||
|
|
|||
|
[IMAP4] Crispin, M., "Internet Message Access Protocol -
|
|||
|
Version 4rev1", RFC 2060, December 1996.
|
|||
|
|
|||
|
[KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
|
|||
|
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
|||
|
|
|||
|
[RFC-822] Crocker, D., "Standard for the Format of ARPA Internet
|
|||
|
Text Messages", STD 11, RFC 822, August 1982.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers Standards Track [Page 4]
|
|||
|
|
|||
|
RFC 2359 IMAP4 UIDPLUS extension June 1998
|
|||
|
|
|||
|
|
|||
|
7. Security Considerations
|
|||
|
|
|||
|
There are no known security issues with this extension.
|
|||
|
|
|||
|
8. Author's Address
|
|||
|
|
|||
|
John Gardiner Myers
|
|||
|
Netscape Communications
|
|||
|
501 East Middlefield Road
|
|||
|
Mail Stop MV-029
|
|||
|
Mountain View, CA 94043
|
|||
|
|
|||
|
EMail: jgmyers@netscape.com
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers Standards Track [Page 5]
|
|||
|
|
|||
|
RFC 2359 IMAP4 UIDPLUS extension June 1998
|
|||
|
|
|||
|
|
|||
|
9. Full Copyright Statement
|
|||
|
|
|||
|
Copyright (C) The Internet Society (1998). All Rights Reserved.
|
|||
|
|
|||
|
This document and translations of it may be copied and furnished to
|
|||
|
others, and derivative works that comment on or otherwise explain it
|
|||
|
or assist in its implementation may be prepared, copied, published
|
|||
|
and distributed, in whole or in part, without restriction of any
|
|||
|
kind, provided that the above copyright notice and this paragraph are
|
|||
|
included on all such copies and derivative works. However, this
|
|||
|
document itself may not be modified in any way, such as by removing
|
|||
|
the copyright notice or references to the Internet Society or other
|
|||
|
Internet organizations, except as needed for the purpose of
|
|||
|
developing Internet standards in which case the procedures for
|
|||
|
copyrights defined in the Internet Standards process must be
|
|||
|
followed, or as required to translate it into languages other than
|
|||
|
English.
|
|||
|
|
|||
|
The limited permissions granted above are perpetual and will not be
|
|||
|
revoked by the Internet Society or its successors or assigns.
|
|||
|
|
|||
|
This document and the information contained herein is provided on an
|
|||
|
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
|
|||
|
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
|
|||
|
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
|
|||
|
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
|
|||
|
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers Standards Track [Page 6]
|
|||
|
|