RFC 3691
Internet Message Access Protocol (IMAP) UNSELECT command
RFC 3691: Internet Message Access Protocol (IMAP) UNSELECT command ๐
okay bestie, so this one is RFC 3691, and it's a Standards Track doc from February 2004 ๐ . A. Melnikov from Isode Ltd. wrote it ๐. Its job is adding an UNSELECT command to IMAP, and it doesn't say anything about obsoleting or updating other RFCs โจ.
Status of This Memo โจ
this is an Internet standards track protocol for the Internet community ๐ it's asking everyone to talk about it and send ideas for making it better ๐ซถ. if you want to know where it stands in the standardization process, check the current "Internet Official Protocol Standards" (STD 1) ๐. and distribution is unlimited, so share away ๐ฆ
Copyright Notice ๐ธ
Copyright (C) The Internet Society (2004). All Rights Reserved.
Abstract ๐ง
this doc defines an UNSELECT command that lets you close the current mailbox in an Internet Message Access Protocol - version 4 (IMAP4) session without expunging it ๐. some kinds of IMAP clients need to free up resources tied to the selected mailbox without picking a different one ๐. IMAP4 already has ways to do this (a SELECT with a nonexistent mailbox name, or reselecting the same mailbox with EXAMINE), but ngl that's messy, so a cleaner solution is what everyone wants ๐ฅ
Table of Contents ๐
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. UNSELECT command . . . . . . . . . . . . . . . . . . . . . . . 2
3. Security Considerations. . . . . . . . . . . . . . . . . . . . 3
4. Formal Syntax. . . . . . . . . . . . . . . . . . . . . . . . . 3
5. IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 3
6. Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . 3
7. Normative References . . . . . . . . . . . . . . . . . . . . . 4
8. Author's Address . . . . . . . . . . . . . . . . . . . . . . . 4
9. Full Copyright Statement . . . . . . . . . . . . . . . . . . . 5
1. Introduction ๐
okay so some IMAP clients need to let go of resources tied to the selected mailbox without switching to another one ๐ซถ. IMAP4 technically handles it (SELECT with a nonexistent mailbox name, or EXAMINE on the same mailbox), but it's clunky, and a cleaner fix is lowkey overdue โจ
[IMAP4] already has a CLOSE command. it closes the selected mailbox and permanently removes every message flagged \Deleted ๐. but IMAP4 doesn't have anything that just closes the mailbox without expunging, so this doc adds UNSELECT for exactly that ๐
a server that supports this extension says so with a capability name of UNSELECT ๐ฆ
in the examples, C: means lines the client sends and S: means lines the server sends ๐
the keywords "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" in this document, when they're typed in uppercase, get read the way they're defined in "Key words for use in RFCs to Indicate Requirement Levels" [KEYWORDS] ๐
2. UNSELECT Command ๐
Arguments: none
Responses: no specific responses for this command
Result:
OK - unselect completed, now in authenticated state
BAD - no mailbox selected, or argument supplied but
none permitted
the UNSELECT command frees the server's resources tied to the selected mailbox and sends the server back to the authenticated state ๐ it does the same stuff as CLOSE, except no messages get permanently removed from the mailbox that's currently selected ๐
example, bestie:
C: A341 UNSELECT
S: A341 OK Unselect completed
3. Security Considerations ๐
It is believed that this extension doesn't raise any additional security concerns not already discussed in [IMAP4]. ๐จ (so yeah, go read [IMAP4]'s security stuff, it's the same tea โ)
4. Formal Syntax ๐งฉ
this part uses the Augmented Backus-Naur Form (ABNF) notation from [ABNF] โจ any non-terminals that are referenced but not defined here are defined by [IMAP4] ๐
unless noted otherwise, all the alphabetic characters are case-insensitive ๐. using upper or lower case to define token strings is just for editorial clarity, and implementations MUST accept these strings in a case-insensitive fashion ๐ฅ
command-select /= "UNSELECT"
5. IANA Considerations ๐ธ
IMAP4 capabilities get registered by publishing a standards track or IESG approved experimental RFC ๐ฎ the registry currently lives at:
http://www.iana.org/assignments/imap4-capabilities
this doc defines the UNSELECT IMAP capabilities, and IANA has added this capability to the registry ๐
6. Acknowledgments ๐ซถ
UNSELECT was originally implemented by Tim Showalter in the Cyrus IMAP server ๐
the author also wants to thank Vladimir Butenko and Mark Crispin for reminding everyone that UNSELECT needed to be documented ๐ and Simon Josefsson gets a shoutout for pointing out that there are multiple ways to implement UNSELECT ๐ง
7. Normative References ๐
- [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
- [IMAP4] Crispin, M., "Internet Message Access Protocol - Version 4rev1", RFC 3501, March 2003.
- [ABNF] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 2234, November 1997.
8. Author's Address ๐
Alexey Melnikov
Isode Limited
5 Castle Business Village
Hampton, Middlesex TW12 2BX
EMail: Alexey.Melnikov@isode.com
URI: http://www.melnikov.ca/
9. Full Copyright Statement โญ
Copyright (C) The Internet Society (2004). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors keep all their rights ๐
this document and the info in it 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 on 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 on the extent to which any license under such rights might or might not be available ๐ it also doesn't claim to have made any independent effort to find those rights. info about how RFC documents handle rights is in BCP 78 and BCP 79 ๐
copies of IPR disclosures made to the IETF Secretariat, any assurances of licenses to be made available, or the results of an attempt to get a general license or permission for implementers or users to use these proprietary rights can be found in the IETF's online IPR repository at http://www.ietf.org/ipr ๐ (that's a text link, not a clickable one, but you can type it in ๐ )
the IETF invites any interested party to bring to its attention any copyrights, patents, patent applications, or other proprietary rights that may cover technology required to implement this standard ๐ send that info to the IETF at ietf-ipr@ietf.org ๐ฌ
Acknowledgement ๐ท
Funding for the RFC Editor function is currently provided by the Internet Society ๐
๐ฆ where this page comes from
- ietf: rfc3691 2004-02
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms