imapext-2007

view docs/rfc/rfc3348.txt @ 0:ada5e610ab86

imap-2007e
author yuuji@gentei.org
date Mon, 14 Sep 2009 15:17:45 +0900
parents
children
line source
7 Network Working Group M. Gahrns
8 Request for Comments: 3348 R. Cheng
9 Category: Informational Microsoft
10 July 2002
13 The Internet Message Action Protocol (IMAP4)
14 Child Mailbox Extension
16 Status of this Memo
18 This memo provides information for the Internet community. It does
19 not specify an Internet standard of any kind. Distribution of this
20 memo is unlimited.
22 Copyright Notice
24 Copyright (C) The Internet Society (2002). All Rights Reserved.
26 Abstract
28 The Internet Message Action Protocol (IMAP4) CHILDREN extension
29 provides a mechanism for a client to efficiently determine if a
30 particular mailbox has children, without issuing a LIST "" * or a
31 LIST "" % for each mailbox.
33 1. Conventions used in this document
35 In examples, "C:" and "S:" indicate lines sent by the client and
36 server respectively. If such lines are wrapped without a new "C:" or
37 "S:" label, then the wrapping is for editorial clarity and is not
38 part of the command.
40 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
41 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
42 document are to be interpreted as described in [RFC-2119].
44 2. Introduction and Overview
46 Many IMAP4 [RFC-2060] clients present to the user a hierarchical view
47 of the mailboxes that a user has access to. Rather than initially
48 presenting to the user the entire mailbox hierarchy, it is often
49 preferable to show to the user a collapsed outline list of the
50 mailbox hierarchy (particularly if there is a large number of
51 mailboxes). The user can then expand the collapsed outline hierarchy
52 as needed. It is common to include within the collapsed hierarchy a
58 Gahrns, et al. Informational [Page 1]
60 RFC 3348 IMAP4 Child Mailbox Extension July 2002
63 visual clue (such as a "+") to indicate that there are child
64 mailboxes under a particular mailbox. When the visual clue is
65 clicked the hierarchy list is expanded to show the child mailboxes.
67 Several IMAP vendors implemented this proposal, and it is proposed to
68 document this behavior and functionality as an Informational RFC.
70 There is interest in addressing the general extensibility of the IMAP
71 LIST command through an IMAP LIST Extension draft. Similar
72 functionality to the \HasChildren and \HasNoChildren flags could be
73 incorporated into this new LIST Extension. It is proposed that the
74 more general LIST Extension draft proceed on the standards track with
75 this proposal being relegated to informational status only.
77 If the functionality of the \HasChildren and \HasNoChildren flags
78 were incorporated into a more general LIST extension, this would have
79 the advantage that a client could then have the opportunity to
80 request whether or not the server should return this information.
81 This would be an advantage over the current draft for servers where
82 this information is expensive to compute, since the server would only
83 need to compute the information when it knew that the client
84 requesting the information was able to consume it.
86 3. Requirements
88 IMAP4 servers that support this extension MUST list the keyword
89 CHILDREN in their CAPABILITY response.
91 The CHILDREN extension defines two new attributes that MAY be
92 returned within a LIST response.
94 \HasChildren - The presence of this attribute indicates that the
95 mailbox has child mailboxes.
97 Servers SHOULD NOT return \HasChildren if child mailboxes exist, but
98 none will be displayed to the current user in a LIST response (as
99 should be the case where child mailboxes exist, but a client does not
100 have permissions to access them.) In this case, \HasNoChildren
101 SHOULD be used.
103 In many cases, however, a server may not be able to efficiently
104 compute whether a user has access to all child mailboxes, or multiple
105 users may be accessing the same account and simultaneously changing
106 the mailbox hierarchy. As such a client MUST be prepared to accept
107 the \HasChildren attribute as a hint. That is, a mailbox MAY be
108 flagged with the \HasChildren attribute, but no child mailboxes will
109 appear in a subsequent LIST response.
114 Gahrns, et al. Informational [Page 2]
116 RFC 3348 IMAP4 Child Mailbox Extension July 2002
119 Example 3.1:
120 ============
122 /*** Consider a server that has the following mailbox hierarchy:
124 INBOX
125 ITEM_1
126 ITEM_1A
127 ITEM_2
128 TOP_SECRET
130 Where INBOX, ITEM_1 and ITEM_2 are top level mailboxes. ITEM_1A is a
131 child mailbox of ITEM_1 and TOP_SECRET is a child mailbox of ITEM_2
132 that the currently logged on user does NOT have access to.
134 Note that in this case, the server is not able to efficiently compute
135 access rights to child mailboxes and responds with a \HasChildren
136 attribute for mailbox ITEM_2, even though ITEM_2/TOP_SECRET does not
137 appear in the list response. ***/
139 C: A001 LIST "" *
140 S: * LIST (\HasNoChildren) "/" INBOX
141 S: * LIST (\HasChildren) "/" ITEM_1
142 S: * LIST (\HasNoChildren) "/" ITEM_1/ITEM_1A
143 S: * LIST (\HasChildren) "/" ITEM_2
144 S: A001 OK LIST Completed
146 \HasNoChildren - The presence of this attribute indicates that the
147 mailbox has NO child mailboxes that are accessible to the currently
148 authenticated user. If a mailbox has the \Noinferiors attribute, the
149 \HasNoChildren attribute is redundant and SHOULD be omitted in the
150 LIST response.
152 In some instances a server that supports the CHILDREN extension MAY
153 NOT be able to determine whether a mailbox has children. For example
154 it may have difficulty determining whether there are child mailboxes
155 when LISTing mailboxes while operating in a particular namespace.
157 In these cases, a server MAY exclude both the \HasChildren and
158 \HasNoChildren attributes in the LIST response. As such, a client
159 can not make any assumptions about whether a mailbox has children
160 based upon the absence of a single attribute.
162 It is an error for the server to return both a \HasChildren and a
163 \HasNoChildren attribute in a LIST response.
170 Gahrns, et al. Informational [Page 3]
172 RFC 3348 IMAP4 Child Mailbox Extension July 2002
175 It is an error for the server to return both a \HasChildren and a
176 \NoInferiors attribute in a LIST response.
178 Note: the \HasNoChildren attribute should not be confused with the
179 IMAP4 [RFC-2060] defined attribute \Noinferiors which indicates that
180 no child mailboxes exist now and none can be created in the future.
182 The \HasChildren and \HasNoChildren attributes might not be returned
183 in response to a LSUB response. Many servers maintain a simple
184 mailbox subscription list that is not updated when the underlying
185 mailbox structure is changed. A client MUST NOT assume that
186 hierarchy information will be maintained in the subscription list.
188 RLIST is a command defined in [RFC-2193] that includes in a LIST
189 response mailboxes that are accessible only via referral. That is, a
190 client must explicitly issue an RLIST command to see a list of these
191 mailboxes. Thus in the case where a mailbox has child mailboxes that
192 are available only via referral, the mailboxes would appear as
193 \HasNoChildren in response to the LIST command, and \HasChildren in
194 response to the RLIST command.
196 5. Formal Syntax
198 The following syntax specification uses the augmented Backus-Naur
199 Form (BNF) as described in [ABNF].
201 Two new mailbox attributes are defined as flag_extensions to the
202 IMAP4 mailbox_list response:
204 HasChildren = "\HasChildren"
206 HasNoChildren = "\HasNoChildren"
208 6. Security Considerations
210 This extension provides a client a more efficient means of
211 determining whether a particular mailbox has children. If a mailbox
212 has children, but the currently authenticated user does not have
213 access to any of them, the server SHOULD respond with a
214 \HasNoChildren attribute. In many cases, however, a server may not
215 be able to efficiently compute whether a user has access to all child
216 mailboxes. If such a server responds with a \HasChildren attribute,
217 when in fact the currently authenticated user does not have access to
218 any child mailboxes, potentially more information is conveyed about
219 the mailbox than intended. A server designed with such levels of
220 security in mind SHOULD NOT attach the \HasChildren attribute to a
221 mailbox unless the server is certain that the user has access to at
222 least one of the child mailboxes.
226 Gahrns, et al. Informational [Page 4]
228 RFC 3348 IMAP4 Child Mailbox Extension July 2002
231 7. References
233 [RFC-2060] Crispin, M., "Internet Message Access Protocol - Version
234 4rev1", RFC 2060, December 1996.
236 [RFC-2119] Bradner, S., "Key words for use in RFCs to Indicate
237 Requirement Levels", BCP 14, RFC 2119, March 1997.
239 [RFC-2234] Crocker, D. and P. Overell, Editors, "Augmented BNF for
240 Syntax Specifications: ABNF", RFC 2234, November 1997.
242 [RFC-2193] Gahrns, M., "IMAP4 Mailbox Referrals", RFC 2193, September
243 1997.
245 8. Acknowledgments
247 The authors would like to thank the participants of several IMC Mail
248 Connect events for their input when this idea was originally
249 presented and refined.
251 9. Author's Address
253 Mike Gahrns
254 Microsoft
255 One Microsoft Way
256 Redmond, WA, 98052
257 Phone: (425) 936-9833
258 EMail: mikega@microsoft.com
260 Raymond Cheng
261 Microsoft
262 One Microsoft Way
263 Redmond, WA, 98052
264 Phone: (425) 703-4913
265 EMail: raych@microsoft.com
282 Gahrns, et al. Informational [Page 5]
284 RFC 3348 IMAP4 Child Mailbox Extension July 2002
287 10. Full Copyright Statement
289 Copyright (C) The Internet Society (2002). All Rights Reserved.
291 This document and translations of it may be copied and furnished to
292 others, and derivative works that comment on or otherwise explain it
293 or assist in its implementation may be prepared, copied, published
294 and distributed, in whole or in part, without restriction of any
295 kind, provided that the above copyright notice and this paragraph are
296 included on all such copies and derivative works. However, this
297 document itself may not be modified in any way, such as by removing
298 the copyright notice or references to the Internet Society or other
299 Internet organizations, except as needed for the purpose of
300 developing Internet standards in which case the procedures for
301 copyrights defined in the Internet Standards process must be
302 followed, or as required to translate it into languages other than
303 English.
305 The limited permissions granted above are perpetual and will not be
306 revoked by the Internet Society or its successors or assigns.
308 This document and the information contained herein is provided on an
309 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
310 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
311 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
312 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
313 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
315 Acknowledgement
317 Funding for the RFC Editor function is currently provided by the
318 Internet Society.
338 Gahrns, et al. Informational [Page 6]

UW-IMAP'd extensions by yuuji