| < draft-myers-imap-optimize-01.txt | draft-myers-imap-optimize-02.txt > | |||
|---|---|---|---|---|
| Network Working Group J. Myers | Network Working Group J. Myers | |||
| Internet Draft Carnegie Mellon | Internet Draft Netscape Communications | |||
| Document: draft-myers-imap-optimize-01.txt July 1996 | Document: draft-myers-imap-optimize-02.txt November 1997 | |||
| IMAP4 OPTIMIZE-1 extension | IMAP4 OPTIMIZE-1 extension | |||
| Status of this Memo | Status of this Memo | |||
| This document is an Internet Draft. Internet Drafts are working | This document is an Internet Draft. Internet Drafts are working | |||
| documents of the Internet Engineering Task Force (IETF), its Areas, | documents of the Internet Engineering Task Force (IETF), its Areas, | |||
| and its Working Groups. Note that other groups may also distribute | and its Working Groups. Note that other groups may also distribute | |||
| working documents as Internet Drafts. | working documents as Internet Drafts. | |||
| skipping to change at page 2, line ? ¶ | skipping to change at page 2, line ? ¶ | |||
| 1id-abstracts.txt listing contained in the Internet-Drafts Shadow | 1id-abstracts.txt listing contained in the Internet-Drafts Shadow | |||
| Directories on ds.internic.net, nic.nordu.net, ftp.isi.edu, or | Directories on ds.internic.net, nic.nordu.net, ftp.isi.edu, or | |||
| munnari.oz.au. | munnari.oz.au. | |||
| A revised version of this draft document will be submitted to the RFC | A revised version of this draft document will be submitted to the RFC | |||
| editor as a Proposed Standard for the Internet Community. Discussion | editor as a Proposed Standard for the Internet Community. Discussion | |||
| and suggestions for improvement are requested. This document will | and suggestions for improvement are requested. This document will | |||
| expire before December 1996. Distribution of this draft is | expire before December 1996. Distribution of this draft is | |||
| unlimited. | unlimited. | |||
| Internet DRAFT OPTIMIZE-1 July 22, 1996 | Internet DRAFT OPTIMIZE-1 November 11, 1997 | |||
| 1. Abstract | 1. Abstract | |||
| The OPTIMIZE-1 extension of the Internet Message Access Protocol | The OPTIMIZE-1 extension of the Internet Message Access Protocol | |||
| [IMAP4] provides a set of features intended to reduce the amount of | [IMAP4] provides a set of features intended to reduce the amount of | |||
| time and resources used by some client operations. The features in | time and resources used by some client operations. The features in | |||
| OPTIMIZE-1 are primarily intended for disconnected-use clients. | OPTIMIZE-1 are primarily intended for disconnected-use clients. | |||
| 2. Conventions Used in this Document | 2. Conventions Used in this Document | |||
| skipping to change at page 3, line 5 ¶ | skipping to change at page 3, line 5 ¶ | |||
| successful APPEND and COPY commands. | successful APPEND and COPY commands. | |||
| Clients that wish to use the features in OPTIMIZE-1 must of course | Clients that wish to use the features in OPTIMIZE-1 must of course | |||
| first test for the presence of the extension by issuing a CAPABILITY | first test for the presence of the extension by issuing a CAPABILITY | |||
| command. Each of the features in OPTIMIZE-1 are optimizations; | command. Each of the features in OPTIMIZE-1 are optimizations; | |||
| clients can provide the same functionality, albeit more slowly, by | clients can provide the same functionality, albeit more slowly, by | |||
| using commands in the base protocol. With each feature, this | using commands in the base protocol. With each feature, this | |||
| document recommends a fallback approach to take when the OPTIMIZE-1 | document recommends a fallback approach to take when the OPTIMIZE-1 | |||
| extension is not supported by the server. | extension is not supported by the server. | |||
| Internet DRAFT OPTIMIZE-1 July 22, 1996 | Internet DRAFT OPTIMIZE-1 November 11, 1997 | |||
| 4. Features | 4. Features | |||
| 4.1. GETUIDS Command | 4.1. GETUIDS Command | |||
| Arguments: starting uid | Arguments: starting uid | |||
| Data: untagged response: GETUIDS | Data: untagged response: GETUIDS | |||
| Result: OK - getuids completed | Result: OK - getuids completed | |||
| skipping to change at page 3, line 31 ¶ | skipping to change at page 3, line 31 ¶ | |||
| If there is no message in the mailbox with a UID greater than or | If there is no message in the mailbox with a UID greater than or | |||
| equal to the starting UID, the untagged GETUIDS response contains | equal to the starting UID, the untagged GETUIDS response contains | |||
| no arguments. | no arguments. | |||
| If there exists at least one message with a UID greater than or | If there exists at least one message with a UID greater than or | |||
| equal to the starting UID, the untagged GETUIDS response contains | equal to the starting UID, the untagged GETUIDS response contains | |||
| the lowest message sequence number with a UID greater than or | the lowest message sequence number with a UID greater than or | |||
| equal to the starting UID, followed by a message set. The message | equal to the starting UID, followed by a message set. The message | |||
| set must contain the UIDs of every message in the mailbox with a | set must contain the UIDs of every message in the mailbox with a | |||
| UID greater than or equal to the starting UID. The message set | UID greater than or equal to the starting UID. The message set | |||
| must not contain the symbol '*', the UID of any message which | must not contain the symbol '*', any UID less than the starting | |||
| previously existed but has since been deleted, or any UID less | UID, or any UID not present in the mailbox. The UIDs in the | |||
| than the starting UID or greater than the UID of the last message | message set must be in strictly ascending order. | |||
| in the mailbox. The UIDs in the message set must be in strictly | ||||
| ascending order. | ||||
| Upon receiving the untagged GETUIDS response, the client knows | Upon receiving the untagged GETUIDS response, the client knows | |||
| that any message in its cache with a UID greater than or equal to | that any message in its cache with a UID greater than or equal to | |||
| the starting UID and not present in a returned message set has | the starting UID and not present in a returned message set has | |||
| been expunged. | been expunged. | |||
| If the server does not support the OPTIMIZE-1 capability, the | If the server does not support the OPTIMIZE-1 capability, the | |||
| client should fall back to using the UID FETCH starting-uid:* UID | client should fall back to using the UID FETCH starting-uid:* UID | |||
| command, where starting-uid is the starting UID. | command, where starting-uid is the starting UID. | |||
| Example: C: A003 GETUIDS 3475 | Example: C: A003 GETUIDS 3475 | |||
| S: * GETUIDS 17 3509:3519,3525,3590:3599 | S: * GETUIDS 17 3509:3519,3525,3590:3599 | |||
| S: A003 OK GETUIDS completed | S: A003 OK GETUIDS completed | |||
| C: A004 GETUIDS 4000 | C: A004 GETUIDS 4000 | |||
| S: * GETUIDS | S: * GETUIDS | |||
| S: A004 OK GETUIDS completed | S: A004 OK GETUIDS completed | |||
| Internet DRAFT OPTIMIZE-1 July 22, 1996 | ||||
| Internet DRAFT OPTIMIZE-1 November 11, 1997 | ||||
| 4.2. UID EXPUNGE Command | 4.2. UID EXPUNGE Command | |||
| Arguments: message set | Arguments: message set | |||
| Data: untagged responses: EXPUNGE | Data: untagged responses: EXPUNGE | |||
| Result: OK - expunge completed | Result: OK - expunge completed | |||
| NO - expunge failure (e.g. permision denied) | NO - expunge failure (e.g. permission denied) | |||
| BAD - command unknown or arguments invalid | BAD - command unknown or arguments invalid | |||
| The UID EXPUNGE command permanently removes from the currently | The UID EXPUNGE command permanently removes from the currently | |||
| selected mailbox all messages that both have the \Deleted flag set | selected mailbox all messages that both have the \Deleted flag set | |||
| and have a UID that is included in the specified message set. If | and have a UID that is included in the specified message set. If | |||
| a message either does not have the \Deleted flag set or is has a | a message either does not have the \Deleted flag set or is has a | |||
| UID that is not included in the specified message set, it is not | UID that is not included in the specified message set, it is not | |||
| affected. | affected. | |||
| This command may be used to ensure that a replayed EXPUNGE command | This command may be used to ensure that a replayed EXPUNGE command | |||
| skipping to change at page 4, line 35 ¶ | skipping to change at page 4, line 36 ¶ | |||
| between the time that the user requested the expunge operation and | between the time that the user requested the expunge operation and | |||
| the time the server processes the command. | the time the server processes the command. | |||
| If the server does not support the OPTIMIZE-1 capability, the | If the server does not support the OPTIMIZE-1 capability, the | |||
| client should fall back to using the STORE command to temporarily | client should fall back to using the STORE command to temporarily | |||
| remove the \Deleted flag from messages it does not want to remove. | remove the \Deleted flag from messages it does not want to remove. | |||
| The client could alternatively fall back to using the EXPUNGE | The client could alternatively fall back to using the EXPUNGE | |||
| command, risking the unintended removal of some messages. | command, risking the unintended removal of some messages. | |||
| Example: C: A003 UID EXPUNGE 3000:3002 | Example: C: A003 UID EXPUNGE 3000:3002 | |||
| S: * EXPUNGE 3 | S: * 3 EXPUNGE | |||
| S: * EXPUNGE 3 | S: * 3 EXPUNGE | |||
| S: * EXPUNGE 3 | S: * 3 EXPUNGE | |||
| S: A003 OK UID EXPUNGE completed | S: A003 OK UID EXPUNGE completed | |||
| 4.3. APPENDUID response code | 4.3. APPENDUID response code | |||
| Successful APPEND commands return an APPENDUID response code in the | Successful APPEND commands return an APPENDUID response code in the | |||
| tagged OK response. The APPENDUID response code contains as | tagged OK response. The APPENDUID response code contains as | |||
| arguments the UIDVALIDITY of the destination mailbox and the UID | arguments the UIDVALIDITY of the destination mailbox and the UID | |||
| assigned to the appended message. | assigned to the appended message. | |||
| If the server does not support the OPTIMIZE-1 capability, the client | If the server does not support the OPTIMIZE-1 capability, the client | |||
| can only discover this information by selecting the destination | can only discover this information by selecting the destination | |||
| mailbox and issuing FETCH commands. | mailbox and issuing FETCH commands. | |||
| Example: C: A003 APPEND saved-messages (\Seen) {310} | Example: C: A003 APPEND saved-messages (\Seen) {310} | |||
| C: Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) | C: Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST) | |||
| C: From: Fred Foobar <foobar@Blurdybloop.COM> | C: From: Fred Foobar <foobar@Blurdybloop.COM> | |||
| Internet DRAFT OPTIMIZE-1 July 22, 1996 | ||||
| Internet DRAFT OPTIMIZE-1 November 11, 1997 | ||||
| C: Subject: afternoon meeting | C: Subject: afternoon meeting | |||
| C: To: mooch@owatagu.siam.edu | C: To: mooch@owatagu.siam.edu | |||
| C: Message-Id: <B27397-0100000@Blurdybloop.COM> | C: Message-Id: <B27397-0100000@Blurdybloop.COM> | |||
| C: MIME-Version: 1.0 | C: MIME-Version: 1.0 | |||
| C: Content-Type: TEXT/PLAIN; CHARSET=US-ASCII | C: Content-Type: TEXT/PLAIN; CHARSET=US-ASCII | |||
| C: | C: | |||
| C: Hello Joe, do you think we can meet at 3:30 tomorrow? | C: Hello Joe, do you think we can meet at 3:30 tomorrow? | |||
| C: | C: | |||
| S: A003 OK [APPENDUID 38505 3955] APPEND completed | S: A003 OK [APPENDUID 38505 3955] APPEND completed | |||
| skipping to change at page 6, line 4 ¶ | skipping to change at page 6, line 4 ¶ | |||
| [IMAP4]. | [IMAP4]. | |||
| Except as noted otherwise, all alphabetic characters are case- | Except as noted otherwise, all alphabetic characters are case- | |||
| insensitive. The use of upper or lower case characters to define | insensitive. The use of upper or lower case characters to define | |||
| token strings is for editorial clarity only. Implementations MUST | token strings is for editorial clarity only. Implementations MUST | |||
| accept these strings in a case-insensitive fashion. | accept these strings in a case-insensitive fashion. | |||
| getuids ::= "GETUIDS" SPACE uniqueid | getuids ::= "GETUIDS" SPACE uniqueid | |||
| getuids_data ::= "GETUIDS" [ SPACE nz_number SPACE set ] | getuids_data ::= "GETUIDS" [ SPACE nz_number SPACE set ] | |||
| Internet DRAFT OPTIMIZE-1 July 22, 1996 | ||||
| literal ::= "{" number ["+"] "}" CRLF *CHAR8 | Internet DRAFT OPTIMIZE-1 November 11, 1997 | |||
| ;; Number represents the number of CHAR8 octets | ||||
| resp_code_apnd ::= "APPENDUID" SPACE nz_number SPACE uniqueid | resp_code_apnd ::= "APPENDUID" SPACE nz_number SPACE uniqueid | |||
| resp_code_copy ::= "COPYUID" SPACE nz_number SPACE set SPACE set | resp_code_copy ::= "COPYUID" SPACE nz_number SPACE set SPACE set | |||
| uid_expunge ::= "UID" SPACE "EXPUNGE" SPACE set | uid_expunge ::= "UID" SPACE "EXPUNGE" SPACE set | |||
| 6. References | 6. References | |||
| [IMAP4] Crispin, M., "Internet Message Access Protocol - Version 4", | [IMAP4] Crispin, M., "Internet Message Access Protocol - Version | |||
| draft-crispin-imap-base-XX.txt, University of Washington, April 1996. | 4rev1", RFC 2060, University of Washington, December 1996. | |||
| [RFC-822] Crocker, D., "Standard for the Format of ARPA Internet Text | [RFC-822] Crocker, D., "Standard for the Format of ARPA Internet Text | |||
| Messages", STD 11, RFC 822. | Messages", STD 11, RFC 822. | |||
| 7. Security Considerations | 7. Security Considerations | |||
| There are no known security issues with this extension. | There are no known security issues with this extension. | |||
| 8. Author's Address | 8. Author's Address | |||
| John G. Myers | John Gardiner Myers | |||
| Carnegie-Mellon University | Netscape Communications | |||
| 5000 Forbes Ave. | 501 East Middlefield Road | |||
| Pittsburgh PA, 15213-3890 | Mail Stop MV-029 | |||
| Mountain View, CA 94043 | ||||
| Email: jgm+@cmu.edu | Email: jgmyers@netscape.com | |||
| Internet DRAFT OPTIMIZE-1 July 22, 1996 | ||||
| Internet DRAFT OPTIMIZE-1 November 11, 1997 | ||||
| TTTTaaaabbbblllleeee ooooffff CCCCoooonnnntttteeeennnnttttssss | TTTTaaaabbbblllleeee ooooffff CCCCoooonnnntttteeeennnnttttssss | |||
| Status of this Memo ............................................... i | Status of this Memo ............................................... i | |||
| 1. Abstract ..................................................... 2 | 1. Abstract ..................................................... 2 | |||
| 2. Conventions Used in this Document ............................ 2 | 2. Conventions Used in this Document ............................ 2 | |||
| 3. Introduction and Overview .................................... 2 | 3. Introduction and Overview .................................... 2 | |||
| 4. Features ..................................................... 3 | 4. Features ..................................................... 3 | |||
| 4.1. GETUIDS Command .............................................. 3 | 4.1. GETUIDS Command .............................................. 3 | |||
| 4.2. UID EXPUNGE Command .......................................... 4 | 4.2. UID EXPUNGE Command .......................................... 3 | |||
| 4.3. APPENDUID response code ...................................... 4 | 4.3. APPENDUID response code ...................................... 4 | |||
| 4.4. COPYUID response code ........................................ 5 | 4.4. COPYUID response code ........................................ 5 | |||
| 5. Formal Syntax ................................................ 5 | 5. Formal Syntax ................................................ 5 | |||
| 6. References ................................................... 6 | 6. References ................................................... 6 | |||
| 7. Security Considerations ...................................... 6 | 7. Security Considerations ...................................... 6 | |||
| 8. Author's Address ............................................. 6 | 8. Author's Address ............................................. 6 | |||
| End of changes. 14 change blocks. | ||||
| 27 lines changed or deleted | 27 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/ | ||||