view Side-By-Side changes
Network Working Group M.Gahrns, MicrosoftGahrns Request for Comments: 3348 R.Cheng,Cheng Category: Informational Microsoft July 2002 The InternetDraft Document: draft-gahrns-imap-child-mailbox-02.txt December 1999 IMAP4Message Action Protocol (IMAP4) Child Mailbox Extension Status of this Memo Thisdocument is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents ofmemo provides information for the InternetEngineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time.community. Itis inappropriate to use Internet- Drafts as reference material or to cite them other than as "work in progress." The listdoes not specify an Internet standard ofcurrent Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The listany kind. Distribution ofInternet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. 0. Meta Information onthisdraft This informationmemo isintended to facilitate discussion. It will be removed when this document leaves the Internet-Draft stage. This draft is now being discussed on the IMAPEXT mailing list at ietf-imapext@imc.org. Subscription requests can be sent to ietf- imapext-request@imc.org (send an email message with the word "subscribe" in the body). More information on the mailing list along withunlimited. Copyright Notice Copyright (C) The Internet Society (2002). All Rights Reserved. Abstract The Internet Message Action Protocol (IMAP4) CHILDREN extension provides aWWW archive of back messages is available at HTTP://www.imc.org. Earlier discussion took place on the IMAP Mailing List imap@u.washington.edu At the 45th IETF in Oslo, and 46th IETF in Washington, there was further discussion regarding this draft. I am making what I believe should be the final editorial changes to this draft. At several of the previous IMC interop events, several IMAP vendors have done implementations of this proposal. Further discussions are needed as to whether this draft should be submitted asmechanism for aproposed standard or as an informational or historical RFC. Submitting as an information or historical RFC would serveclient todocument the current Gahrns and Cheng 1 IMAP4 Child Mailbox Extension December 1999 implementations and elements of it could becomeefficiently determine if abasis ofparticular mailbox has children, without issuing ageneralLISTextension. There is some interest in starting"" * or acompletely new LIST Extension draft that addresses general extensibility of theLISTcommand. Similar functionality to the \HasChildren and \HasNoChildren flags could be incorporated into this new LIST Extension, but the client would then have an opportunity to request whether or not the server should return this information. This could be an advantage over the current draft"" % forservers whereeach mailbox. 1. Conventions used in thisinformation is expensive to compute, since the server would only need to compute the information when it knew thatdocument In examples, "C:" and "S:" indicate lines sent by the clientrequesting the information was able to use it. Changes since April 99, draft-01 Incorporated comments from the list discussions: 1) Explicitly note that it is an error for the server to return both a \HasChildrenand server respectively. If such lines are wrapped without a\NoInferiors attribute in a LIST response. 2) Note thatnew "C:" or "S:" label, then the\HasChildrenwrapping is for editorial clarity and\HasNoChildren attribute mayis notapply topart of theLSUBcommand.3) Note how \HasChildrenThe key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and\HasNoChildren apply in the referral case. 4) Added back advertising CHILDREN"OPTIONAL" inthe capability response as was the consensus during the Washington IMAP-EXT WG. Rational was thatthismade it easier for clients. 1. Abstractdocument are to be interpreted as described in [RFC-2119]. 2. Introduction and Overview Many IMAP4 [RFC-2060] clients present to the user a hierarchical view of the mailboxes that a user has access to. Rather than initially presenting to the user the entire mailbox hierarchy, it is often preferable to show to the user a collapsed outline list of the mailbox hierarchy (particularly if there is a large number of mailboxes). The user can then expand the collapsed outline hierarchy as needed. It is common to include within the collapsed hierarchy a Gahrns, et al. Informational [Page 1] RFC 3348 IMAP4 Child Mailbox Extension July 2002 visual clue (such as a "+") to indicate that there are child mailboxes under a particular mailbox. When the visual clue is clicked thehierarchy list is expandedhierarchy list is expanded to show the child mailboxes. Several IMAP vendors implemented this proposal, and it is proposed to document this behavior and functionality as an Informational RFC. There is interest in addressing the general extensibility of the IMAP LIST command through an IMAP LIST Extension draft. Similar functionality to the \HasChildren and \HasNoChildren flags could be incorporated into this new LIST Extension. It is proposed that the more general LIST Extension draft proceed on the standards track with this proposal being relegated toshowinformational status only. If thechild mailboxes. The CHILDREN extension providesfunctionality of the \HasChildren and \HasNoChildren flags were incorporated into amechanism formore general LIST extension, this would have the advantage that a client could then have the opportunity toefficiently determine if a particular mailbox has children, without issuing a LIST "" *request whether ora LIST "" % for each mailbox name. Gahrns and Cheng Expires June 2000 2 IMAP4 Child Mailbox Extension December 1999 2. Conventions used in this document In examples, "C:" and "S:" indicate lines sent bynot theclient andserverrespectively. If such lines are wrapped without a new "C:" or "S:" label, thenshould return this information. This would be an advantage over thewrapping iscurrent draft foreditorial clarity andservers where this information isnot part ofexpensive to compute, since thecommand. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document areserver would only need tobe interpreted as described in [RFC-2119].compute the information when it knew that the client requesting the information was able to consume it. 3. Requirements IMAP4 servers that support this extension MUST list the keyword CHILDREN in their CAPABILITY response. The CHILDREN extension defines two new attributes that MAY be returned within a LIST response. \HasChildren - The presence of this attribute indicates that the mailbox has child mailboxes. Servers SHOULD NOT return \HasChildren if child mailboxes exist, but none will be displayed to the current user in a LIST response (as should be the case where child mailboxes exist, but a client does not have permissions to access them.) In this case, \HasNoChildren SHOULD be used. In many cases, however, a server may not be able to efficiently compute whether a user has access to all child mailboxes, or multiple users may be accessing the same account and simultaneously changing the mailbox hierarchy. As such a client MUST be prepared to accept the \HasChildren attribute as a hint. That is, a mailbox MAY be flagged with the \HasChildren attribute, but no child mailboxes will appear in a subsequent LIST response. Gahrns, et al. Informational [Page 2] RFC 3348 IMAP4 Child Mailbox Extension July 2002 Example 3.1: ============ /*** Consider a server that has the following mailbox hierarchy: INBOX ITEM_1 ITEM_1A ITEM_2 TOP_SECRET Where INBOX, ITEM_1 and ITEM_2 are top level mailboxes. ITEM_1A is a child mailbox of ITEM_1 and TOP_SECRET is a child mailbox of ITEM_2 that the currently logged on user does NOT have access to.Gahrns and Cheng Expires June 2000 3 IMAP4 Child Mailbox Extension December 1999Note that in this case, the server is not able to efficiently compute access rights to child mailboxes and responds with a \HasChildren attribute for mailbox ITEM_2, even though ITEM_2/TOP_SECRET does not appear in the list response. ***/ C: A001 LIST "" * S: * LIST (\HasNoChildren) "/" INBOX S: * LIST (\HasChildren) "/" ITEM_1 S: * LIST (\HasNoChildren) "/" ITEM_1/ITEM_1A S: * LIST (\HasChildren) "/" ITEM_2 S: A001 OK LIST Completed \HasNoChildren - The presence of this attribute indicates that the mailbox has NO child mailboxes that are accessible to the currently authenticated user. If a mailbox has the \Noinferiors attribute, the \HasNoChildren attribute is redundant and SHOULD be omitted in the LIST response. In some instances a server that supports the CHILDREN extension MAY NOT be able to determine whether a mailbox has children. For example it may have difficulty determining whether there are child mailboxes when LISTing mailboxes while operating in a particular namespace. In these cases, a server MAY exclude both the \HasChildren and \HasNoChildren attributes in the LIST response. As such, a client can not make any assumptions about whether a mailbox has children based upon the absence of a single attribute. It is an error for the server to return both a \HasChildren and a \HasNoChildren attribute in a LIST response. Gahrns, et al. Informational [Page 3] RFC 3348 IMAP4 Child Mailbox Extension July 2002 It is an error for the server to return both a \HasChildren and a \NoInferiors attribute in a LIST response. Note: the \HasNoChildren attribute should not be confused with the IMAP4 [RFC-2060] defined attribute \Noinferiors which indicates that no child mailboxes exist now and none can be created in the future. The \HasChildren and \HasNoChildren attributes might not be returned in response to a LSUB response. Many servers maintain a simple mailbox subscription list that is not updated when the underlying mailbox structure is changed. A client MUST NOT assume that hierarchy information will be maintained in the subscription list. RLIST is a command defined in [RFC-2193] that includes in a LIST response mailboxes that are accessible only via referral. That is, a client must explicitly issue an RLIST command to see a list of these mailboxes. Thus in the case where a mailbox has child mailboxes that are available only via referral, the mailboxes wouldGahrns and Cheng Expires June 2000 4 IMAP4 Child Mailbox Extension December 1999appear as \HasNoChildren in response to the LIST command, and \HasChildren in response to the RLIST command. 5. Formal Syntax The following syntax specification uses the augmented Backus-Naur Form (BNF) as described in [ABNF]. Two new mailbox attributes are defined as flag_extensions to the IMAP4 mailbox_list response: HasChildren = "\HasChildren" HasNoChildren = "\HasNoChildren" 6. Security Considerations This extension provides a client a more efficient means of determining whether a particular mailbox has children. If a mailbox has children, but the currently authenticated user does not have access to any of them, the server SHOULD respond with a \HasNoChildren attribute. In many cases, however, a server may not be able to efficiently compute whether a user has access to all child mailboxes. If such a server responds with a \HasChildren attribute, when in fact the currently authenticated user does not have access to any child mailboxes, potentially more information is conveyed about the mailbox than intended. A server designed with such levels of security in mind SHOULD NOT attach the \HasChildren attribute to a mailbox unless the server is certain that the user has access to at least one of the child mailboxes. Gahrns, et al. Informational [Page 4] RFC 3348 IMAP4 Child Mailbox Extension July 2002 7. References[RFC-2060],[RFC-2060] Crispin, M., "Internet Message Access Protocol - Version 4rev1", RFC 2060,University of Washington,December 1996.[RFC-2119],[RFC-2119] Bradner,S,S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119,Harvard University,March1997 [RFC-2234],1997. [RFC-2234] Crocker, D.Crockerand P. Overell, Editors, "Augmented BNF for Syntax Specifications: ABNF", RFC 2234,Internet Mail Consortium,November1997 [RFC-2193],1997. [RFC-2193] Gahrns,M,M., "IMAP4 Mailbox Referrals", RFC 2193,Microsoft Corporation,September19971997. 8. AcknowledgmentsGahrns and Cheng Expires June 2000 5 IMAP4 Child Mailbox Extension December 1999The authors would like to thank the participants of several IMC Mail Connect events for their input when this idea was originally presented and refined. 9. Author's Address Mike Gahrns Microsoft One Microsoft Way Redmond, WA,9807298052 Phone: (425) 936-9833Email:EMail: mikega@microsoft.com Raymond Cheng Microsoft One Microsoft Way Redmond, WA,9807298052 Phone: (425) 703-4913Email:EMail: raych@microsoft.comGahrns and Cheng Expires June 2000 6Gahrns, et al. Informational [Page 5] RFC 3348 IMAP4 Child Mailbox ExtensionDecember 1999July 2002 10. Full Copyright Statement Copyright (C) The Internet Society(1999).(2002). 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 neededForfor 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.Gahrns and Cheng Expires June 2000 7Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. Gahrns, et al. Informational [Page 6] ----