| < draft-ietf-appsawg-multimailbox-search-01.txt | draft-ietf-appsawg-multimailbox-search-02.txt > | |||
|---|---|---|---|---|
| Applications Area Working Group B. Leiba | Applications Area Working Group B. Leiba | |||
| Internet-Draft Huawei Technologies | Internet-Draft Huawei Technologies | |||
| Obsoletes: 6237 (if approved) A. Melnikov | Updates: 4466 (if approved) A. Melnikov | |||
| Updates: 4466 (if approved) Isode Limited | Obsoletes: 6237 (if approved) Isode Limited | |||
| Intended status: Standards Track June 3, 2014 | Intended status: Standards Track July 21, 2014 | |||
| Expires: December 5, 2014 | Expires: January 20, 2015 | |||
| IMAP4 Multimailbox SEARCH Extension | IMAP4 Multimailbox SEARCH Extension | |||
| draft-ietf-appsawg-multimailbox-search-01 | draft-ietf-appsawg-multimailbox-search-02 | |||
| 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 December 5, 2014. | This Internet-Draft will expire on January 20, 2015. | |||
| 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 | Provisions Relating to IETF Documents (http://trustee.ietf.org/ | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
| publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
| carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
| to this document. Code Components extracted from this document must | extracted from this document must include Simplified BSD License text | |||
| include Simplified BSD License text as described in Section 4.e of | as described in Section 4.e of the Trust Legal Provisions and are | |||
| the Trust Legal Provisions and are provided without warranty as | provided without warranty as described in the Simplified BSD License. | |||
| 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 . . . . . . . . . . . . . . . 7 | 2.3. Strictness in Search Matches . . . . . . . . . . . . . . . . 6 | |||
| 3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 2.4. Server-Side Limitations on Search Volume . . . . . . . . . . 6 | |||
| 4. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 7 | 3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 4. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
| 7. Implementation Status . . . . . . . . . . . . . . . . . . . . 9 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 8. Changes Since RFC 6237 . . . . . . . . . . . . . . . . . . . 10 | 7. Implementation Status . . . . . . . . . . . . . . . . . . . . 9 | |||
| 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 | 8. Changes Since RFC 6237 . . . . . . . . . . . . . . . . . . . . 10 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . . 11 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . . 11 | 10.1. Normative References . . . . . . . . . . . . . . . . . . . 10 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 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 23 ¶ | skipping to change at page 3, line 20 ¶ | |||
| 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.]] | [[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 5, line 6 ¶ | skipping to change at page 4, line 49 ¶ | |||
| 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 | result options such as MIN, MAX, and COUNT are specified (see Section | |||
| Section 3.1 of [RFC4731]), and the values returned (lowest UID | 3.1 of [RFC4731]), and the values returned (lowest UID matched, | |||
| matched, highest UID matched, and number of messages matched, | highest UID matched, and number of messages matched, respectively) | |||
| respectively) apply to the mailbox reported in that ESEARCH response. | apply to the mailbox reported in that ESEARCH response. | |||
| Note that it is possible for an ESEARCH command to return no untagged | Note that it is possible for an ESEARCH command to return no untagged | |||
| responses (no ESEARCH responses at all), in the case that there are | responses (no ESEARCH responses at all), in the case that there are | |||
| no matches to the search in any of the mailboxes that satisfy the | no matches to the search in any of the mailboxes that satisfy the | |||
| source options. Clients can detect this situation by finding the | source options. Clients can detect this situation by finding the | |||
| tagged OK response without having received any matching untagged | tagged OK response without having received any matching 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 | |||
| skipping to change at page 7, line 20 ¶ | skipping to change at page 6, line 55 ¶ | |||
| for example, "swim" to "swam" and "swum" as well, or only doing full | for example, "swim" to "swam" and "swum" as well, or only doing full | |||
| word matching (where "swim" will not match "swimming"). This is | word matching (where "swim" will not match "swimming"). This is | |||
| covered by the "Fuzzy Search" extension to IMAP [RFC6203], and that | covered by the "Fuzzy Search" extension to IMAP [RFC6203], and that | |||
| extension is compatible with this one and can be combined with it. | extension is compatible with this one and can be combined with it. | |||
| Whether or not Fuzzy Search is implemented or used, this extension | Whether or not Fuzzy Search is implemented or used, this extension | |||
| explicitly allows flexible searching with respect to TEXT and BODY | explicitly allows flexible searching with respect to TEXT and BODY | |||
| searches. Servers MAY use fuzzy text matching in multimailbox | searches. Servers MAY use fuzzy text matching in multimailbox | |||
| searches. | searches. | |||
| 2.4. Server-Side Limitations on Search Volume | ||||
| To avoid having a search use more than a reasonable share of server | ||||
| resources, servers MAY apply limits that go beyond loop protection, | ||||
| such as limits on the number of mailboxes that may be searched at | ||||
| once, and/or limits on the number or total size of messages searched. | ||||
| A server can apply those limits up front, responding with "NO | ||||
| [LIMIT]" if a limit is exceeded (see [RFC5530] for information about | ||||
| response codes). Alternatively, a server can process the search and | ||||
| terminate it when a limit is exceeded, responding with "OK [LIMIT]" | ||||
| and returning partial results. Note that searches that return | ||||
| partial results can cause complexity for client implementations and | ||||
| confusion to users. | ||||
| 3. Examples | 3. Examples | |||
| In the following example, note that two ESEARCH commands are | In the following example, note that two ESEARCH commands are | |||
| pipelined, and that the server is running them in parallel, | pipelined, and that the server is running them in parallel, | |||
| interleaving a response to the second search amid the responses to | interleaving a response to the second search amid the responses to | |||
| the first (watch the tags). | the first (watch the tags). | |||
| C: tag1 ESEARCH IN (mailboxes "folder1" subtree "folder2") unseen | C: tag1 ESEARCH IN (mailboxes "folder1" subtree "folder2") unseen | |||
| C: tag2 ESEARCH IN (mailboxes "folder1" subtree-one "folder2") | C: tag2 ESEARCH IN (mailboxes "folder1" subtree-one "folder2") | |||
| subject "chad" | subject "chad" | |||
| skipping to change at page 7, line 49 ¶ | skipping to change at page 7, line 45 ¶ | |||
| 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 | |||
| that results in an expensive search of tens of thousands of | that results in an expensive search of tens of thousands of | |||
| mailboxes. Server implementations need to be aware of that, and | mailboxes. Server implementations need to be aware of that, and | |||
| provide mechanisms that prevent a client from adversely affecting | provide mechanisms that prevent a client from adversely affecting | |||
| other users. Limitations on the number of mailboxes that may be | other users. Limitations on the number of mailboxes that may be | |||
| 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 (see also Section 2.4. | |||
| 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 | particular, any attempt to distinguish insufficient access from non- | |||
| non-existent mailboxes may expose information about the mailbox | existent mailboxes may expose information about the mailbox hierarchy | |||
| hierarchy that isn't otherwise available to the client. | 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 | The "IMAP Capabilities" registry is currently located at <http:// | |||
| <http://www.iana.org/assignments/imap-capabilities#imap- | www.iana.org/assignments/imap-capabilities>. | |||
| 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. Implementation Status | 7. Implementation Status | |||
| [[CREF2: RFC Editor: Please remove this section at publication.]] | [[RFC Editor: Please remove this section at publication.]] | |||
| This section records the status of known implementations of the | This section records the status of known implementations of the | |||
| protocol defined by this specification at the time of posting of | protocol defined by this specification at the time of posting of | |||
| this Internet-Draft, and is based on a proposal described in RFC | this Internet-Draft, and is based on a proposal described in RFC | |||
| 6982. The description of implementations in this section is | 6982. The description of implementations in this section is | |||
| intended to assist the IETF in its decision processes in | intended to assist the IETF in its decision processes in | |||
| progressing drafts to RFCs. Please note that the listing of any | progressing drafts to RFCs. Please note that the listing of any | |||
| individual implementation here does not imply endorsement by the | individual implementation here does not imply endorsement by the | |||
| IETF. Furthermore, no effort has been spent to verify the | IETF. Furthermore, no effort has been spent to verify the | |||
| information presented here that was supplied by IETF contributors. | information presented here that was supplied by IETF contributors. | |||
| skipping to change at page 10, line 41 ¶ | skipping to change at page 10, line 22 ¶ | |||
| 8. Changes Since RFC 6237 | 8. Changes Since RFC 6237 | |||
| o Change to Standards Track. | o Change to Standards Track. | |||
| o Added paragraph about duplicate mailboxes. | o Added paragraph about duplicate mailboxes. | |||
| o Added Section 2.3 about fuzzy search. | o Added Section 2.3 about fuzzy search. | |||
| o Added Section 7, "Implementation Status". | o Added Section 7, "Implementation Status". | |||
| [[CREF3: RFC Editor: Please remove this bullet at publication.]] | [[RFC Editor: Please remove this bullet at publication.]] | |||
| 9. Acknowledgements | 9. Acknowledgments | |||
| 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. | |||
| 10. References | 10. References | |||
| 10.1. Normative 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. | |||
| skipping to change at page 11, line 37 ¶ | skipping to change at page 11, line 8 ¶ | |||
| [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. | |||
| [RFC5530] Gulbrandsen, A., "IMAP Response Codes", RFC 5530, May | ||||
| 2009. | ||||
| 10.2. Informative References | 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 | |||
| skipping to change at page 12, line 4 ¶ | skipping to change at page 11, line 27 ¶ | |||
| 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. 32 change blocks. | ||||
| 62 lines changed or deleted | 78 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/ | ||||