imapext-2007

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

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

UW-IMAP'd extensions by yuuji