Request for Comments: 4315 December 2005 Obsoletes: 2359 Category: Standards Track. Internet Message Access Protocol (IMAP) - UIDPLUS extension

Similar documents
Isode Limited March 2008

October Network News Transfer Protocol (NNTP) Extension for Streaming Feeds

Category: Standards Track June Requesting Attributes by Object Class in the Lightweight Directory Access Protocol (LDAP) Status of This Memo

Category: Standards Track October 2006

Request for Comments: 3934 Updates: 2418 October 2004 BCP: 94 Category: Best Current Practice

Request for Comments: Category: Standards Track January 2008

Network Working Group. Category: Informational October 2005

Category: Standards Track July The Post Office Protocol (POP3) Simple Authentication and Security Layer (SASL) Authentication Mechanism

Request for Comments: 4759 Category: Standards Track Neustar Inc. L. Conroy Roke Manor Research November 2006

Network Working Group Request for Comments: 5464 Category: Standards Track February 2009

Network Working Group. Category: Standards Track August Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Remote-ID Option

Network Working Group Request for Comments: 4424 February 2006 Updates: 4348 Category: Standards Track

Category: Standards Track October Vendor-Identifying Vendor Options for Dynamic Host Configuration Protocol version 4 (DHCPv4)

Request for Comments: 3861 Category: Standards Track August 2004

Expires: October 9, 2005 April 7, 2005

Network Working Group Request for Comments: 2342 Category: Standards Track Innosoft May 1998

Category: Standards Track September MIB Textual Conventions for Uniform Resource Identifiers (URIs)

Request for Comments: May 2007

Internet Engineering Task Force (IETF) Request for Comments: 8508 Category: Standards Track January 2019 ISSN:

Network Working Group Request for Comments: 4143 Category: Standards Track Brandenburg November 2005

Network Working Group Request for Comments: August Address-Prefix-Based Outbound Route Filter for BGP-4

Network Working Group. Category: Standards Track June Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Subscriber-ID Option

Request for Comments: 5179 Category: Standards Track May 2008

Category: Standards Track June 2006

Network Working Group. Intended status: Standards Track Columbia U. Expires: March 5, 2009 September 1, 2008

Network Working Group. Category: Informational May OSPF Database Exchange Summary List Optimization

Network Working Group Internet-Draft January 25, 2006 Expires: July 29, Feed Rank draft-snell-atompub-feed-index-05.txt. Status of this Memo

Network Working Group. February 2005

Category: Standards Track December 2007

Network Working Group Request for Comments: 3937 Category: Informational October 2004

vcard Extensions for Instant Messaging (IM)

Request for Comments: 4715 Category: Informational NTT November 2006

Updates: 2409 May 2005 Category: Standards Track. Algorithms for Internet Key Exchange version 1 (IKEv1)

Network Working Group Request for Comments: 4792 Updates: 3641 January 2007 Category: Standards Track

Carnegie Mellon University June Internet Message Access Protocol - SORT and THREAD Extensions

Internet Engineering Task Force (IETF) Request for Comments: ISSN: January 2013

Request for Comments: 4142 Category: Standards Track Nine by Nine November 2005

Network Working Group Request for Comments: 5235 January 2008 Obsoletes: 3685 Category: Standards Track

Request for Comments: 4680 Updates: 4346 September 2006 Category: Standards Track

Network Working Group. Cisco Systems June 2007

Network Working Group Request for Comments: 4242 Category: Standards Track University of Southampton B. Volz Cisco Systems, Inc.

Category: Informational October Common Format and MIME Type for Comma-Separated Values (CSV) Files

Category: Standards Track Cisco Systems, Inc. March 2005

Category: Standards Track Cisco Systems, Inc January The Secure Shell (SSH) Session Channel Break Extension

Request for Comments: 4633 Category: Experimental August 2006

Network Working Group Request for Comments: Cisco Systems, Inc. December 2005

Network Working Group Internet-Draft August 2005 Expires: February 2, Atom Link No Follow draft-snell-atompub-feed-nofollow-00.

Expires in six months 24 October 2004 Obsoletes: RFC , , 3377, 3771

C. Martin ipath Services February A Policy Control Mechanism in IS-IS Using Administrative Tags

Network Working Group. Category: Standards Track June 2005

Network Working Group. N. Williams Sun Microsystems June 2006

Category: Standards Track March Extensible Provisioning Protocol (EPP) Transport Over TCP

Network Working Group Request for Comments: 4603 Category: Informational Cisco Systems July Additional Values for the NAS-Port-Type Attribute

Category: Standards Track September 2003

Intended status: Standards Track August 15, 2008 Expires: February 16, 2009

Category: Standards Track Redback Networks June 2008

Request for Comments: 5115 Category: Standards Track UCL January Telephony Routing over IP (TRIP) Attribute for Resource Priority

Category: Standards Track October 2006

Network Working Group. Category: Standards Track July 2007

Network Working Group Request for Comments: 4558 Category: Standards Track Cisco Systems D. Papadimitriou Alcatel June 2006

Request for Comments: 3764 Category: Standards Track April enumservice registration for Session Initiation Protocol (SIP) Addresses-of-Record

Network Working Group Request for Comments: 2193 Category: Standards Track September 1997

Request for Comments: 3968 Updates: 3427 December 2004 BCP: 98 Category: Best Current Practice

Network Working Group Request for Comments: Cisco Systems, Inc. June 2006

Category: Best Current Practice February Early IANA Allocation of Standards Track Code Points

Network Working Group Internet-Draft August 2005 Expires: February 2, Atom Link No Follow draft-snell-atompub-feed-nofollow-03.

September The Internet Assigned Number Authority (IANA) tel Uniform Resource Identifier (URI) Parameter Registry. Status of This Memo

Network Working Group Request for Comments: 4573 Category: Standard Track July MIME Type Registration for RTP Payload Format for H.

Request for Comments: 5010 Category: Standards Track Cisco Systems, Inc. September 2007

Network Working Group. Category: Informational April A Uniform Resource Name (URN) Namespace for the Open Geospatial Consortium (OGC)

Network Working Group. Category: Standards Track Juniper Networks August 2008

Network Working Group Internet-Draft October 27, 2007 Intended status: Experimental Expires: April 29, 2008

Category: Informational September A Suggested Scheme for DNS Resolution of Networks and Gateways

February T11 Network Address Authority (NAA) Naming Format for iscsi Node Names

Request for Comments: 3932 October 2004 BCP: 92 Updates: 3710, 2026 Category: Best Current Practice

Network Working Group. Category: Standards Track Cisco Systems May 2007

Network Working Group. February Media Gateway Control Protocol (MGCP) Redirect and Reset Package

Network Working Group. Updates: 3463, 4468, 4954 June 2008 Category: Best Current Practice. A Registry for SMTP Enhanced Mail System Status Codes

Network Working Group. Category: Standards Track Samsung S. Kumar Tech Mahindra Ltd S. Madanapalli Samsung May 2008

Request for Comments: K. Norrman Ericsson June 2006

Category: Informational M. Shand Cisco Systems May 2004

Network Working Group. BCP: 131 July 2007 Category: Best Current Practice

Request for Comments: 3905 Category: Informational September A Template for IETF Patent Disclosures and Licensing Declarations

Category: Standards Track Microsoft May 2004

Category: Standards Track LabN Consulting, LLC July 2008

Request for Comments: 4393 Category: Standards Track March MIME Type Registrations for 3GPP2 Multimedia Files

Request for Comments: 4571 Category: Standards Track July 2006

Request for Comments: 5079 Category: Standards Track December Rejecting Anonymous Requests in the Session Initiation Protocol (SIP)

Network Working Group Request for Comments: 4869 Category: Informational May Suite B Cryptographic Suites for IPsec. Status of This Memo

Category: Standards Track May Transport Layer Security Protocol Compression Methods

Network Working Group. Category: Informational June Intermediate System to Intermediate System (IS-IS) Extensions for Traffic Engineering (TE)

Network Working Group Request for Comments: A. Zinin Alcatel-Lucent March 2007

Jabber, Inc. August 20, 2004

Network Working Group Request for Comments: February 2006

Request for Comments: January 2007

Network Working Group. Category: Standards Track February SIEVE Filtering: Spamtest and VirusTest Extensions

Network Working Group Request for Comments: 4432 March 2006 Category: Standards Track

Category: Informational September 2004

Network Working Group. Category: Informational January 2006

Category: Standards Track January 2008

Transcription:

Network Working Group M. Crispin Request for Comments: 4315 December 2005 Obsoletes: 2359 Category: Standards Track Internet Message Access Protocol (IMAP) - 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 (2005). Abstract The UIDPLUS extension of the Internet Message Access Protocol (IMAP) 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. 1. Introduction and Overview The UIDPLUS extension is present in any IMAP server implementation that returns "UIDPLUS" as one of the supported capabilities to the CAPABILITY command. The UIDPLUS extension defines an additional command. In addition, this document recommends new status response codes in IMAP that SHOULD be returned by all server implementations, regardless of whether or not the UIDPLUS extension is implemented. The added facilities of the features in UIDPLUS are optimizations; clients can provide equivalent functionality, albeit less efficiently, by using facilities in the base protocol. 1.1. Conventions Used in This Document In examples, "C:" and "S:" indicate lines sent by the client and server, respectively. Crispin Standards Track [Page 1]

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [KEYWORDS]. A "UID set" is similar to the [IMAP] sequence set; however, the "*" value for a sequence number is not permitted. 2. Additional Commands The following command definition is an extension to [IMAP] section 6.4. 2.1. UID EXPUNGE Command Arguments: sequence set Data: Result: untagged responses: EXPUNGE OK - expunge completed NO - expunge failure (e.g., permission denied) BAD - command unknown or arguments invalid The UID EXPUNGE command permanently removes all messages that both have the \Deleted flag set and have a UID that is included in the specified sequence set from the currently selected mailbox. If a message either does not have the \Deleted flag set or has a UID that is not included in the specified sequence set, it is not affected. This command is particularly useful for disconnected use clients. By using UID EXPUNGE instead of EXPUNGE when resynchronizing with the server, the client can ensure that it does not inadvertantly remove any messages that have been marked as \Deleted by other clients between the time that the client was last connected and the time the client resynchronizes. 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, then issuing the EXPUNGE command. Finally, the client should use the STORE command to restore the \Deleted flag on the messages in which it was temporarily removed. Alternatively, the client may fall back to using just the EXPUNGE command, risking the unintended removal of some messages. Crispin Standards Track [Page 2]

Example: C: A003 UID EXPUNGE 3000:3002 S: * 3 EXPUNGE S: * 3 EXPUNGE S: * 3 EXPUNGE S: A003 OK UID EXPUNGE completed 3. Additional Response Codes The following response codes are extensions to the response codes defined in [IMAP] section 7.1. With limited exceptions, discussed below, server implementations that advertise the UIDPLUS extension SHOULD return these response codes. In the case of a mailbox that has permissions set so that the client can COPY or APPEND to the mailbox, but not SELECT or EXAMINE it, the server SHOULD NOT send an APPENDUID or COPYUID response code as it would disclose information about the mailbox. In the case of a mailbox that has UIDNOTSTICKY status (as defined below), the server MAY omit the APPENDUID or COPYUID response code as it is not meaningful. If the server does not return the APPENDUID or COPYUID response codes, the client can discover this information by selecting the destination mailbox. The location of messages placed in the destination mailbox by COPY or APPEND can be determined by using FETCH and/or SEARCH commands (e.g., for Message-ID or some unique marker placed in the message in an APPEND). APPENDUID Followed by the UIDVALIDITY of the destination mailbox and the UID assigned to the appended message in the destination mailbox, indicates that the message has been appended to the destination mailbox with that UID. If the server also supports the [MULTIAPPEND] extension, and if multiple messages were appended in the APPEND command, then the second value is a UID set containing the UIDs assigned to the appended messages, in the order they were transmitted in the APPEND command. This UID set may not contain extraneous UIDs or the symbol "*". Note: the UID set form of the APPENDUID response code MUST NOT be used if only a single message was appended. In particular, a server MUST NOT send a range such as 123:123. This is because a client that does not support [MULTIAPPEND] expects only a single UID and not a UID set. Crispin Standards Track [Page 3]

UIDs are assigned in strictly ascending order in the mailbox (refer to [IMAP], section 2.3.1.1) and UID ranges are as in [IMAP]; in particular, note that a range of 12:10 is exactly equivalent to 10:12 and refers to the sequence 10,11,12. This response code is returned in a tagged OK response to the APPEND command. COPYUID Followed by the UIDVALIDITY of the destination mailbox, a UID set containing the UIDs of the message(s) in the source mailbox that were copied to the destination mailbox and containing the UIDs assigned to the copied message(s) in the destination mailbox, indicates that the message(s) have been copied to the destination mailbox with the stated UID(s). The source UID set is in the order the message(s) were copied; the destination UID set corresponds to the source UID set and is in the same order. Neither of the UID sets may contain extraneous UIDs or the symbol "*". UIDs are assigned in strictly ascending order in the mailbox (refer to [IMAP], section 2.3.1.1) and UID ranges are as in [IMAP]; in particular, note that a range of 12:10 is exactly equivalent to 10:12 and refers to the sequence 10,11,12. This response code is returned in a tagged OK response to the COPY command. UIDNOTSTICKY The selected mailbox is supported by a mail store that does not support persistent UIDs; that is, UIDVALIDITY will be different each time the mailbox is selected. Consequently, APPEND or COPY to this mailbox will not return an APPENDUID or COPYUID response code. This response code is returned in an untagged NO response to the SELECT command. Note: servers SHOULD NOT have any UIDNOTSTICKY mail stores. This facility exists to support legacy mail stores in which it is technically infeasible to support persistent UIDs. This should be avoided when designing new mail stores. Crispin Standards Track [Page 4]

Example: C: A003 APPEND saved-messages (\Seen) {297} C: Date: Mon, 7 Feb 1994 21:52:25-0800 (PST) C: From: Fred Foobar <foobar@example.com> C: Subject: afternoon meeting C: To: mooch@example.com C: Message-Id: <B27397-0100000@example.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 C: A004 COPY 2:4 meeting S: A004 OK [COPYUID 38505 304,319:320 3956:3958] Done C: A005 UID COPY 305:310 meeting S: A005 OK No matching messages, so nothing copied C: A006 COPY 2 funny S: A006 OK Done C: A007 SELECT funny S: * 1 EXISTS S: * 1 RECENT S: * OK [UNSEEN 1] Message 1 is first unseen S: * OK [UIDVALIDITY 3857529045] Validity session-only S: * OK [UIDNEXT 2] Predicted next UID S: * NO [UIDNOTSTICKY] Non-persistent UIDs S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) S: * OK [PERMANENTFLAGS (\Deleted \Seen)] Limited S: A007 OK [READ-WRITE] SELECT completed In this example, A003 and A004 demonstrate successful appending and copying to a mailbox that returns the UIDs assigned to the messages. A005 is an example in which no messages were copied; this is because in A003, we see that message 2 had UID 304, and message 3 had UID 319; therefore, UIDs 305 through 310 do not exist (refer to section 2.3.1.1 of [IMAP] for further explanation). A006 is an example of a message being copied that did not return a COPYUID; and, as expected, A007 shows that the mail store containing that mailbox does not support persistent UIDs. 4. Formal Syntax Formal syntax is defined using ABNF [ABNF], which extends the ABNF rules defined in [IMAP]. The IMAP4 ABNF should be imported before attempting to validate these rules. append-uid capability = uniqueid =/ "UIDPLUS" Crispin Standards Track [Page 5]

command-select =/ uid-expunge resp-code-apnd = "APPENDUID" SP nz-number SP append-uid resp-code-copy = "COPYUID" SP nz-number SP uid-set SP uid-set resp-text-code =/ resp-code-apnd / resp-code-copy / "UIDNOTSTICKY" ; incorporated before the expansion rule of ; atom [SP 1*<any TEXT-CHAR except "]">] ; that appears in [IMAP] uid-expunge uid-set uid-range = "UID" SP "EXPUNGE" SP sequence-set = (uniqueid / uid-range) *("," uid-set) = (uniqueid ":" uniqueid) ; two uniqueid values and all values ; between these two regards of order. ; Example: 2:4 and 4:2 are equivalent. Servers that support [MULTIAPPEND] will have the following extension to the above rules: append-uid =/ uid-set ; only permitted if client uses [MULTIAPPEND] ; to append multiple messages. 5. Security Considerations The COPYUID and APPENDUID response codes return information about the mailbox, which may be considered sensitive if the mailbox has permissions set that permit the client to COPY or APPEND to the mailbox, but not SELECT or EXAMINE it. Consequently, these response codes SHOULD NOT be issued if the client does not have access to SELECT or EXAMINE the mailbox. 6. IANA Considerations This document constitutes registration of the UIDPLUS capability in the imap4-capabilities registry, replacing [RFC2359]. 7. Normative References [ABNF] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 4234, October 2005. Crispin Standards Track [Page 6]

[IMAP] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1", RFC 3501, March 2003. [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [MULTIAPPEND] Crispin, M., "Internet Message Access Protocol (IMAP) - MULTIAPPEND Extension", RFC 3502, March 2003. 8. Informative References [RFC2359] Myers, J., "IMAP4 UIDPLUS extension", RFC 2359, June 1998. 9. Changes from RFC 2359 This document obsoletes [RFC2359]. However, it is based upon that document, and takes substantial text from it (albeit with numerous clarifications in wording). [RFC2359] implied that a server must always return COPYUID/APPENDUID data; thus suggesting that in such cases the server should return arbitrary data if the destination mailbox did not support persistent UIDs. This document adds the UIDNOTSTICKY response code to indicate that a mailbox does not support persistent UIDs, and stipulates that a UIDPLUS server does not return COPYUID/APPENDUID data when the COPY (or APPEND) destination mailbox has UIDNOTSTICKY status. Author s Address Mark R. Crispin Networks and Distributed Computing University of Washington 4545 15th Avenue NE Seattle, WA 98105-4527 Phone: (206) 543-5762 EMail: MRC@CAC.Washington.EDU Crispin Standards Track [Page 7]

Full Copyright Statement Copyright (C) The Internet Society (2005). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietfipr@ietf.org. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. Crispin Standards Track [Page 8]