| < draft-ietf-morg-multimailbox-search-06.txt | draft-ietf-morg-multimailbox-search-07.txt > | |||
|---|---|---|---|---|
| Message ORGanization Working Group B. Leiba | Message ORGanization Working Group B. Leiba | |||
| Internet-Draft Huawei Technologies | Internet-Draft Huawei Technologies | |||
| Updates: 4466 (if approved) A. Melnikov | Updates: 4466 (if approved) A. Melnikov | |||
| Intended status: Experimental Isode Limited | Intended status: Experimental Isode Limited | |||
| Expires: August 14, 2011 February 10, 2011 | Expires: September 6, 2011 March 5, 2011 | |||
| IMAP4 Multimailbox SEARCH Extension | IMAP4 Multimailbox SEARCH Extension | |||
| draft-ietf-morg-multimailbox-search-06 | draft-ietf-morg-multimailbox-search-07 | |||
| Abstract | Abstract | |||
| The IMAP4 specification allows the searching only of the selected | The IMAP4 specification allows the searching only of the selected | |||
| mailbox. A user often wants to search multiple mailboxes, and a | mailbox. A user often wants to search multiple mailboxes, and a | |||
| client that wishes to support this must issue a series of SELECT and | client that wishes to support this must issue a series of SELECT and | |||
| SEARCH commands, waiting for each to complete before moving on to the | SEARCH commands, waiting for each to complete before moving on to the | |||
| next. This extension allows a client to search multiple mailboxes | next. This extension allows a client to search multiple mailboxes | |||
| with one command, limiting the round-trips and waiting for various | with one command, limiting the round-trips and waiting for various | |||
| searches to complete, and not requiring disruption of the currently | searches to complete, and not requiring disruption of the currently | |||
| skipping to change at page 1, line 39 ¶ | skipping to change at page 1, line 39 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on August 14, 2011. | This Internet-Draft will expire on September 6, 2011. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2011 IETF Trust and the persons identified as the | Copyright (c) 2011 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 4, line 23 ¶ | skipping to change at page 4, line 23 ¶ | |||
| BAD - command unknown or arguments invalid | BAD - command unknown or arguments invalid | |||
| This section defines a new ESEARCH command, which works similarly to | This section defines a new ESEARCH command, which works similarly to | |||
| the UID SEARCH command described in section 2.6.1 of [RFC4466] | the UID SEARCH command described in section 2.6.1 of [RFC4466] | |||
| (initially described in section 6.4.4 of [RFC3501] and extended by | (initially described in section 6.4.4 of [RFC3501] and extended by | |||
| [RFC4731]). | [RFC4731]). | |||
| The ESEARCH command further extends searching by allowing for | The ESEARCH command further extends searching by allowing for | |||
| optional source and result options. This document does not define | optional source and result options. This document does not define | |||
| any new result options (see Section 3.1 of [RFC4731]). A server that | any new result options (see Section 3.1 of [RFC4731]). A server that | |||
| supports this extension includes [[fix-for-pub-1: "X-DRAFT-I05-MMBX" | supports this extension includes "MULTISEARCH" in its IMAP capability | |||
| (changes for publication)]] in its IMAP capability string. | string. | |||
| Because there has been confusion about this, it is worth pointing out | Because there has been confusion about this, it is worth pointing out | |||
| that with ESEARCH, as with *any* SEARCH or UID SEARCH command, it | that with ESEARCH, as with *any* SEARCH or UID SEARCH command, it | |||
| MUST NOT be considered an error if the search terms include a range | MUST NOT be considered an error if the search terms include a range | |||
| of message numbers that extends (or, in fact, starts) beyond the end | of message numbers that extends (or, in fact, starts) beyond the end | |||
| of the mailbox. For example, a client might want to establish a | of the mailbox. For example, a client might want to establish a | |||
| rolling window through the search results this way: | rolling window through the search results this way: | |||
| C: tag1 UID ESEARCH FROM "frobozz" 1:100 | C: tag1 UID ESEARCH FROM "frobozz" 1:100 | |||
| skipping to change at page 6, line 17 ¶ | skipping to change at page 6, line 17 ¶ | |||
| mailboxes that are subordinate to it, through an indefinitely | mailboxes that are subordinate to it, through an indefinitely | |||
| deep hierarchy. The "subtree-one" specifier results in a search | deep hierarchy. The "subtree-one" specifier results in a search | |||
| of the specified mailbox and all selectable child mailboxes, one | of the specified mailbox and all selectable child mailboxes, one | |||
| hierarchy level down. | hierarchy level down. | |||
| If "subtree" is specified, the server MUST defend against loops in | If "subtree" is specified, the server MUST defend against loops in | |||
| the hierarchy (for example, those caused by recursive file-system | the hierarchy (for example, those caused by recursive file-system | |||
| links within the message store). The server SHOULD do this by | links within the message store). The server SHOULD do this by | |||
| keeping track of the mailboxes that have been searched, and | keeping track of the mailboxes that have been searched, and | |||
| terminating the hierarchy traversal when a repeat is found. If it | terminating the hierarchy traversal when a repeat is found. If it | |||
| can not do that, it MAY do it by limiting the hierarchy depth. | cannot do that, it MAY do it by limiting the hierarchy depth. | |||
| If the source options are not present, the value "selected" is | If the source options are not present, the value "selected" is | |||
| assumed -- that is, only the currently selected mailbox is searched. | assumed -- that is, only the currently selected mailbox is searched. | |||
| The "personal" source option is a particularly convenient way to | The "personal" source option is a particularly convenient way to | |||
| search all of the current user's mailboxes. Note that there is no | search all of the current user's mailboxes. Note that there is no | |||
| way to use wildcard characters to search all mailboxes; the | way to use wildcard characters to search all mailboxes; the | |||
| "mailboxes" source option does not do wildcard expansion. | "mailboxes" source option does not do wildcard expansion. | |||
| If the source options include (or default to) "selected", the IMAP | If the source options include (or default to) "selected", the IMAP | |||
| skipping to change at page 9, line 16 ¶ | skipping to change at page 9, line 16 ¶ | |||
| searched in one command, and/or on the server resources that will be | searched in one command, and/or on the server resources that will be | |||
| devoted to responding to a single client, are reasonable limitations | devoted to responding to a single client, are reasonable limitations | |||
| for an implementation to impose. | for an implementation to impose. | |||
| Implementations MUST, of course, apply access controls appropriately, | Implementations MUST, of course, apply access controls appropriately, | |||
| limiting a user's access to ESEARCH in the same way its access is | limiting a user's access to ESEARCH in the same way its access is | |||
| limited for any other IMAP commands. This extension has no data- | limited for any other IMAP commands. This extension has no data- | |||
| access risks beyond what may be there in the unextended IMAP | access risks beyond what may be there in the unextended IMAP | |||
| implementation. | implementation. | |||
| Mailboxes matching the source options for which the logged in user | ||||
| lacks sufficient rights MUST be ignored by the ESEARCH command | ||||
| processing (see the paragraph about this in Section 2.2). In | ||||
| particular, any attempt to distinguish insufficient access from non- | ||||
| existent mailboxes may expose information about the mailbox hierarchy | ||||
| that isn't otherwise available to the client. | ||||
| If "subtree" is specified, the server MUST defend against loops in | ||||
| the hierarchy (see the paragraph about this in Section 2.2). | ||||
| 6. IANA Considerations | 6. IANA Considerations | |||
| IMAP4 capabilities are registered by publishing a standards track or | IMAP4 capabilities are registered by publishing a standards track or | |||
| IESG approved experimental RFC. The registry is currently located | IESG approved experimental RFC. The registry is currently located | |||
| here: | here: | |||
| http://www.iana.org/assignments/imap4-capabilities | http://www.iana.org/assignments/imap4-capabilities | |||
| This document defines the IMAP capability [[fix-for-pub-2: X-DRAFT- | This document defines the IMAP capability "MULTISEARCH" and IANA is | |||
| I03-MMBX (changes for publication)]], and IANA is asked to add it to | asked to add it to the registry. | |||
| the registry. | ||||
| 7. Acknowledgements | 7. Acknowledgements | |||
| The authors gratefully acknowledge feedback provided by Timo | The authors gratefully acknowledge feedback provided by Timo | |||
| Sirainen, Peter Coates and Arnt Gulbrandsen. | Sirainen, Peter Coates and Arnt Gulbrandsen. | |||
| 8. Normative References | 8. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| End of changes. 7 change blocks. | ||||
| 9 lines changed or deleted | 18 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/ | ||||