| < draft-gahrns-imap-child-mailbox-03.txt | draft-gahrns-imap-child-mailbox-04.txt > | |||
|---|---|---|---|---|
| A new Request for Comments is now available in online RFC libraries. | ||||
| IMAP Extensions Working Group M. Gahrns, Microsoft | RFC 3348 | |||
| 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 | Title: The Internet Message Action Protocol (IMAP4) Child | |||
| Email: mikega@microsoft.com | Mailbox Extension | |||
| Author(s): M. Gahrns, R. Cheng | ||||
| Status: Informational | ||||
| Date: July 2002 | ||||
| Mailbox: mikega@microsoft.com, raych@microsoft.com | ||||
| Pages: 6 | ||||
| Characters: 11868 | ||||
| Updates/Obsoletes/SeeAlso: None | ||||
| Raymond Cheng | I-D Tag: draft-gahrns-imap-child-mailbox-04.txt | |||
| Microsoft | ||||
| One Microsoft Way | ||||
| Redmond, WA, 98072 | ||||
| Phone: (425) 703-4913 | URL: ftp://ftp.rfc-editor.org/in-notes/rfc3348.txt | |||
| Email: raych@microsoft.com | ||||
| Gahrns and Cheng Expires May 2001 5 | The Internet Message Action Protocol (IMAP4) CHILDREN extension | |||
| IMAP4 Child Mailbox Extension November 2000 | 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. | ||||
| Full Copyright Statement | This memo provides information for the Internet community. It does | |||
| not specify an Internet standard of any kind. Distribution of this | ||||
| memo is unlimited. | ||||
| Copyright (C) The Internet Society (2000). All Rights Reserved. | This announcement is sent to the IETF list and the RFC-DIST list. | |||
| Requests to be added to or deleted from the IETF distribution list | ||||
| should be sent to IETF-REQUEST@IETF.ORG. Requests to be | ||||
| added to or deleted from the RFC-DIST distribution list should | ||||
| be sent to RFC-DIST-REQUEST@RFC-EDITOR.ORG. | ||||
| This document and translations of it may be copied and furnished | Details on obtaining RFCs via FTP or EMAIL may be obtained by sending | |||
| to others, and derivative works that comment on or otherwise | an EMAIL message to rfc-info@RFC-EDITOR.ORG with the message body | |||
| explain it or assist in its implementation may be prepared, copied, | help: ways_to_get_rfcs. For example: | |||
| 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 | To: rfc-info@RFC-EDITOR.ORG | |||
| be revoked by the Internet Society or its successors or assigns. | Subject: getting rfcs | |||
| This document and the information contained herein is provided on | help: ways_to_get_rfcs | |||
| 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 | Requests for special distribution should be addressed to either the | |||
| author of the RFC in question, or to RFC-Manager@RFC-EDITOR.ORG. Unless | ||||
| specifically noted otherwise on the RFC itself, all RFCs are for | ||||
| unlimited distribution.echo | ||||
| Submissions for Requests for Comments should be sent to | ||||
| RFC-EDITOR@RFC-EDITOR.ORG. Please consult RFC 2223, Instructions to RFC | ||||
| Authors, for further information. | ||||
| End of changes. 12 change blocks. | ||||
| 267 lines changed or deleted | 31 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||