| < draft-ietf-appsawg-multimailbox-search-00.txt | draft-ietf-appsawg-multimailbox-search-01.txt > | |||
|---|---|---|---|---|
| Applications Area Working Group B. Leiba | Applications Area Working Group B. Leiba | |||
| Internet-Draft Huawei Technologies | Internet-Draft Huawei Technologies | |||
| Updates: 4466 (if approved) A. Melnikov | Obsoletes: 6237 (if approved) A. Melnikov | |||
| Obsoletes: 6237 (if approved) Isode Limited | Updates: 4466 (if approved) Isode Limited | |||
| Intended status: Standards Track March 03, 2014 | Intended status: Standards Track June 3, 2014 | |||
| Expires: September 02, 2014 | Expires: December 5, 2014 | |||
| IMAP4 Multimailbox SEARCH Extension | IMAP4 Multimailbox SEARCH Extension | |||
| draft-ietf-appsawg-multimailbox-search-00 | draft-ietf-appsawg-multimailbox-search-01 | |||
| Abstract | Abstract | |||
| The IMAP4 specification allows the searching of only the selected | The IMAP4 specification allows the searching of only 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 round trips delay, and not requiring | with one command, limiting round trips delay, and not requiring | |||
| disruption of the currently selected mailbox. This extension also | disruption of the currently selected mailbox. This extension also | |||
| uses MAILBOX and TAG fields in ESEARCH responses, allowing a client | uses MAILBOX and TAG fields in ESEARCH responses, allowing a client | |||
| to pipeline the searches if it chooses. This document updates RFC | to pipeline the searches if it chooses. This document updates RFC | |||
| 4466 and obsoletes RFC 6237. | 4466 and obsoletes RFC 6237. | |||
| Status of this Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| 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 September 02, 2014. | This Internet-Draft will expire on December 5, 2014. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2014 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 (http://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Simplified BSD License text | to this document. Code Components extracted from this document must | |||
| as described in Section 4.e of the Trust Legal Provisions and are | include Simplified BSD License text as described in Section 4.e of | |||
| provided without warranty as described in the Simplified BSD License. | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Conventions Used in This Document . . . . . . . . . . . . . 3 | 1.1. Conventions Used in This Document . . . . . . . . . . . . . 3 | |||
| 2. New ESEARCH Command . . . . . . . . . . . . . . . . . . . . . 3 | 2. New ESEARCH Command . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. The ESEARCH Response . . . . . . . . . . . . . . . . . . . . 4 | 2.1. The ESEARCH Response . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.2. Source Options: Specifying Mailboxes to Search . . . . . . . 5 | 2.2. Source Options: Specifying Mailboxes to Search . . . . . . 5 | |||
| 2.3. Strictness in Search Matches . . . . . . . . . . . . . . . . 6 | 2.3. Strictness in Search Matches . . . . . . . . . . . . . . . 7 | |||
| 3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 7 | 4. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9 | 7. Implementation Status . . . . . . . . . . . . . . . . . . . . 9 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 8. Changes Since RFC 6237 . . . . . . . . . . . . . . . . . . . 10 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9 | 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . . 11 | ||||
| 10.2. Informative References . . . . . . . . . . . . . . . . . . 11 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
| 1. Introduction | 1. Introduction | |||
| The IMAP4 specification allows the searching of only the selected | The IMAP4 specification allows the searching of only 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. The commands can't be pipelined, because the server might run | next. The commands can't be pipelined, because the server might run | |||
| them in parallel, and the untagged SEARCH responses could not then be | them in parallel, and the untagged SEARCH responses could not then be | |||
| distinguished from each other. | distinguished from each other. | |||
| skipping to change at page 3, line 16 ¶ | skipping to change at page 3, line 23 ¶ | |||
| client to distinguish which responses go with which search (and | client to distinguish which responses go with which search (and | |||
| which mailbox). A client can safely pipeline these search | which mailbox). A client can safely pipeline these search | |||
| commands without danger of confusion. The addition of the MAILBOX | commands without danger of confusion. The addition of the MAILBOX | |||
| and UIDVALIDITY fields updates the search-correlator item defined | and UIDVALIDITY fields updates the search-correlator item defined | |||
| in [RFC4466]. | in [RFC4466]. | |||
| This extension was previously published as experimental. There is | This extension was previously published as experimental. There is | |||
| now implementation experience, giving confidence in the protocol, so | now implementation experience, giving confidence in the protocol, so | |||
| this document puts the extension on the Standards Track, with some | this document puts the extension on the Standards Track, with some | |||
| minor updates that were informed by the implementation experience. | minor updates that were informed by the implementation experience. | |||
| [[CREF1: RFC Editor: Please remove this paragraph at publication.]] | ||||
| 1.1. Conventions Used in This Document | 1.1. Conventions Used in This Document | |||
| In examples, "C:" indicates lines sent by a client that is connected | In examples, "C:" indicates lines sent by a client that is connected | |||
| to a server. "S:" indicates lines sent by the server to the client. | to a server. "S:" indicates lines sent by the server to the client. | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
| skipping to change at page 3, line 51 ¶ | skipping to change at page 4, line 12 ¶ | |||
| (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 "MULTISEARCH" in its IMAP capability | supports this extension includes "MULTISEARCH" 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 | |||
| MUST NOT be considered an error if the search terms include a range | NOT be considered an error if the search terms include a range of | |||
| of message numbers that extends (or, in fact, starts) beyond the end | message numbers that extends (or, in fact, starts) beyond the end of | |||
| of the mailbox. For example, a client might want to establish a | the mailbox. For example, a client might want to establish a rolling | |||
| rolling window through the search results this way: | window through the search results this way: | |||
| C: tag1 UID ESEARCH FROM "frobozz" 1:100 | C: tag1 UID ESEARCH FROM "frobozz" 1:100 | |||
| ...followed later by this: | ...followed later by this: | |||
| C: tag1 UID ESEARCH FROM "frobozz" 101:200 | C: tag1 UID ESEARCH FROM "frobozz" 101:200 | |||
| ...and so on. This tells the server to match only the first hundred | ...and so on. This tells the server to match only the first hundred | |||
| messages in the mailbox the first time, the second hundred the second | messages in the mailbox the first time, the second hundred the second | |||
| time, etc. In fact, it might likely allow the server to optimize the | time, etc. In fact, it might likely allow the server to optimize the | |||
| search significantly. In the above example, whether the mailbox | search significantly. In the above example, whether the mailbox | |||
| contains 50 or 150 or 250 messages, neither of the search commands | contains 50 or 150 or 250 messages, neither of the search commands | |||
| shown will result in an error. It is up to the client to know when | shown will result in an error. It is up to the client to know when | |||
| skipping to change at page 4, line 39 ¶ | skipping to change at page 5, line 6 ¶ | |||
| Source options describe which mailboxes must be searched for | Source options describe which mailboxes must be searched for | |||
| messages. An ESEARCH command with source options does not affect | messages. An ESEARCH command with source options does not affect | |||
| which mailbox, if any, is currently selected, regardless of which | which mailbox, if any, is currently selected, regardless of which | |||
| mailboxes are searched. | mailboxes are searched. | |||
| For each mailbox satisfying the source options, a single ESEARCH | For each mailbox satisfying the source options, a single ESEARCH | |||
| response MUST be returned if any messages in that mailbox match the | response MUST be returned if any messages in that mailbox match the | |||
| search criteria. An ESEARCH response MUST NOT be returned for | search criteria. An ESEARCH response MUST NOT be returned for | |||
| mailboxes that contain no matching messages. This is true even when | mailboxes that contain no matching messages. This is true even when | |||
| result options such as MIN, MAX, and COUNT are specified (see Section | result options such as MIN, MAX, and COUNT are specified (see | |||
| 3.1 of [RFC4731]), and the values returned (lowest UID matched, | Section 3.1 of [RFC4731]), and the values returned (lowest UID | |||
| highest UID matched, and number of messages matched, respectively) | matched, highest UID matched, and number of messages matched, | |||
| apply to the mailbox reported in that ESEARCH response. | respectively) apply to the mailbox reported in that ESEARCH response. | |||
| Note that it is possible for an ESEARCH command to return *no* | Note that it is possible for an ESEARCH command to return no untagged | |||
| untagged responses (no ESEARCH responses at all), in the case that | responses (no ESEARCH responses at all), in the case that there are | |||
| there are no matches to the search in any of the mailboxes that | no matches to the search in any of the mailboxes that satisfy the | |||
| satisfy the source options. Clients can detect this situation by | source options. Clients can detect this situation by finding the | |||
| finding the tagged OK response without having received any matching | tagged OK response without having received any matching untagged | |||
| untagged ESEARCH responses. | ESEARCH responses. | |||
| Each ESEARCH response MUST contain the MAILBOX, TAG, and UIDVALIDITY | Each ESEARCH response MUST contain the MAILBOX, TAG, and UIDVALIDITY | |||
| correlators. Correlators allow clients to issue several ESEARCH | correlators. Correlators allow clients to issue several ESEARCH | |||
| commands at once (pipelined). If the SEARCHRES [RFC5182] extension | commands at once (pipelined). If the SEARCHRES [RFC5182] extension | |||
| is used in an ESEARCH command, that ESEARCH command MUST be executed | is used in an ESEARCH command, that ESEARCH command MUST be executed | |||
| by the server after all previous SEARCH/ESEARCH commands have | by the server after all previous SEARCH/ESEARCH commands have | |||
| completed and before any subsequent SEARCH/ESEARCH commands are | completed and before any subsequent SEARCH/ESEARCH commands are | |||
| executed. The server MAY perform consecutive ESEARCH commands in | executed. The server MAY perform consecutive ESEARCH commands in | |||
| parallel as long as none of them use the SEARCHRES extension. | parallel as long as none of them use the SEARCHRES extension. | |||
| skipping to change at page 6, line 6 ¶ | skipping to change at page 6, line 22 ¶ | |||
| other mailboxes and NOT "selected", then the IMAP session MUST be in | other mailboxes and NOT "selected", then the IMAP session MUST be in | |||
| either "selected" or "authenticated" state. If the session is not in | either "selected" or "authenticated" state. If the session is not in | |||
| a correct state, the ESEARCH command MUST return a "BAD" result. | a correct state, the ESEARCH command MUST return a "BAD" result. | |||
| The client SHOULD NOT provide source options that resolve to | The client SHOULD NOT provide source options that resolve to | |||
| including the same mailbox more than once. A server can, of course, | including the same mailbox more than once. A server can, of course, | |||
| remove the duplicates before processing, but the server MAY return | remove the duplicates before processing, but the server MAY return | |||
| "BAD" to an ESEARCH command with duplicate source mailboxes. | "BAD" to an ESEARCH command with duplicate source mailboxes. | |||
| If the server supports the SEARCHRES [RFC5182] extension, then the | If the server supports the SEARCHRES [RFC5182] extension, then the | |||
| "SAVE" result option is valid *only* if "selected" is specified or | "SAVE" result option is valid only if "selected" is specified or | |||
| defaulted as the sole mailbox to be searched. If any source option | defaulted as the sole mailbox to be searched. If any source option | |||
| other than "selected" is specified, the ESEARCH command MUST return a | other than "selected" is specified, the ESEARCH command MUST return a | |||
| "BAD" result. | "BAD" result. | |||
| If the server supports the CONTEXT=SEARCH and/or CONTEXT=SORT | If the server supports the CONTEXT=SEARCH and/or CONTEXT=SORT | |||
| extension [RFC5267], then the following additional rules apply: | extension [RFC5267], then the following additional rules apply: | |||
| o The CONTEXT return option (Section 4.2 of [RFC5267]) can be used | o The CONTEXT return option (Section 4.2 of [RFC5267]) can be used | |||
| with an ESEARCH command. | with an ESEARCH command. | |||
| o If the UPDATE return option is used (Section 4.3 of [RFC5267]), it | o If the UPDATE return option is used (Section 4.3 of [RFC5267]), it | |||
| MUST apply ONLY to the currently selected mailbox. If UPDATE is | MUST apply only to the currently selected mailbox. If UPDATE is | |||
| used and there is no mailbox currently selected, the ESEARCH | used and there is no mailbox currently selected, the ESEARCH | |||
| command MUST return a "BAD" result. | command MUST return a "BAD" result. | |||
| o The PARTIAL search return option (Section 4.4 of [RFC5267]) can be | o The PARTIAL search return option (Section 4.4 of [RFC5267]) can be | |||
| used and applies to each mailbox searched by the ESEARCH command. | used and applies to each mailbox searched by the ESEARCH command. | |||
| If the server supports the Access Control List (ACL) [RFC4314] | If the server supports the Access Control List (ACL) [RFC4314] | |||
| extension, then the logged-in user is required to have the "r" right | extension, then the logged-in user is required to have the "r" right | |||
| for each mailbox she wants to search. In addition, any mailboxes | for each mailbox she wants to search. In addition, any mailboxes | |||
| that are not explicitly named (accessed through "personal" or | that are not explicitly named (accessed through "personal" or | |||
| skipping to change at page 7, line 30 ¶ | skipping to change at page 7, line 49 ¶ | |||
| S: * ESEARCH (TAG "tag2" MAILBOX "folder2/salmon" UIDVALIDITY | S: * ESEARCH (TAG "tag2" MAILBOX "folder2/salmon" UIDVALIDITY | |||
| 1111111) UID ALL 50003,50006,50009,50012 | 1111111) UID ALL 50003,50006,50009,50012 | |||
| S: tag2 OK done | S: tag2 OK done | |||
| 4. Formal Syntax | 4. Formal Syntax | |||
| The following syntax specification uses the Augmented Backus-Naur | The following syntax specification uses the Augmented Backus-Naur | |||
| Form (ABNF) as described in [RFC5234]. Terms not defined here are | Form (ABNF) as described in [RFC5234]. Terms not defined here are | |||
| taken from [RFC3501], [RFC5465], or [RFC4466]. | taken from [RFC3501], [RFC5465], or [RFC4466]. | |||
| command-auth =/ esearch | command-auth =/ esearch | |||
| ; Update definition from IMAP base [RFC3501]. | ; Update definition from IMAP base [RFC3501]. | |||
| ; Add new "esearch" command. | ; Add new "esearch" command. | |||
| command-select =/ esearch | command-select =/ esearch | |||
| ; Update definition from IMAP base [RFC3501]. | ; Update definition from IMAP base [RFC3501]. | |||
| ; Add new "esearch" command. | ; Add new "esearch" command. | |||
| filter-mailboxes-other =/ ("subtree-one" SP one-or-more-mailbox) | filter-mailboxes-other =/ ("subtree-one" SP one-or-more-mailbox) | |||
| ; Update definition from IMAP Notify [RFC5465]. | ; Update definition from IMAP Notify [RFC5465]. | |||
| ; Add new "subtree-one" selector. | ; Add new "subtree-one" selector. | |||
| filter-mailboxes-selected = "selected" | filter-mailboxes-selected = "selected" | |||
| ; Update definition from IMAP Notify [RFC5465]. | ; Update definition from IMAP Notify [RFC5465]. | |||
| ; We forbid the use of "selected-delayed". | ; We forbid the use of "selected-delayed". | |||
| one-correlator = ("TAG" SP tag-string) / ("MAILBOX" SP astring) / | one-correlator = ("TAG" SP tag-string) / ("MAILBOX" SP astring) / | |||
| ("UIDVALIDITY" SP nz-number) | ("UIDVALIDITY" SP nz-number) | |||
| ; Each correlator MUST appear exactly once. | ; Each correlator MUST appear exactly once. | |||
| scope-option = scope-option-name [SP scope-option-value] | scope-option = scope-option-name [SP scope-option-value] | |||
| ; No options defined here. Syntax for future extensions. | ; No options defined here. Syntax for future extensions. | |||
| scope-option-name = tagged-ext-label | scope-option-name = tagged-ext-label | |||
| ; No options defined here. Syntax for future extensions. | ; No options defined here. Syntax for future extensions. | |||
| scope-option-value = tagged-ext-val | scope-option-value = tagged-ext-val | |||
| ; No options defined here. Syntax for future extensions. | ; No options defined here. Syntax for future extensions. | |||
| scope-options = scope-option *(SP scope-option) | scope-options = scope-option *(SP scope-option) | |||
| ; A given option may only appear once. | ; A given option may only appear once. | |||
| ; No options defined here. Syntax for future extensions. | ; No options defined here. Syntax for future extensions. | |||
| esearch = "ESEARCH" [SP esearch-source-opts] | esearch = "ESEARCH" [SP esearch-source-opts] | |||
| [SP search-return-opts] SP search-program | [SP search-return-opts] SP search-program | |||
| search-correlator = SP "(" one-correlator *(SP one-correlator) ")" | search-correlator = SP "(" one-correlator *(SP one-correlator) ")" | |||
| ; Updates definition in IMAP4 ABNF [RFC4466]. | ; Updates definition in IMAP4 ABNF [RFC4466]. | |||
| esearch-source-opts = "IN" SP "(" source-mbox [SP | esearch-source-opts = "IN" SP "(" source-mbox [SP | |||
| "(" scope-options ")"] ")" | "(" scope-options ")"] ")" | |||
| source-mbox = filter-mailboxes *(SP filter-mailboxes) | source-mbox = filter-mailboxes *(SP filter-mailboxes) | |||
| ; "filter-mailboxes" is defined in IMAP Notify [RFC5465]. | ; "filter-mailboxes" is defined in IMAP Notify [RFC5465]. | |||
| ; See updated definition of filter-mailboxes-other, above. | ; See updated definition of filter-mailboxes-other, above. | |||
| ; See updated definition of filter-mailboxes-selected, above. | ; See updated definition of filter-mailboxes-selected, above. | |||
| 5. Security Considerations | 5. Security Considerations | |||
| This new IMAP ESEARCH command allows a single command to search many | This new IMAP ESEARCH command allows a single command to search many | |||
| mailboxes at once. On the one hand, a client could do that by | mailboxes at once. On the one hand, a client could do that by | |||
| sending many IMAP SEARCH commands. On the other hand, this makes it | sending many IMAP SEARCH commands. On the other hand, this makes it | |||
| easier for a client to overwork a server, by sending a single command | easier for a client to overwork a server, by sending a single command | |||
| skipping to change at page 8, line 46 ¶ | skipping to change at page 9, line 28 ¶ | |||
| 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 | Mailboxes matching the source options for which the logged-in user | |||
| lacks sufficient rights MUST be ignored by the ESEARCH command | lacks sufficient rights MUST be ignored by the ESEARCH command | |||
| processing (see the paragraph about this in Section 2.2). In | processing (see the paragraph about this in Section 2.2). In | |||
| particular, any attempt to distinguish insufficient access from non- | particular, any attempt to distinguish insufficient access from | |||
| existent mailboxes may expose information about the mailbox hierarchy | non-existent mailboxes may expose information about the mailbox | |||
| that isn't otherwise available to the client. | hierarchy that isn't otherwise available to the client. | |||
| If "subtree" is specified, the server MUST defend against loops in | If "subtree" is specified, the server MUST defend against loops in | |||
| the hierarchy (see the paragraph about this in Section 2.2). | the hierarchy (see the paragraph about this in Section 2.2). | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| The "IMAP Capabilities" registry is currently located at <http:// | The "IMAP Capabilities" registry is currently located at | |||
| www.iana.org/assignments/imap-capabilities#imap-capabilities-1>. | <http://www.iana.org/assignments/imap-capabilities#imap- | |||
| capabilities-1>. | ||||
| IANA is asked to change the reference for the IMAP capability | IANA is asked to change the reference for the IMAP capability | |||
| "MULTISEARCH", to point to this document. | "MULTISEARCH" to point to this document. | |||
| 7. Acknowledgements | 7. Implementation Status | |||
| [[CREF2: RFC Editor: Please remove this section at publication.]] | ||||
| This section records the status of known implementations of the | ||||
| protocol defined by this specification at the time of posting of | ||||
| this Internet-Draft, and is based on a proposal described in RFC | ||||
| 6982. The description of implementations in this section is | ||||
| intended to assist the IETF in its decision processes in | ||||
| progressing drafts to RFCs. Please note that the listing of any | ||||
| individual implementation here does not imply endorsement by the | ||||
| IETF. Furthermore, no effort has been spent to verify the | ||||
| information presented here that was supplied by IETF contributors. | ||||
| This is not intended as, and must not be construed to be, a | ||||
| catalog of available implementations or their features. Readers | ||||
| are advised to note that other implementations may exist. | ||||
| According to RFC 6982, "this will allow reviewers and working | ||||
| groups to assign due consideration to documents that have the | ||||
| benefit of running code, which may serve as evidence of valuable | ||||
| experimentation and feedback that have made the implemented | ||||
| protocols more mature. It is up to the individual working groups | ||||
| to use this information as they see fit". | ||||
| The following implementations are known to exist: | ||||
| o Oracle has a server implementation that is not currently in a | ||||
| product. | ||||
| o There is a client implementation that has been tested with the | ||||
| Oracle server. No further information is available. | ||||
| Interest has been expressed in creating the following | ||||
| implementations: | ||||
| o Isode Limited | ||||
| 8. Changes Since RFC 6237 | ||||
| o Change to Standards Track. | ||||
| o Added paragraph about duplicate mailboxes. | ||||
| o Added Section 2.3 about fuzzy search. | ||||
| o Added Section 7, "Implementation Status". | ||||
| [[CREF3: RFC Editor: Please remove this bullet at publication.]] | ||||
| 9. Acknowledgements | ||||
| The authors gratefully acknowledge feedback provided by Timo | The authors gratefully acknowledge feedback provided by Timo | |||
| Sirainen, Peter Coates, Arnt Gulbrandsen, and Chris Newman. | Sirainen, Peter Coates, Arnt Gulbrandsen, and Chris Newman. | |||
| 8. References | 10. References | |||
| 10.1. 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. | |||
| [RFC2978] Freed, N. and J. Postel, "IANA Charset Registration | [RFC2978] Freed, N. and J. Postel, "IANA Charset Registration | |||
| Procedures", BCP 19, RFC 2978, October 2000. | Procedures", BCP 19, RFC 2978, October 2000. | |||
| [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION | [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION | |||
| 4rev1", RFC 3501, March 2003. | 4rev1", RFC 3501, March 2003. | |||
| skipping to change at page 9, line 43 ¶ | skipping to change at page 11, line 37 ¶ | |||
| [RFC5182] Melnikov, A., "IMAP Extension for Referencing the Last | [RFC5182] Melnikov, A., "IMAP Extension for Referencing the Last | |||
| SEARCH Result", RFC 5182, March 2008. | SEARCH Result", RFC 5182, March 2008. | |||
| [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax | [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax | |||
| Specifications: ABNF", STD 68, RFC 5234, January 2008. | Specifications: ABNF", STD 68, RFC 5234, January 2008. | |||
| [RFC5267] Cridland, D. and C. King, "Contexts for IMAP4", RFC 5267, | [RFC5267] Cridland, D. and C. King, "Contexts for IMAP4", RFC 5267, | |||
| July 2008. | July 2008. | |||
| [RFC5465] Gulbrandsen, A., King, C. and A. Melnikov, "The IMAP | [RFC5465] Gulbrandsen, A., King, C., and A. Melnikov, "The IMAP | |||
| NOTIFY Extension", RFC 5465, February 2009. | NOTIFY Extension", RFC 5465, February 2009. | |||
| 10.2. Informative References | ||||
| [RFC6203] Sirainen, T., "IMAP4 Extension for Fuzzy Search", RFC | [RFC6203] Sirainen, T., "IMAP4 Extension for Fuzzy Search", RFC | |||
| 6203, March 2011. | 6203, March 2011. | |||
| Authors' Addresses | Authors' Addresses | |||
| Barry Leiba | Barry Leiba | |||
| Huawei Technologies | Huawei Technologies | |||
| Phone: +1 646 827 0648 | Phone: +1 646 827 0648 | |||
| Email: barryleiba@computer.org | Email: barryleiba@computer.org | |||
| URI: http://internetmessagingtechnology.org/ | URI: http://internetmessagingtechnology.org/ | |||
| Alexey Melnikov | Alexey Melnikov | |||
| Isode Limited | Isode Limited | |||
| 5 Castle Business Village | 5 Castle Business Village | |||
| 36 Station Road | 36 Station Road | |||
| Hampton, Middlesex TW12 2BX | Hampton, Middlesex TW12 2BX | |||
| UK | UK | |||
| Email: Alexey.Melnikov@isode.com | Email: Alexey.Melnikov@isode.com | |||
| URI: http://www.melnikov.ca/ | URI: http://www.melnikov.ca/ | |||
| End of changes. 34 change blocks. | ||||
| 67 lines changed or deleted | 127 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/ | ||||