summaryrefslogtreecommitdiff
path: root/imap/docs/rfc/rfc5161.txt
diff options
context:
space:
mode:
Diffstat (limited to 'imap/docs/rfc/rfc5161.txt')
-rw-r--r--imap/docs/rfc/rfc5161.txt395
1 files changed, 0 insertions, 395 deletions
diff --git a/imap/docs/rfc/rfc5161.txt b/imap/docs/rfc/rfc5161.txt
deleted file mode 100644
index 13bbbf74..00000000
--- a/imap/docs/rfc/rfc5161.txt
+++ /dev/null
@@ -1,395 +0,0 @@
-
-
-
-
-
-
-Network Working Group A. Gulbrandsen, Ed.
-Request for Comments: 5161 Oryx Mail Systems GmbH
-Category: Standards Track A. Melnikov, Ed.
- Isode Limited
- March 2008
-
-
- The IMAP ENABLE 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.
-
-Abstract
-
- Most IMAP extensions are used by the client when it wants to and the
- server supports it. However, a few extensions require the server to
- know whether a client supports that extension. The ENABLE extension
- allows an IMAP client to say which extensions it supports.
-
-1. Overview
-
- Several IMAP extensions allow the server to return unsolicited
- responses specific to these extensions in certain circumstances.
- However, servers cannot send those unsolicited responses until they
- know that the clients support such extensions and thus won't choke on
- the extension response data.
-
- Up until now, extensions have typically stated that a server cannot
- send the unsolicited responses until after the client has used a
- command with the extension data (i.e., at that point the server knows
- the client is aware of the extension). CONDSTORE ([RFC4551]),
- ANNOTATE ([ANNOTATE]), and some extensions under consideration at the
- moment use various commands to enable server extensions. For
- example, CONDSTORE uses a SELECT or FETCH parameter, and ANNOTATE
- uses a side effect of FETCH.
-
- The ENABLE extension provides an explicit indication from the client
- that it supports particular extensions. This is done using a new
- ENABLE command.
-
- An IMAP server that supports ENABLE advertises this by including the
- word ENABLE in its capability list.
-
-
-
-
-Gulbrandsen & Melnikov Standards Track [Page 1]
-
-RFC 5161 The IMAP ENABLE Extension March 2008
-
-
- Most IMAP extensions do not require the client to enable the
- extension in any way.
-
-2. Conventions Used in This Document
-
- The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
- "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
- document are to be interpreted as described in [RFC2119].
-
- Formal syntax is defined by [RFC5234] and [RFC3501].
-
- Example lines prefaced by "C:" are sent by the client and ones
- prefaced by "S:" by the server. The five characters [...] means that
- something has been elided.
-
-3. Protocol Changes
-
-3.1. The ENABLE Command
-
- Arguments: capability names
-
- Result: OK: Relevant capabilities enabled
- BAD: No arguments, or syntax error in an argument
-
- The ENABLE command takes a list of capability names, and requests the
- server to enable the named extensions. Once enabled using ENABLE,
- each extension remains active until the IMAP connection is closed.
- For each argument, the server does the following:
-
- - If the argument is not an extension known to the server, the server
- MUST ignore the argument.
-
- - If the argument is an extension known to the server, and it is not
- specifically permitted to be enabled using ENABLE, the server MUST
- ignore the argument. (Note that knowing about an extension doesn't
- necessarily imply supporting that extension.)
-
- - If the argument is an extension that is supported by the server and
- that needs to be enabled, the server MUST enable the extension for
- the duration of the connection. At present, this applies only to
- CONDSTORE ([RFC4551]). Note that once an extension is enabled,
- there is no way to disable it.
-
- If the ENABLE command is successful, the server MUST send an untagged
- ENABLED response (see Section 3.2).
-
-
-
-
-
-
-Gulbrandsen & Melnikov Standards Track [Page 2]
-
-RFC 5161 The IMAP ENABLE Extension March 2008
-
-
- Clients SHOULD only include extensions that need to be enabled by the
- server. At the time of publication, CONDSTORE is the only such
- extension (i.e., ENABLE CONDSTORE is an additional "CONDSTORE
- enabling command" as defined in [RFC4551]). Future RFCs may add to
- this list.
-
- The ENABLE command is only valid in the authenticated state (see
- [RFC3501]), before any mailbox is selected. Clients MUST NOT issue
- ENABLE once they SELECT/EXAMINE a mailbox; however, server
- implementations don't have to check that no mailbox is selected or
- was previously selected during the duration of a connection.
-
- The ENABLE command can be issued multiple times in a session. It is
- additive; i.e., "ENABLE a b", followed by "ENABLE c" is the same as a
- single command "ENABLE a b c". When multiple ENABLE commands are
- issued, each corresponding ENABLED response SHOULD only contain
- extensions enabled by the corresponding ENABLE command.
-
- There are no limitations on pipelining ENABLE. For example, it is
- possible to send ENABLE and then immediately SELECT, or a LOGIN
- immediately followed by ENABLE.
-
- The server MUST NOT change the CAPABILITY list as a result of
- executing ENABLE; i.e., a CAPABILITY command issued right after an
- ENABLE command MUST list the same capabilities as a CAPABILITY
- command issued before the ENABLE command. This is demonstrated in
- the following example:
-
- C: t1 CAPABILITY
- S: * CAPABILITY IMAP4rev1 ID LITERAL+ ENABLE X-GOOD-IDEA
- S: t1 OK foo
- C: t2 ENABLE CONDSTORE X-GOOD-IDEA
- S: * ENABLED X-GOOD-IDEA
- S: t2 OK foo
- C: t3 CAPABILITY
- S: * CAPABILITY IMAP4rev1 ID LITERAL+ ENABLE X-GOOD-IDEA
- S: t3 OK foo again
-
- In the following example, the client enables CONDSTORE:
-
- C: a1 ENABLE CONDSTORE
- S: * ENABLED CONDSTORE
- S: a1 OK Conditional Store enabled
-
-
-
-
-
-
-
-
-Gulbrandsen & Melnikov Standards Track [Page 3]
-
-RFC 5161 The IMAP ENABLE Extension March 2008
-
-
-3.2. The ENABLED Response
-
- Contents: capability listing
-
- The ENABLED response occurs as a result of an ENABLE command. The
- capability listing contains a space-separated listing of capability
- names that the server supports and that were successfully enabled.
- The ENABLED response may contain no capabilities, which means that no
- extensions listed by the client were successfully enabled.
-
-3.3. Note to Designers of Extensions That May Use the ENABLE Command
-
- Designers of IMAP extensions are discouraged from creating extensions
- that require ENABLE unless there is no good alternative design.
- Specifically, extensions that cause potentially incompatible behavior
- changes to deployed server responses (and thus benefit from ENABLE)
- have a higher complexity cost than extensions that do not.
-
-4. Formal Syntax
-
- The following syntax specification uses the Augmented Backus-Naur
- Form (ABNF) notation as specified in [RFC5234] including the core
- rules in Appendix B.1. [RFC3501] defines the non-terminals
- "capability" and "command-any".
-
- 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.
-
- capability =/ "ENABLE"
-
- command-any =/ "ENABLE" 1*(SP capability)
-
- response-data =/ "*" SP enable-data CRLF
-
- enable-data = "ENABLED" *(SP capability)
-
-5. Security Considerations
-
- It is believed that this extension doesn't add any security
- considerations that are not already present in the base IMAP protocol
- [RFC3501].
-
-6. IANA Considerations
-
- The IANA has added ENABLE to the IMAP4 Capabilities Registry.
-
-
-
-
-Gulbrandsen & Melnikov Standards Track [Page 4]
-
-RFC 5161 The IMAP ENABLE Extension March 2008
-
-
-7. Acknowledgments
-
- The editors would like to thank Randy Gellens, Chris Newman, Peter
- Coates, Dave Cridland, Mark Crispin, Ned Freed, Dan Karp, Cyrus
- Daboo, Ken Murchison, and Eric Burger for comments and corrections.
- However, this doesn't necessarily mean that they endorse this
- extension, agree with all details, or are responsible for errors
- introduced by the editors.
-
-8. Normative References
-
- [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
- Requirement Levels", BCP 14, RFC 2119, March 1997.
-
- [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
- 4rev1", RFC 3501, March 2003.
-
- [RFC5234] Crocker, D., Ed., and P. Overell, "Augmented BNF for
- Syntax Specifications: ABNF", STD 68, RFC 5234, January
- 2008.
-
- [RFC4551] Melnikov, A. and S. Hole, "IMAP Extension for Conditional
- STORE Operation or Quick Flag Changes Resynchronization",
- RFC 4551, June 2006.
-
-9. Informative References
-
- [ANNOTATE] Daboo, C. and R. Gellens, "IMAP ANNOTATE Extension", Work
- in Progress, August 2006.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Gulbrandsen & Melnikov Standards Track [Page 5]
-
-RFC 5161 The IMAP ENABLE Extension March 2008
-
-
-Editors' Addresses
-
- Arnt Gulbrandsen
- Oryx Mail Systems GmbH
- Schweppermannstr. 8
- D-81671 Muenchen
- Germany
-
- Fax: +49 89 4502 9758
- EMail: arnt@oryx.com
-
-
- Alexey Melnikov
- Isode Ltd
- 5 Castle Business Village
- 36 Station Road
- Hampton, Middlesex TW12 2BX
- UK
-
- EMail: Alexey.Melnikov@isode.com
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Gulbrandsen & Melnikov Standards Track [Page 6]
-
-RFC 5161 The IMAP ENABLE Extension March 2008
-
-
-Full Copyright Statement
-
- Copyright (C) The IETF Trust (2008).
-
- 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, THE IETF TRUST 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
- ietf-ipr@ietf.org.
-
-
-
-
-
-
-
-
-
-
-
-
-Gulbrandsen & Melnikov Standards Track [Page 7]
-