IMAP Extensions Working Group                      M. Gahrns, Microsoft 
                                                    R. Cheng, Microsoft 
INTERNET-DRAFT                                                
Document: draft-gahrns-imap-child-mailbox-03              November 2000 
 
 
                          IMAP4 Child Mailbox Extension 
 
 
Status of this Memo 
    
   This document is an Internet-Draft and is in full conformance with   
   all provisions of Section 10 of RFC 2026. 
    
   Internet-Drafts are working documents of the Internet Engineering   
   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.  It is inappropriate to use Internet-Drafts as reference   
   material or to cite them other than as "work in progress." 
    
   The list of current Internet-Drafts can be accessed at   
   http://www.ietf.org/ietf/1id-abstracts.txt 
    
   To view the list Internet-Draft Shadow Directories, see   
   http://www.ietf.org/shadow.html. 
    
    
1. Abstract 
 
   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 visual clue (such as a "+") to indicate that there are 
   child mailboxes under a particular mailbox.   When the visual clue 
   is clicked the hierarchy list is expanded to show the child 
   mailboxes. 
    
   The CHILDREN extension provides a mechanism for a client to 
   efficiently determine if a particular mailbox has children, without 
   issuing a LIST "" * or a LIST "" % for each mailbox name. 
    
   Several IMAP vendors have implemented this proposal and this 
   documents the expected behavior of existing implementations. The 
   IMAPEXT Working Group, is currently considering a LIST extension 
   where it has been proposed to incorporate similar functionality to 
   the \HasChildren and \HasNoChildren flags. With this new LIST 
  
Gahrns and Cheng           Expires May 2001                          1 

                    IMAP4 Child Mailbox Extension       November 2000 
 
 
   Extension, the client would have an opportunity to request whether 
   or not the server should return child mailbox information.  This 
   would be an advantage for servers where this information is 
   expensive to compute, since the server would only need to compute 
   the information when it knew that the client requesting the 
   information would be able to use it. 
    
   As such, it is expected that this internet-draft will move to 
   informational status, as child mailbox information is absorbed into 
   a more general LIST extension. 
    
    
      
2. Conventions used in this document 
    
   In examples, "C:" and "S:" indicate lines sent by the client and 
   server respectively.   If such lines are wrapped without a new "C:" 
   or "S:" label, then the wrapping is for editorial clarity and is not 
   part of the command. 
    
   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 [RFC-2119]. 
    
    
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. 
    
    
   Example 3.1: 
   ============ 
  
Gahrns and Cheng           Expires May 2001                          2 

                    IMAP4 Child Mailbox Extension       November 2000 
 
 
    
   /*** 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.  
    
   Note 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. 
    
   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. 
  
Gahrns and Cheng           Expires May 2001                          3 

                    IMAP4 Child Mailbox Extension       November 2000 
 
 
    
   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 would 
   appear 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.    
    
    
7. References 
 
   [RFC-2060], Crispin, M., "Internet Message Access Protocol - Version 
   4rev1", RFC 2060, University of Washington, December 1996. 
    
   [RFC-2119], Bradner, S, "Key words for use in RFCs to Indicate 
   Requirement Levels", RFC 2119, Harvard University, March 1997 
  
Gahrns and Cheng           Expires May 2001                          4 

                    IMAP4 Child Mailbox Extension       November 2000 
 
 
    
   [RFC-2234], D. Crocker and P. Overell, Editors, "Augmented BNF for 
   Syntax Specifications: ABNF", RFC 2234, Internet Mail Consortium, 
   November 1997 
    
   [RFC-2193], Gahrns, M, "IMAP4 Mailbox Referrals", RFC 2193, 
   Microsoft Corporation, September 1997 
    
    
8.  Acknowledgments 
    
   The 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, 98072 
    
   Phone: (425) 936-9833 
   Email: mikega@microsoft.com 
    
   Raymond Cheng 
   Microsoft 
   One Microsoft Way 
   Redmond, WA, 98072 
    
   Phone: (425) 703-4913 
   Email: raych@microsoft.com 
    
    
    
    
    















  
Gahrns and Cheng           Expires May 2001                          5 

                    IMAP4 Child Mailbox Extension       November 2000 
 
 
Full Copyright Statement 
 
   Copyright (C) The Internet Society (2000).  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. 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

  
Gahrns and Cheng           Expires May 2001                          6