imapext-2007

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

imap-2007e
author yuuji@gentei.org
date Mon, 14 Sep 2009 15:17:45 +0900
parents
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/docs/rfc/rfc3348.txt	Mon Sep 14 15:17:45 2009 +0900
     1.3 @@ -0,0 +1,339 @@
     1.4 +
     1.5 +
     1.6 +
     1.7 +
     1.8 +
     1.9 +
    1.10 +Network Working Group                                          M. Gahrns
    1.11 +Request for Comments: 3348                                      R. Cheng
    1.12 +Category: Informational                                        Microsoft
    1.13 +                                                               July 2002
    1.14 +
    1.15 +
    1.16 +             The Internet Message Action Protocol (IMAP4)
    1.17 +                        Child Mailbox Extension
    1.18 +
    1.19 +Status of this Memo
    1.20 +
    1.21 +   This memo provides information for the Internet community.  It does
    1.22 +   not specify an Internet standard of any kind.  Distribution of this
    1.23 +   memo is unlimited.
    1.24 +
    1.25 +Copyright Notice
    1.26 +
    1.27 +   Copyright (C) The Internet Society (2002).  All Rights Reserved.
    1.28 +
    1.29 +Abstract
    1.30 +
    1.31 +   The Internet Message Action Protocol (IMAP4) CHILDREN extension
    1.32 +   provides a mechanism for a client to efficiently determine if a
    1.33 +   particular mailbox has children, without issuing a LIST "" * or a
    1.34 +   LIST "" % for each mailbox.
    1.35 +
    1.36 +1. Conventions used in this document
    1.37 +
    1.38 +   In examples, "C:" and "S:" indicate lines sent by the client and
    1.39 +   server respectively.  If such lines are wrapped without a new "C:" or
    1.40 +   "S:" label, then the wrapping is for editorial clarity and is not
    1.41 +   part of the command.
    1.42 +
    1.43 +   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
    1.44 +   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
    1.45 +   document are to be interpreted as described in [RFC-2119].
    1.46 +
    1.47 +2. Introduction and Overview
    1.48 +
    1.49 +   Many IMAP4 [RFC-2060] clients present to the user a hierarchical view
    1.50 +   of the mailboxes that a user has access to.  Rather than initially
    1.51 +   presenting to the user the entire mailbox hierarchy, it is often
    1.52 +   preferable to show to the user a collapsed outline list of the
    1.53 +   mailbox hierarchy (particularly if there is a large number of
    1.54 +   mailboxes).  The user can then expand the collapsed outline hierarchy
    1.55 +   as needed.  It is common to include within the collapsed hierarchy a
    1.56 +
    1.57 +
    1.58 +
    1.59 +
    1.60 +
    1.61 +Gahrns, et al.               Informational                      [Page 1]
    1.62 +
    1.63 +RFC 3348             IMAP4 Child Mailbox Extension             July 2002
    1.64 +
    1.65 +
    1.66 +   visual clue (such as a "+") to indicate that there are child
    1.67 +   mailboxes under a particular mailbox.  When the visual clue is
    1.68 +   clicked the hierarchy list is expanded to show the child mailboxes.
    1.69 +
    1.70 +   Several IMAP vendors implemented this proposal, and it is proposed to
    1.71 +   document this behavior and functionality as an Informational RFC.
    1.72 +
    1.73 +   There is interest in addressing the general extensibility of the IMAP
    1.74 +   LIST command through an IMAP LIST Extension draft.  Similar
    1.75 +   functionality to the \HasChildren and \HasNoChildren flags could be
    1.76 +   incorporated into this new LIST Extension.  It is proposed that the
    1.77 +   more general LIST Extension draft proceed on the standards track with
    1.78 +   this proposal being relegated to informational status only.
    1.79 +
    1.80 +   If the functionality of the \HasChildren and \HasNoChildren flags
    1.81 +   were incorporated into a more general LIST extension, this would have
    1.82 +   the advantage that a client could then have the opportunity to
    1.83 +   request whether or not the server should return this information.
    1.84 +   This would be an advantage over the current draft for servers where
    1.85 +   this information is expensive to compute, since the server would only
    1.86 +   need to compute the information when it knew that the client
    1.87 +   requesting the information was able to consume it.
    1.88 +
    1.89 +3. Requirements
    1.90 +
    1.91 +   IMAP4 servers that support this extension MUST list the keyword
    1.92 +   CHILDREN in their CAPABILITY response.
    1.93 +
    1.94 +   The CHILDREN extension defines two new attributes that MAY be
    1.95 +   returned within a LIST response.
    1.96 +
    1.97 +   \HasChildren - The presence of this attribute indicates that the
    1.98 +   mailbox has child mailboxes.
    1.99 +
   1.100 +   Servers SHOULD NOT return \HasChildren if child mailboxes exist, but
   1.101 +   none will be displayed to the current user in a LIST response (as
   1.102 +   should be the case where child mailboxes exist, but a client does not
   1.103 +   have permissions to access them.)  In this case, \HasNoChildren
   1.104 +   SHOULD be used.
   1.105 +
   1.106 +   In many cases, however, a server may not be able to efficiently
   1.107 +   compute whether a user has access to all child mailboxes, or multiple
   1.108 +   users may be accessing the same account and simultaneously changing
   1.109 +   the mailbox hierarchy.  As such a client MUST be prepared to accept
   1.110 +   the \HasChildren attribute as a hint.  That is, a mailbox MAY be
   1.111 +   flagged with the \HasChildren attribute, but no child mailboxes will
   1.112 +   appear in a subsequent LIST response.
   1.113 +
   1.114 +
   1.115 +
   1.116 +
   1.117 +Gahrns, et al.               Informational                      [Page 2]
   1.118 +
   1.119 +RFC 3348             IMAP4 Child Mailbox Extension             July 2002
   1.120 +
   1.121 +
   1.122 +   Example 3.1:
   1.123 +   ============
   1.124 +
   1.125 +   /*** Consider a server that has the following mailbox hierarchy:
   1.126 +
   1.127 +   INBOX
   1.128 +   ITEM_1
   1.129 +      ITEM_1A
   1.130 +   ITEM_2
   1.131 +      TOP_SECRET
   1.132 +
   1.133 +   Where INBOX, ITEM_1 and ITEM_2 are top level mailboxes.  ITEM_1A is a
   1.134 +   child mailbox of ITEM_1 and TOP_SECRET is a child mailbox of ITEM_2
   1.135 +   that the currently logged on user does NOT have access to.
   1.136 +
   1.137 +   Note that in this case, the server is not able to efficiently compute
   1.138 +   access rights to child mailboxes and responds with a \HasChildren
   1.139 +   attribute for mailbox ITEM_2, even though ITEM_2/TOP_SECRET does not
   1.140 +   appear in the list response.  ***/
   1.141 +
   1.142 +   C: A001 LIST "" *
   1.143 +   S: * LIST (\HasNoChildren) "/" INBOX
   1.144 +   S: * LIST (\HasChildren) "/" ITEM_1
   1.145 +   S: * LIST (\HasNoChildren) "/" ITEM_1/ITEM_1A
   1.146 +   S: * LIST (\HasChildren) "/" ITEM_2
   1.147 +   S: A001 OK LIST Completed
   1.148 +
   1.149 +   \HasNoChildren - The presence of this attribute indicates that the
   1.150 +   mailbox has NO child mailboxes that are accessible to the currently
   1.151 +   authenticated user.  If a mailbox has the \Noinferiors attribute, the
   1.152 +   \HasNoChildren attribute is redundant and SHOULD be omitted in the
   1.153 +   LIST response.
   1.154 +
   1.155 +   In some instances a server that supports the CHILDREN extension MAY
   1.156 +   NOT be able to determine whether a mailbox has children.  For example
   1.157 +   it may have difficulty determining whether there are child mailboxes
   1.158 +   when LISTing mailboxes while operating in a particular namespace.
   1.159 +
   1.160 +   In these cases, a server MAY exclude both the \HasChildren and
   1.161 +   \HasNoChildren attributes in the LIST response.  As such, a client
   1.162 +   can not make any assumptions about whether a mailbox has children
   1.163 +   based upon the absence of a single attribute.
   1.164 +
   1.165 +   It is an error for the server to return both a \HasChildren and a
   1.166 +   \HasNoChildren attribute in a LIST response.
   1.167 +
   1.168 +
   1.169 +
   1.170 +
   1.171 +
   1.172 +
   1.173 +Gahrns, et al.               Informational                      [Page 3]
   1.174 +
   1.175 +RFC 3348             IMAP4 Child Mailbox Extension             July 2002
   1.176 +
   1.177 +
   1.178 +   It is an error for the server to return both a \HasChildren and a
   1.179 +   \NoInferiors attribute in a LIST response.
   1.180 +
   1.181 +   Note: the \HasNoChildren attribute should not be confused with the
   1.182 +   IMAP4 [RFC-2060] defined attribute \Noinferiors which indicates that
   1.183 +   no child mailboxes exist now and none can be created in the future.
   1.184 +
   1.185 +   The \HasChildren and \HasNoChildren attributes might not be returned
   1.186 +   in response to a LSUB response.  Many servers maintain a simple
   1.187 +   mailbox subscription list that is not updated when the underlying
   1.188 +   mailbox structure is changed.  A client MUST NOT assume that
   1.189 +   hierarchy information will be maintained in the subscription list.
   1.190 +
   1.191 +   RLIST is a command defined in [RFC-2193] that includes in a LIST
   1.192 +   response mailboxes that are accessible only via referral.  That is, a
   1.193 +   client must explicitly issue an RLIST command to see a list of these
   1.194 +   mailboxes.  Thus in the case where a mailbox has child mailboxes that
   1.195 +   are available only via referral, the mailboxes would appear as
   1.196 +   \HasNoChildren in response to the LIST command, and \HasChildren in
   1.197 +   response to the RLIST command.
   1.198 +
   1.199 +5. Formal Syntax
   1.200 +
   1.201 +   The following syntax specification uses the augmented Backus-Naur
   1.202 +   Form (BNF) as described in [ABNF].
   1.203 +
   1.204 +   Two new mailbox attributes are defined as flag_extensions to the
   1.205 +   IMAP4 mailbox_list response:
   1.206 +
   1.207 +   HasChildren = "\HasChildren"
   1.208 +
   1.209 +   HasNoChildren = "\HasNoChildren"
   1.210 +
   1.211 +6. Security Considerations
   1.212 +
   1.213 +   This extension provides a client a more efficient means of
   1.214 +   determining whether a particular mailbox has children.  If a mailbox
   1.215 +   has children, but the currently authenticated user does not have
   1.216 +   access to any of them, the server SHOULD respond with a
   1.217 +   \HasNoChildren attribute.  In many cases, however, a server may not
   1.218 +   be able to efficiently compute whether a user has access to all child
   1.219 +   mailboxes.  If such a server responds with a \HasChildren attribute,
   1.220 +   when in fact the currently authenticated user does not have access to
   1.221 +   any child mailboxes, potentially more information is conveyed about
   1.222 +   the mailbox than intended.  A server designed with such levels of
   1.223 +   security in mind SHOULD NOT attach the \HasChildren attribute to a
   1.224 +   mailbox unless the server is certain that the user has access to at
   1.225 +   least one of the child mailboxes.
   1.226 +
   1.227 +
   1.228 +
   1.229 +Gahrns, et al.               Informational                      [Page 4]
   1.230 +
   1.231 +RFC 3348             IMAP4 Child Mailbox Extension             July 2002
   1.232 +
   1.233 +
   1.234 +7. References
   1.235 +
   1.236 +   [RFC-2060] Crispin, M., "Internet Message Access Protocol - Version
   1.237 +              4rev1", RFC 2060, December 1996.
   1.238 +
   1.239 +   [RFC-2119] Bradner, S., "Key words for use in RFCs to Indicate
   1.240 +              Requirement Levels", BCP 14, RFC 2119, March 1997.
   1.241 +
   1.242 +   [RFC-2234] Crocker, D. and P. Overell, Editors, "Augmented BNF for
   1.243 +              Syntax Specifications: ABNF", RFC 2234, November 1997.
   1.244 +
   1.245 +   [RFC-2193] Gahrns, M., "IMAP4 Mailbox Referrals", RFC 2193, September
   1.246 +              1997.
   1.247 +
   1.248 +8.  Acknowledgments
   1.249 +
   1.250 +   The authors would like to thank the participants of several IMC Mail
   1.251 +   Connect events for their input when this idea was originally
   1.252 +   presented and refined.
   1.253 +
   1.254 +9. Author's Address
   1.255 +
   1.256 +   Mike Gahrns
   1.257 +   Microsoft
   1.258 +   One Microsoft Way
   1.259 +   Redmond, WA, 98052
   1.260 +   Phone: (425) 936-9833
   1.261 +   EMail: mikega@microsoft.com
   1.262 +
   1.263 +   Raymond Cheng
   1.264 +   Microsoft
   1.265 +   One Microsoft Way
   1.266 +   Redmond, WA, 98052
   1.267 +   Phone: (425) 703-4913
   1.268 +   EMail: raych@microsoft.com
   1.269 +
   1.270 +
   1.271 +
   1.272 +
   1.273 +
   1.274 +
   1.275 +
   1.276 +
   1.277 +
   1.278 +
   1.279 +
   1.280 +
   1.281 +
   1.282 +
   1.283 +
   1.284 +
   1.285 +Gahrns, et al.               Informational                      [Page 5]
   1.286 +
   1.287 +RFC 3348             IMAP4 Child Mailbox Extension             July 2002
   1.288 +
   1.289 +
   1.290 +10. Full Copyright Statement
   1.291 +
   1.292 +   Copyright (C) The Internet Society (2002).  All Rights Reserved.
   1.293 +
   1.294 +   This document and translations of it may be copied and furnished to
   1.295 +   others, and derivative works that comment on or otherwise explain it
   1.296 +   or assist in its implementation may be prepared, copied, published
   1.297 +   and distributed, in whole or in part, without restriction of any
   1.298 +   kind, provided that the above copyright notice and this paragraph are
   1.299 +   included on all such copies and derivative works.  However, this
   1.300 +   document itself may not be modified in any way, such as by removing
   1.301 +   the copyright notice or references to the Internet Society or other
   1.302 +   Internet organizations, except as needed for the purpose of
   1.303 +   developing Internet standards in which case the procedures for
   1.304 +   copyrights defined in the Internet Standards process must be
   1.305 +   followed, or as required to translate it into languages other than
   1.306 +   English.
   1.307 +
   1.308 +   The limited permissions granted above are perpetual and will not be
   1.309 +   revoked by the Internet Society or its successors or assigns.
   1.310 +
   1.311 +   This document and the information contained herein is provided on an
   1.312 +   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   1.313 +   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   1.314 +   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   1.315 +   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   1.316 +   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
   1.317 +
   1.318 +Acknowledgement
   1.319 +
   1.320 +   Funding for the RFC Editor function is currently provided by the
   1.321 +   Internet Society.
   1.322 +
   1.323 +
   1.324 +
   1.325 +
   1.326 +
   1.327 +
   1.328 +
   1.329 +
   1.330 +
   1.331 +
   1.332 +
   1.333 +
   1.334 +
   1.335 +
   1.336 +
   1.337 +
   1.338 +
   1.339 +
   1.340 +
   1.341 +Gahrns, et al.               Informational                      [Page 6]
   1.342 +

UW-IMAP'd extensions by yuuji