draft-ietf-extra-imap4rev2-17.txt   draft-ietf-extra-imap4rev2-18.txt 
Network Working Group A. Melnikov, Ed. Network Working Group A. Melnikov, Ed.
Internet-Draft Isode Ltd Internet-Draft Isode Ltd
Obsoletes: 3501 (if approved) B. Leiba, Ed. Obsoletes: 3501 (if approved) B. Leiba, Ed.
Intended status: Standards Track Futurewei Technologies Intended status: Standards Track Futurewei Technologies
Expires: January 30, 2021 July 29, 2020 Expires: March 19, 2021 September 15, 2020
Internet Message Access Protocol (IMAP) - Version 4rev2 Internet Message Access Protocol (IMAP) - Version 4rev2
draft-ietf-extra-imap4rev2-17 draft-ietf-extra-imap4rev2-18
Abstract Abstract
The Internet Message Access Protocol, Version 4rev2 (IMAP4rev2) The Internet Message Access Protocol, Version 4rev2 (IMAP4rev2)
allows a client to access and manipulate electronic mail messages on allows a client to access and manipulate electronic mail messages on
a server. IMAP4rev2 permits manipulation of mailboxes (remote a server. IMAP4rev2 permits manipulation of mailboxes (remote
message folders) in a way that is functionally equivalent to local message folders) in a way that is functionally equivalent to local
folders. IMAP4rev2 also provides the capability for an offline folders. IMAP4rev2 also provides the capability for an offline
client to resynchronize with the server. client to resynchronize with the server.
skipping to change at page 1, line 47 skipping to change at page 1, line 47
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 https://datatracker.ietf.org/drafts/current/. Drafts is at https://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 January 30, 2021. This Internet-Draft will expire on March 19, 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 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
(https://trustee.ietf.org/license-info) in effect on the date of (https://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 3, line 47 skipping to change at page 3, line 47
6.3.5. DELETE Command . . . . . . . . . . . . . . . . . . . 39 6.3.5. DELETE Command . . . . . . . . . . . . . . . . . . . 39
6.3.6. RENAME Command . . . . . . . . . . . . . . . . . . . 41 6.3.6. RENAME Command . . . . . . . . . . . . . . . . . . . 41
6.3.7. SUBSCRIBE Command . . . . . . . . . . . . . . . . . . 43 6.3.7. SUBSCRIBE Command . . . . . . . . . . . . . . . . . . 43
6.3.8. UNSUBSCRIBE Command . . . . . . . . . . . . . . . . . 44 6.3.8. UNSUBSCRIBE Command . . . . . . . . . . . . . . . . . 44
6.3.9. LIST Command . . . . . . . . . . . . . . . . . . . . 44 6.3.9. LIST Command . . . . . . . . . . . . . . . . . . . . 44
6.3.10. NAMESPACE Command . . . . . . . . . . . . . . . . . . 62 6.3.10. NAMESPACE Command . . . . . . . . . . . . . . . . . . 62
6.3.11. STATUS Command . . . . . . . . . . . . . . . . . . . 67 6.3.11. STATUS Command . . . . . . . . . . . . . . . . . . . 67
6.3.12. APPEND Command . . . . . . . . . . . . . . . . . . . 68 6.3.12. APPEND Command . . . . . . . . . . . . . . . . . . . 68
6.3.13. IDLE Command . . . . . . . . . . . . . . . . . . . . 71 6.3.13. IDLE Command . . . . . . . . . . . . . . . . . . . . 71
6.4. Client Commands - Selected State . . . . . . . . . . . . 73 6.4. Client Commands - Selected State . . . . . . . . . . . . 73
6.4.1. CLOSE Command . . . . . . . . . . . . . . . . . . . . 73 6.4.1. CLOSE Command . . . . . . . . . . . . . . . . . . . . 74
6.4.2. UNSELECT Command . . . . . . . . . . . . . . . . . . 74 6.4.2. UNSELECT Command . . . . . . . . . . . . . . . . . . 74
6.4.3. EXPUNGE Command . . . . . . . . . . . . . . . . . . . 74 6.4.3. EXPUNGE Command . . . . . . . . . . . . . . . . . . . 75
6.4.4. SEARCH Command . . . . . . . . . . . . . . . . . . . 75 6.4.4. SEARCH Command . . . . . . . . . . . . . . . . . . . 75
6.4.5. FETCH Command . . . . . . . . . . . . . . . . . . . . 87 6.4.5. FETCH Command . . . . . . . . . . . . . . . . . . . . 87
6.4.6. STORE Command . . . . . . . . . . . . . . . . . . . . 91 6.4.6. STORE Command . . . . . . . . . . . . . . . . . . . . 92
6.4.7. COPY Command . . . . . . . . . . . . . . . . . . . . 93 6.4.7. COPY Command . . . . . . . . . . . . . . . . . . . . 93
6.4.8. MOVE Command . . . . . . . . . . . . . . . . . . . . 94 6.4.8. MOVE Command . . . . . . . . . . . . . . . . . . . . 94
6.4.9. UID Command . . . . . . . . . . . . . . . . . . . . . 95 6.4.9. UID Command . . . . . . . . . . . . . . . . . . . . . 96
6.5. Client Commands - Experimental/Expansion . . . . . . . . 97 6.5. Client Commands - Experimental/Expansion . . . . . . . . 97
6.5.1. X<atom> Command . . . . . . . . . . . . . . . . . . . 97 6.5.1. X<atom> Command . . . . . . . . . . . . . . . . . . . 97
7. Server Responses . . . . . . . . . . . . . . . . . . . . . . 98 7. Server Responses . . . . . . . . . . . . . . . . . . . . . . 98
7.1. Server Responses - Status Responses . . . . . . . . . . . 99 7.1. Server Responses - Status Responses . . . . . . . . . . . 99
7.1.1. OK Response . . . . . . . . . . . . . . . . . . . . . 107 7.1.1. OK Response . . . . . . . . . . . . . . . . . . . . . 107
7.1.2. NO Response . . . . . . . . . . . . . . . . . . . . . 107 7.1.2. NO Response . . . . . . . . . . . . . . . . . . . . . 108
7.1.3. BAD Response . . . . . . . . . . . . . . . . . . . . 108 7.1.3. BAD Response . . . . . . . . . . . . . . . . . . . . 108
7.1.4. PREAUTH Response . . . . . . . . . . . . . . . . . . 108 7.1.4. PREAUTH Response . . . . . . . . . . . . . . . . . . 108
7.1.5. BYE Response . . . . . . . . . . . . . . . . . . . . 108 7.1.5. BYE Response . . . . . . . . . . . . . . . . . . . . 109
7.2. Server Responses - Server and Mailbox Status . . . . . . 109 7.2. Server Responses - Server and Mailbox Status . . . . . . 109
7.2.1. The ENABLED Response . . . . . . . . . . . . . . . . 109 7.2.1. The ENABLED Response . . . . . . . . . . . . . . . . 110
7.2.2. CAPABILITY Response . . . . . . . . . . . . . . . . . 109 7.2.2. CAPABILITY Response . . . . . . . . . . . . . . . . . 110
7.2.3. LIST Response . . . . . . . . . . . . . . . . . . . . 110 7.2.3. LIST Response . . . . . . . . . . . . . . . . . . . . 111
7.2.4. NAMESPACE Response . . . . . . . . . . . . . . . . . 114 7.2.4. NAMESPACE Response . . . . . . . . . . . . . . . . . 115
7.2.5. STATUS Response . . . . . . . . . . . . . . . . . . . 115 7.2.5. STATUS Response . . . . . . . . . . . . . . . . . . . 115
7.2.6. ESEARCH Response . . . . . . . . . . . . . . . . . . 115 7.2.6. ESEARCH Response . . . . . . . . . . . . . . . . . . 115
7.2.7. FLAGS Response . . . . . . . . . . . . . . . . . . . 115 7.2.7. FLAGS Response . . . . . . . . . . . . . . . . . . . 116
7.3. Server Responses - Mailbox Size . . . . . . . . . . . . . 116 7.3. Server Responses - Mailbox Size . . . . . . . . . . . . . 116
7.3.1. EXISTS Response . . . . . . . . . . . . . . . . . . . 116 7.3.1. EXISTS Response . . . . . . . . . . . . . . . . . . . 116
7.4. Server Responses - Message Status . . . . . . . . . . . . 116 7.4. Server Responses - Message Status . . . . . . . . . . . . 117
7.4.1. EXPUNGE Response . . . . . . . . . . . . . . . . . . 116 7.4.1. EXPUNGE Response . . . . . . . . . . . . . . . . . . 117
7.4.2. FETCH Response . . . . . . . . . . . . . . . . . . . 117 7.4.2. FETCH Response . . . . . . . . . . . . . . . . . . . 118
7.5. Server Responses - Command Continuation Request . . . . . 123 7.5. Server Responses - Command Continuation Request . . . . . 124
8. Sample IMAP4rev2 connection . . . . . . . . . . . . . . . . . 124 8. Sample IMAP4rev2 connection . . . . . . . . . . . . . . . . . 124
9. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 125 9. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 125
10. Author's Note . . . . . . . . . . . . . . . . . . . . . . . . 142 10. Author's Note . . . . . . . . . . . . . . . . . . . . . . . . 143
11. Security Considerations . . . . . . . . . . . . . . . . . . . 142 11. Security Considerations . . . . . . . . . . . . . . . . . . . 143
11.1. STARTTLS Security Considerations . . . . . . . . . . . . 142 11.1. STARTTLS Security Considerations . . . . . . . . . . . . 143
11.2. COPYUID and APPENDUID response codes . . . . . . . . . . 143 11.2. COPYUID and APPENDUID response codes . . . . . . . . . . 144
11.3. LIST command and Other Users' namespace . . . . . . . . 143 11.3. LIST command and Other Users' namespace . . . . . . . . 144
11.4. Other Security Considerations . . . . . . . . . . . . . 143 11.4. Other Security Considerations . . . . . . . . . . . . . 144
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 144 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 145
12.1. Updates to IMAP4 Capabilities registry . . . . . . . . . 145 12.1. Updates to IMAP4 Capabilities registry . . . . . . . . . 145
12.2. GSSAPI/SASL service name . . . . . . . . . . . . . . . . 145 12.2. GSSAPI/SASL service name . . . . . . . . . . . . . . . . 146
12.3. LIST Selection Options, LIST Return Options, LIST 12.3. LIST Selection Options, LIST Return Options, LIST
extended data items . . . . . . . . . . . . . . . . . . 145 extended data items . . . . . . . . . . . . . . . . . . 146
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 145 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 146
13.1. Normative References . . . . . . . . . . . . . . . . . . 145 13.1. Normative References . . . . . . . . . . . . . . . . . . 146
13.2. Informative References (related protocols) . . . . . . . 149 13.2. Informative References (related protocols) . . . . . . . 149
13.3. Informative References (historical aspects of IMAP and 13.3. Informative References (historical aspects of IMAP and
related protocols) . . . . . . . . . . . . . . . . . . . 150 related protocols) . . . . . . . . . . . . . . . . . . . 151
Appendix A. Backward compatibility with IMAP4rev1 . . . . . . . 151 Appendix A. Backward compatibility with IMAP4rev1 . . . . . . . 152
A.1. Mailbox International Naming Convention for compatibility A.1. Mailbox International Naming Convention for compatibility
with IMAP4rev1 . . . . . . . . . . . . . . . . . . . . . 152 with IMAP4rev1 . . . . . . . . . . . . . . . . . . . . . 152
Appendix B. Backward compatibility with BINARY extension . . . . 153 Appendix B. Backward compatibility with BINARY extension . . . . 154
Appendix C. Backward compatibility with LIST-EXTENDED extension 153 Appendix C. Backward compatibility with LIST-EXTENDED extension 154
Appendix D. Changes from RFC 3501 / IMAP4rev1 . . . . . . . . . 154 Appendix D. Changes from RFC 3501 / IMAP4rev1 . . . . . . . . . 154
Appendix E. Acknowledgement . . . . . . . . . . . . . . . . . . 156 Appendix E. Acknowledgement . . . . . . . . . . . . . . . . . . 157
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 162 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 162
1. How to Read This Document 1. How to Read This Document
1.1. Organization of This Document 1.1. Organization of This Document
This document is written from the point of view of the implementor of This document is written from the point of view of the implementor of
an IMAP4rev2 client or server. Beyond the protocol overview in an IMAP4rev2 client or server. Beyond the protocol overview in
section 2, it is not optimized for someone trying to understand the section 2, it is not optimized for someone trying to understand the
skipping to change at page 35, line 47 skipping to change at page 35, line 47
changes to deployed server responses (and thus benefit from ENABLE) changes to deployed server responses (and thus benefit from ENABLE)
have a higher complexity cost than extensions that do not. have a higher complexity cost than extensions that do not.
6.3.2. SELECT Command 6.3.2. SELECT Command
Arguments: mailbox name Arguments: mailbox name
Responses: REQUIRED untagged responses: FLAGS, EXISTS Responses: REQUIRED untagged responses: FLAGS, EXISTS
REQUIRED OK untagged responses: PERMANENTFLAGS, REQUIRED OK untagged responses: PERMANENTFLAGS,
UIDNEXT, UIDVALIDITY UIDNEXT, UIDVALIDITY
OPTIONAL untagged response: LIST REQUIRED untagged response: LIST
Result: OK - select completed, now in selected state Result: OK - select completed, now in selected state
NO - select failure, now in authenticated state: no NO - select failure, now in authenticated state: no
such mailbox, can't access mailbox such mailbox, can't access mailbox
BAD - command unknown or arguments invalid BAD - command unknown or arguments invalid
The SELECT command selects a mailbox so that messages in the mailbox The SELECT command selects a mailbox so that messages in the mailbox
can be accessed. Before returning an OK to the client, the server can be accessed. Before returning an OK to the client, the server
MUST send the following untagged data to the client. (The order of MUST send the following untagged data to the client. (The order of
individual responses is not important.) Note that earlier versions individual responses is not important.) Note that earlier versions
of this protocol only required the FLAGS and EXISTS untagged data; of this protocol (e.g. IMAP2bis) only required the FLAGS and EXISTS
consequently, client implementations SHOULD implement default untagged data; consequently, client implementations SHOULD implement
behavior for missing data as discussed with the individual item. default behavior for missing data as discussed with the individual
item.
FLAGS Defined flags in the mailbox. See the description of the FLAGS Defined flags in the mailbox. See the description of the
FLAGS response for more detail. FLAGS response for more detail.
<n> EXISTS The number of messages in the mailbox. See the <n> EXISTS The number of messages in the mailbox. See the
description of the EXISTS response for more detail. description of the EXISTS response for more detail.
LIST If the server allows de-normalized UTF-8 mailbox names (see LIST The server MUST return a LIST response with the mailbox name.
If the server allows de-normalized UTF-8 mailbox names (see
Section 5.1) and the supplied mailbox name differs from the Section 5.1) and the supplied mailbox name differs from the
normalized version, the server SHOULD return LIST with OLDNAME normalized version, the server MUST return LIST with the OLDNAME
extended data item. See Section 6.3.9.7 for more details. extended data item. See Section 6.3.9.7 for more details.
OK [PERMANENTFLAGS (<list of flags>)] A list of message flags that OK [PERMANENTFLAGS (<list of flags>)] A list of message flags that
the client can change permanently. If this is missing, the client the client can change permanently. If this is missing, the client
should assume that all flags can be changed permanently. should assume that all flags can be changed permanently.
OK [UIDNEXT <n>] The next unique identifier value. Refer to OK [UIDNEXT <n>] The next unique identifier value. Refer to
Section 2.3.1.1 for more information. If this is missing, the Section 2.3.1.1 for more information.
client can not make any assumptions about the next unique
identifier value.
OK [UIDVALIDITY <n>] The unique identifier validity value. Refer to OK [UIDVALIDITY <n>] The unique identifier validity value. Refer to
Section 2.3.1.1 for more information. If this is missing, the Section 2.3.1.1 for more information.
server does not support unique identifiers.
Only one mailbox can be selected at a time in a connection; Only one mailbox can be selected at a time in a connection;
simultaneous access to multiple mailboxes requires multiple simultaneous access to multiple mailboxes requires multiple
connections. The SELECT command automatically deselects any connections. The SELECT command automatically deselects any
currently selected mailbox before attempting the new selection. currently selected mailbox before attempting the new selection.
Consequently, if a mailbox is selected and a SELECT command that Consequently, if a mailbox is selected and a SELECT command that
fails is attempted, no mailbox is selected. When deselecting a fails is attempted, no mailbox is selected. When deselecting a
selected mailbox, the server MUST return an untagged OK response with selected mailbox, the server MUST return an untagged OK response with
the "[CLOSED]" response code when the currently selected mailbox is the "[CLOSED]" response code when the currently selected mailbox is
closed (see Paragraph 10). closed (see Paragraph 10).
skipping to change at page 37, line 18 skipping to change at page 37, line 17
global) basis. Netnews messages marked in a server-based .newsrc global) basis. Netnews messages marked in a server-based .newsrc
file are an example of such per-user permanent state that can be file are an example of such per-user permanent state that can be
modified with read-only mailboxes. modified with read-only mailboxes.
Example: C: A142 SELECT INBOX Example: C: A142 SELECT INBOX
S: * 172 EXISTS S: * 172 EXISTS
S: * OK [UIDVALIDITY 3857529045] UIDs valid S: * OK [UIDVALIDITY 3857529045] UIDs valid
S: * OK [UIDNEXT 4392] Predicted next UID S: * OK [UIDNEXT 4392] Predicted next UID
S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
S: * OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited S: * OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited
S: * LIST () "/" INBOX
S: A142 OK [READ-WRITE] SELECT completed S: A142 OK [READ-WRITE] SELECT completed
Example: C: A142 SELECT INBOX Example: C: A142 SELECT INBOX
S: * 172 EXISTS S: * 172 EXISTS
S: * OK [UIDVALIDITY 3857529045] UIDs valid S: * OK [UIDVALIDITY 3857529045] UIDs valid
S: * OK [UIDNEXT 4392] Predicted next UID S: * OK [UIDNEXT 4392] Predicted next UID
S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
S: * OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited S: * OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited
S: A142 OK [READ-WRITE] SELECT completed S: A142 OK [READ-WRITE] SELECT completed
[...some time later...] [...some time later...]
C: A143 SELECT Drafts C: A143 SELECT Drafts
S: * OK [CLOSED] Previous mailbox is now closed S: * OK [CLOSED] Previous mailbox is now closed
S: * 5 EXISTS S: * 5 EXISTS
S: * OK [UIDVALIDITY 9877410381] UIDs valid S: * OK [UIDVALIDITY 9877410381] UIDs valid
S: * OK [UIDNEXT 102] Predicted next UID S: * OK [UIDNEXT 102] Predicted next UID
S: * LIST () "/" Drafts
S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
S: * OK [PERMANENTFLAGS (\Deleted \Seen \Answered S: * OK [PERMANENTFLAGS (\Deleted \Seen \Answered
\Flagged \Draft \*)] System flags and keywords allowed \Flagged \Draft \*)] System flags and keywords allowed
S: A143 OK [READ-WRITE] SELECT completed S: A143 OK [READ-WRITE] SELECT completed
Note that IMAP4rev1 compliant servers can also send the untagged Note that IMAP4rev1 compliant servers can also send the untagged
RECENT response which was deprecated in IMAP4rev2. E.g. "* 0 RECENT response which was deprecated in IMAP4rev2. E.g. "* 0
RECENT". Pure IMAP4rev2 clients are advised to ignore the untagged RECENT". Pure IMAP4rev2 clients are advised to ignore the untagged
RECENT response. RECENT response.
6.3.3. EXAMINE Command 6.3.3. EXAMINE Command
Arguments: mailbox name Arguments: mailbox name
Responses: REQUIRED untagged responses: FLAGS, EXISTS Responses: REQUIRED untagged responses: FLAGS, EXISTS
REQUIRED OK untagged responses: PERMANENTFLAGS, REQUIRED OK untagged responses: PERMANENTFLAGS,
UIDNEXT, UIDVALIDITY UIDNEXT, UIDVALIDITY
OPTIONAL untagged response: LIST REQUIRED untagged response: LIST
Result: OK - examine completed, now in selected state Result: OK - examine completed, now in selected state
NO - examine failure, now in authenticated state: no NO - examine failure, now in authenticated state: no
such mailbox, can't access mailbox BAD - command unknown such mailbox, can't access mailbox BAD - command unknown
or arguments invalid or arguments invalid
The EXAMINE command is identical to SELECT and returns the same The EXAMINE command is identical to SELECT and returns the same
output; however, the selected mailbox is identified as read-only. No output; however, the selected mailbox is identified as read-only. No
changes to the permanent state of the mailbox, including per-user changes to the permanent state of the mailbox, including per-user
state, are permitted. state, are permitted.
The text of the tagged OK response to the EXAMINE command MUST begin The text of the tagged OK response to the EXAMINE command MUST begin
with the "[READ-ONLY]" response code. with the "[READ-ONLY]" response code.
Example: C: A932 EXAMINE blurdybloop Example: C: A932 EXAMINE blurdybloop
S: * 17 EXISTS S: * 17 EXISTS
S: * OK [UIDVALIDITY 3857529045] UIDs valid S: * OK [UIDVALIDITY 3857529045] UIDs valid
S: * OK [UIDNEXT 4392] Predicted next UID S: * OK [UIDNEXT 4392] Predicted next UID
S: * LIST () "/" blurdybloop
S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
S: * OK [PERMANENTFLAGS ()] No permanent flags permitted S: * OK [PERMANENTFLAGS ()] No permanent flags permitted
S: A932 OK [READ-ONLY] EXAMINE completed S: A932 OK [READ-ONLY] EXAMINE completed
6.3.4. CREATE Command 6.3.4. CREATE Command
Arguments: mailbox name Arguments: mailbox name
Responses: OPTIONAL untagged response: LIST Responses: OPTIONAL untagged response: LIST
skipping to change at page 40, line 38 skipping to change at page 40, line 38
If the server returns OK response, all messages in that mailbox are If the server returns OK response, all messages in that mailbox are
removed by the DELETE command. removed by the DELETE command.
The value of the highest-used unique identifier of the deleted The value of the highest-used unique identifier of the deleted
mailbox MUST be preserved so that a new mailbox created with the same mailbox MUST be preserved so that a new mailbox created with the same
name will not reuse the identifiers of the former incarnation, UNLESS name will not reuse the identifiers of the former incarnation, UNLESS
the new incarnation has a different unique identifier validity value. the new incarnation has a different unique identifier validity value.
See the description of the UID command for more detail. See the description of the UID command for more detail.
If the server decides to convert (normalize) the mailbox name, it
SHOULD return an untagged LIST with the "\NonExistent" attribute and
OLDNAME extended data item, with the OLDNAME value being the supplied
mailbox name and the name parameter being the normalized mailbox
name. (See Section 6.3.9.7 for more details.)
Mailboxes deleted in one IMAP session MAY be announced to other IMAP Mailboxes deleted in one IMAP session MAY be announced to other IMAP
sessions using unsolicited LIST response, containing the sessions using unsolicited LIST response, containing the
"\NonExistent" attribute. "\NonExistent" attribute.
Examples: C: A682 LIST "" * Examples: C: A682 LIST "" *
S: * LIST () "/" blurdybloop S: * LIST () "/" blurdybloop
S: * LIST (\Noselect) "/" foo S: * LIST (\Noselect) "/" foo
S: * LIST () "/" foo/bar S: * LIST () "/" foo/bar
S: A682 OK LIST completed S: A682 OK LIST completed
C: A683 DELETE blurdybloop C: A683 DELETE blurdybloop
skipping to change at page 68, line 44 skipping to change at page 68, line 44
S: * STATUS blurdybloop (MESSAGES 231 UIDNEXT 44292) S: * STATUS blurdybloop (MESSAGES 231 UIDNEXT 44292)
S: A042 OK STATUS completed S: A042 OK STATUS completed
6.3.12. APPEND Command 6.3.12. APPEND Command
Arguments: mailbox name Arguments: mailbox name
OPTIONAL flag parenthesized list OPTIONAL flag parenthesized list
OPTIONAL date/time string OPTIONAL date/time string
message literal message literal
Responses: no specific responses for this command Responses: OPTIONAL untagged response: LIST
Result: OK - append completed Result: OK - append completed
NO - append error: can't append to that mailbox, error NO - append error: can't append to that mailbox, error
in flags or date/time or message text in flags or date/time or message text
BAD - command unknown or arguments invalid BAD - command unknown or arguments invalid
The APPEND command appends the literal argument as a new message to The APPEND command appends the literal argument as a new message to
the end of the specified destination mailbox. This argument SHOULD the end of the specified destination mailbox. This argument SHOULD
be in the format of an [RFC-5322] or [I18N-HDRS] message. 8-bit be in the format of an [RFC-5322] or [I18N-HDRS] message. 8-bit
characters are permitted in the message. A server implementation characters are permitted in the message. A server implementation
skipping to change at page 69, line 37 skipping to change at page 69, line 37
If the destination mailbox does not exist, a server MUST return an If the destination mailbox does not exist, a server MUST return an
error, and MUST NOT automatically create the mailbox. Unless it is error, and MUST NOT automatically create the mailbox. Unless it is
certain that the destination mailbox can not be created, the server certain that the destination mailbox can not be created, the server
MUST send the response code "[TRYCREATE]" as the prefix of the text MUST send the response code "[TRYCREATE]" as the prefix of the text
of the tagged NO response. This gives a hint to the client that it of the tagged NO response. This gives a hint to the client that it
can attempt a CREATE command and retry the APPEND if the CREATE is can attempt a CREATE command and retry the APPEND if the CREATE is
successful. successful.
On successful completion of an APPEND, the server SHOULD return an On successful completion of an APPEND, the server SHOULD return an
APPENDUID response code. APPENDUID response code (see Section 7.1).
In the case of a mailbox that has permissions set so that the client In the case of a mailbox that has permissions set so that the client
can APPEND to the mailbox, but not SELECT or EXAMINE it, the server can APPEND to the mailbox, but not SELECT or EXAMINE it, the server
SHOULD NOT send an APPENDUID response code as it would disclose SHOULD NOT send an APPENDUID response code as it would disclose
information about the mailbox. information about the mailbox.
In the case of a mailbox that has UIDNOTSTICKY status (see In the case of a mailbox that has UIDNOTSTICKY status (see
UIDNOTSTICKY response code definition), the server MAY omit the Section 7.1), the server MAY omit the APPENDUID response code as it
APPENDUID response code as it is not meaningful. is not meaningful.
If the server does not return the APPENDUID response codes, the If the server does not return the APPENDUID response codes, the
client can discover this information by selecting the destination client can discover this information by selecting the destination
mailbox. The location of messages placed in the destination mailbox mailbox. The location of messages placed in the destination mailbox
by APPEND can be determined by using FETCH and/or SEARCH commands by APPEND can be determined by using FETCH and/or SEARCH commands
(e.g., for Message-ID or some unique marker placed in the message in (e.g., for Message-ID or some unique marker placed in the message in
an APPEND). an APPEND).
If the mailbox is currently selected, the normal new message actions If the mailbox is currently selected, the normal new message actions
SHOULD occur. Specifically, the server SHOULD notify the client SHOULD occur. Specifically, the server SHOULD notify the client
immediately via an untagged EXISTS response. If the server does not immediately via an untagged EXISTS response. If the server does not
do so, the client MAY issue a NOOP command after one or more APPEND do so, the client MAY issue a NOOP command after one or more APPEND
commands. commands.
If the server decides to convert (normalize) the mailbox name, it
SHOULD return an untagged LIST with OLDNAME extended data item, with
the OLDNAME value being the supplied mailbox name and the name
parameter being the normalized mailbox name. (See Section 6.3.9.7
for more details.)
Example: C: A003 APPEND saved-messages (\Seen) {310} Example: C: A003 APPEND saved-messages (\Seen) {310}
S: + Ready for literal data S: + Ready for literal data
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>
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:
skipping to change at page 71, line 30 skipping to change at page 71, line 30
S: A005 OK No matching messages, so nothing copied S: A005 OK No matching messages, so nothing copied
C: A006 COPY 2 funny C: A006 COPY 2 funny
S: A006 OK Done S: A006 OK Done
C: A007 SELECT funny C: A007 SELECT funny
S: * 1 EXISTS S: * 1 EXISTS
S: * OK [UIDVALIDITY 3857529045] Validity session-only S: * OK [UIDVALIDITY 3857529045] Validity session-only
S: * OK [UIDNEXT 2] Predicted next UID S: * OK [UIDNEXT 2] Predicted next UID
S: * NO [UIDNOTSTICKY] Non-persistent UIDs S: * NO [UIDNOTSTICKY] Non-persistent UIDs
S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
S: * OK [PERMANENTFLAGS (\Deleted \Seen)] Limited S: * OK [PERMANENTFLAGS (\Deleted \Seen)] Limited
S: * LIST () "." funny
S: A007 OK [READ-WRITE] SELECT completed S: A007 OK [READ-WRITE] SELECT completed
In this example, A003 and A004 demonstrate successful appending and In this example, A003 and A004 demonstrate successful appending and
copying to a mailbox that returns the UIDs assigned to the messages. copying to a mailbox that returns the UIDs assigned to the messages.
A005 is an example in which no messages were copied; this is because A005 is an example in which no messages were copied; this is because
in A003, we see that message 2 had UID 304, and message 3 had UID in A003, we see that message 2 had UID 304, and message 3 had UID
319; therefore, UIDs 305 through 310 do not exist (refer to 319; therefore, UIDs 305 through 310 do not exist (refer to
Section 2.3.1.1 for further explanation). A006 is an example of a Section 2.3.1.1 for further explanation). A006 is an example of a
message being copied that did not return a COPYUID; and, as expected, message being copied that did not return a COPYUID; and, as expected,
A007 shows that the mail store containing that mailbox does not A007 shows that the mail store containing that mailbox does not
skipping to change at page 73, line 10 skipping to change at page 73, line 10
of that, clients using IDLE are advised to terminate the IDLE and re- of that, clients using IDLE are advised to terminate the IDLE and re-
issue it at least every 29 minutes to avoid being logged off. This issue it at least every 29 minutes to avoid being logged off. This
still allows a client to receive immediate mailbox updates even still allows a client to receive immediate mailbox updates even
though it need only "poll" at half hour intervals. though it need only "poll" at half hour intervals.
Example: C: A001 SELECT INBOX Example: C: A001 SELECT INBOX
S: * FLAGS (\Deleted \Seen \Flagged) S: * FLAGS (\Deleted \Seen \Flagged)
S: * OK [PERMANENTFLAGS (\Deleted \Seen \Flagged)] Limited S: * OK [PERMANENTFLAGS (\Deleted \Seen \Flagged)] Limited
S: * 3 EXISTS S: * 3 EXISTS
S: * OK [UIDVALIDITY 1] S: * OK [UIDVALIDITY 1]
S: * LIST () "/" INBOX
S: A001 OK [READ-WRITE] SELECT completed S: A001 OK [READ-WRITE] SELECT completed
C: A002 IDLE C: A002 IDLE
S: + idling S: + idling
...time passes; new mail arrives... ...time passes; new mail arrives...
S: * 4 EXISTS S: * 4 EXISTS
C: DONE C: DONE
S: A002 OK IDLE terminated S: A002 OK IDLE terminated
...another client expunges message 2 now... ...another client expunges message 2 now...
C: A003 FETCH 4 ALL C: A003 FETCH 4 ALL
S: * 4 FETCH (...) S: * 4 FETCH (...)
skipping to change at page 77, line 19 skipping to change at page 77, line 26
how it is affected by other commands executed, and how SAVE how it is affected by other commands executed, and how SAVE
return option interacts with other return options. return option interacts with other return options.
In absence of any other SEARCH result option, the SAVE result In absence of any other SEARCH result option, the SAVE result
option also suppresses any ESEARCH response that would have option also suppresses any ESEARCH response that would have
been otherwise returned by the SEARCH command. been otherwise returned by the SEARCH command.
Note: future extensions to this document can allow servers to return Note: future extensions to this document can allow servers to return
multiple ESEARCH responses for a single extended SEARCH command. multiple ESEARCH responses for a single extended SEARCH command.
However all options specified above MUST result in a single ESEARCH However all options specified above MUST result in a single ESEARCH
response. These extensions will have to describe how results from response if used by themselves or in a combination. This guaranty
simplifies processing in IMAP4rev2 clients. Future SEARCH extensions
that relax this restriction will have to describe how results from
multiple ESEARCH responses are to be amalgamated. multiple ESEARCH responses are to be amalgamated.
Searching criteria consist of one or more search keys. Searching criteria consist of one or more search keys.
When multiple keys are specified, the result is the intersection (AND When multiple keys are specified, the result is the intersection (AND
function) of all the messages that match those keys. For example, function) of all the messages that match those keys. For example,
the criteria DELETED FROM "SMITH" SINCE 1-Feb-1994 refers to all the criteria DELETED FROM "SMITH" SINCE 1-Feb-1994 refers to all
deleted messages from Smith with INTERNALDATE greater than February deleted messages from Smith with INTERNALDATE greater than February
1, 1994. A search key can also be a parenthesized list of one or 1, 1994. A search key can also be a parenthesized list of one or
more search keys (e.g., for use with the OR and NOT keys). more search keys (e.g., for use with the OR and NOT keys).
skipping to change at page 88, line 30 skipping to change at page 88, line 30
items, and can be used instead of data items. A macro must be used items, and can be used instead of data items. A macro must be used
by itself, and not in conjunction with other macros or data items. by itself, and not in conjunction with other macros or data items.
ALL Macro equivalent to: (FLAGS INTERNALDATE RFC822.SIZE ENVELOPE) ALL Macro equivalent to: (FLAGS INTERNALDATE RFC822.SIZE ENVELOPE)
FAST Macro equivalent to: (FLAGS INTERNALDATE RFC822.SIZE) FAST Macro equivalent to: (FLAGS INTERNALDATE RFC822.SIZE)
FULL Macro equivalent to: (FLAGS INTERNALDATE RFC822.SIZE ENVELOPE FULL Macro equivalent to: (FLAGS INTERNALDATE RFC822.SIZE ENVELOPE
BODY) BODY)
Several data items reference "section" or "section-binary". See
Section 6.4.5.1 for their detailed definition.
The currently defined data items that can be fetched are: The currently defined data items that can be fetched are:
BINARY[<section-binary>]<<partial>> BINARY[<section-binary>]<<partial>>
Requests that the specified section be transmitted after Requests that the specified section be transmitted after
performing Content-Transfer-Encoding-related decoding. performing Content-Transfer-Encoding-related decoding.
The <partial> argument, if present, requests that a subset of The <partial> argument, if present, requests that a subset of
the data be returned. The semantics of a partial FETCH BINARY the data be returned. The semantics of a partial FETCH BINARY
command are the same as for a partial FETCH BODY command, with command are the same as for a partial FETCH BODY command, with
skipping to change at page 89, line 21 skipping to change at page 89, line 24
time the request is issued. time the request is issued.
Note that this data item can only be requested for leaf (i.e. Note that this data item can only be requested for leaf (i.e.
non multipart/*, non message/rfc822 and non message/global) non multipart/*, non message/rfc822 and non message/global)
body parts. body parts.
BODY Non-extensible form of BODYSTRUCTURE. BODY Non-extensible form of BODYSTRUCTURE.
BODY[<section>]<<partial>> BODY[<section>]<<partial>>
The text of a particular body section. The section The text of a particular body section.
specification is a set of zero or more part specifiers
delimited by periods. A part specifier is either a part number
or one of the following: HEADER, HEADER.FIELDS,
HEADER.FIELDS.NOT, MIME, and TEXT. An empty section
specification refers to the entire message, including the
header.
Every message has at least one part number. Non-[MIME-IMB]
messages, and non-multipart [MIME-IMB] messages with no
encapsulated message, only have a part 1.
Multipart messages are assigned consecutive part numbers, as
they occur in the message. If a particular part is of type
message or multipart, its parts MUST be indicated by a period
followed by the part number within that nested multipart part.
A part of type MESSAGE/RFC822 or MESSAGE/GLOBAL also has nested
part numbers, referring to parts of the MESSAGE part's body.
The HEADER, HEADER.FIELDS, HEADER.FIELDS.NOT, and TEXT part
specifiers can be the sole part specifier or can be prefixed by
one or more numeric part specifiers, provided that the numeric
part specifier refers to a part of type MESSAGE/RFC822 or
MESSAGE/GLOBAL. The MIME part specifier MUST be prefixed by
one or more numeric part specifiers.
The HEADER, HEADER.FIELDS, and HEADER.FIELDS.NOT part
specifiers refer to the [RFC-5322] header of the message or of
an encapsulated [MIME-IMT] MESSAGE/RFC822 or MESSAGE/GLOBAL
message. HEADER.FIELDS and HEADER.FIELDS.NOT are followed by a
list of field-name (as defined in [RFC-5322]) names, and return
a subset of the header. The subset returned by HEADER.FIELDS
contains only those header fields with a field-name that
matches one of the names in the list; similarly, the subset
returned by HEADER.FIELDS.NOT contains only the header fields
with a non-matching field-name. The field-matching is ASCII
range case-insensitive but otherwise exact. Subsetting does
not exclude the [RFC-5322] delimiting blank line between the
header and the body; the blank line is included in all header
fetches, except in the case of a message which has no body and
no blank line.
The MIME part specifier refers to the [MIME-IMB] header for
this part.
The TEXT part specifier refers to the text body of the message,
omitting the [RFC-5322] header.
Here is an example of a complex message with some of its
part specifiers:
HEADER ([RFC-5322] header of the message)
TEXT ([RFC-5322] text body of the message) MULTIPART/MIXED
1 TEXT/PLAIN
2 APPLICATION/OCTET-STREAM
3 MESSAGE/RFC822
3.HEADER ([RFC-5322] header of the message)
3.TEXT ([RFC-5322] text body of the message) MULTIPART/MIXED
3.1 TEXT/PLAIN
3.2 APPLICATION/OCTET-STREAM
4 MULTIPART/MIXED
4.1 IMAGE/GIF
4.1.MIME ([MIME-IMB] header for the IMAGE/GIF)
4.2 MESSAGE/RFC822
4.2.HEADER ([RFC-5322] header of the message)
4.2.TEXT ([RFC-5322] text body of the message) MULTIPART/MIXED
4.2.1 TEXT/PLAIN
4.2.2 MULTIPART/ALTERNATIVE
4.2.2.1 TEXT/PLAIN
4.2.2.2 TEXT/RICHTEXT
It is possible to fetch a substring of the designated text. It is possible to fetch a substring of the designated text.
This is done by appending an open angle bracket ("<"), the This is done by appending an open angle bracket ("<"), the
octet position of the first desired octet, a period, the octet position of the first desired octet, a period, the
maximum number of octets desired, and a close angle bracket maximum number of octets desired, and a close angle bracket
(">") to the part specifier. If the starting octet is beyond (">") to the part specifier. If the starting octet is beyond
the end of the text, an empty string is returned. the end of the text, an empty string is returned.
Any partial fetch that attempts to read beyond the end of the Any partial fetch that attempts to read beyond the end of the
text is truncated as appropriate. A partial fetch that starts text is truncated as appropriate. A partial fetch that starts
skipping to change at page 91, line 26 skipping to change at page 90, line 7
subsetting the header. subsetting the header.
The \Seen flag is implicitly set; if this causes the flags to The \Seen flag is implicitly set; if this causes the flags to
change, they SHOULD be included as part of the FETCH responses. change, they SHOULD be included as part of the FETCH responses.
BODY.PEEK[<section>]<<partial>> An alternate form of BODY[<section>] BODY.PEEK[<section>]<<partial>> An alternate form of BODY[<section>]
that does not implicitly set the \Seen flag. that does not implicitly set the \Seen flag.
BODYSTRUCTURE The [MIME-IMB] body structure of the message. This is BODYSTRUCTURE The [MIME-IMB] body structure of the message. This is
computed by the server by parsing the [MIME-IMB] header fields in computed by the server by parsing the [MIME-IMB] header fields in
the [RFC-5322] header and [MIME-IMB] headers. the [RFC-5322] header and [MIME-IMB] headers. See Section 7.4.2
for more details.
ENVELOPE The envelope structure of the message. This is computed by ENVELOPE The envelope structure of the message. This is computed by
the server by parsing the [RFC-5322] header into the component the server by parsing the [RFC-5322] header into the component
parts, defaulting various fields as necessary. parts, defaulting various fields as necessary. See Section 7.4.2
for more details.
FLAGS The flags that are set for this message. FLAGS The flags that are set for this message.
INTERNALDATE The internal date of the message. INTERNALDATE The internal date of the message.
RFC822.SIZE The [RFC-5322] size of the message. RFC822.SIZE The [RFC-5322] size of the message.
UID The unique identifier for the message. UID The unique identifier for the message.
Example: C: A654 FETCH 2:4 (FLAGS BODY[HEADER.FIELDS (DATE FROM)]) Example: C: A654 FETCH 2:4 (FLAGS BODY[HEADER.FIELDS (DATE FROM)])
S: * 2 FETCH .... S: * 2 FETCH ....
S: * 3 FETCH .... S: * 3 FETCH ....
S: * 4 FETCH .... S: * 4 FETCH ....
S: A654 OK FETCH completed S: A654 OK FETCH completed
6.4.5.1. FETCH section specification
Several FETCH data items reference "section" or "section-binary".
The section specification is a set of zero or more part specifiers
delimited by periods. A part specifier is either a part number or
one of the following: HEADER, HEADER.FIELDS, HEADER.FIELDS.NOT, MIME,
and TEXT. (Non numeric part specifiers have to be the last specifier
in a section specification.) An empty section specification refers
to the entire message, including the header.
Every message has at least one part number. Non-[MIME-IMB] messages,
and non-multipart [MIME-IMB] messages with no encapsulated message,
only have a part 1.
Multipart messages are assigned consecutive part numbers, as they
occur in the message. If a particular part is of type message or
multipart, its parts MUST be indicated by a period followed by the
part number within that nested multipart part.
A part of type MESSAGE/RFC822 or MESSAGE/GLOBAL also has nested part
numbers, referring to parts of the MESSAGE part's body.
The HEADER, HEADER.FIELDS, HEADER.FIELDS.NOT, and TEXT part
specifiers can be the sole part specifier or can be prefixed by one
or more numeric part specifiers, provided that the numeric part
specifier refers to a part of type MESSAGE/RFC822 or MESSAGE/GLOBAL.
The MIME part specifier MUST be prefixed by one or more numeric part
specifiers.
The HEADER, HEADER.FIELDS, and HEADER.FIELDS.NOT part specifiers
refer to the [RFC-5322] header of the message or of an encapsulated
[MIME-IMT] MESSAGE/RFC822 or MESSAGE/GLOBAL message. HEADER.FIELDS
and HEADER.FIELDS.NOT are followed by a list of field-name (as
defined in [RFC-5322]) names, and return a subset of the header. The
subset returned by HEADER.FIELDS contains only those header fields
with a field-name that matches one of the names in the list;
similarly, the subset returned by HEADER.FIELDS.NOT contains only the
header fields with a non-matching field-name. The field-matching is
ASCII range case-insensitive but otherwise exact. Subsetting does
not exclude the [RFC-5322] delimiting blank line between the header
and the body; the blank line is included in all header fetches,
except in the case of a message which has no body and no blank line.
The MIME part specifier refers to the [MIME-IMB] header for this
part.
The TEXT part specifier refers to the text body of the message,
omitting the [RFC-5322] header.
Here is an example of a complex message with some of its part
specifiers:
HEADER ([RFC-5322] header of the message)
TEXT ([RFC-5322] text body of the message) MULTIPART/MIXED
1 TEXT/PLAIN
2 APPLICATION/OCTET-STREAM
3 MESSAGE/RFC822
3.HEADER ([RFC-5322] header of the message)
3.TEXT ([RFC-5322] text body of the message) MULTIPART/MIXED
3.1 TEXT/PLAIN
3.2 APPLICATION/OCTET-STREAM
4 MULTIPART/MIXED
4.1 IMAGE/GIF
4.1.MIME ([MIME-IMB] header for the IMAGE/GIF)
4.2 MESSAGE/RFC822
4.2.HEADER ([RFC-5322] header of the message)
4.2.TEXT ([RFC-5322] text body of the message) MULTIPART/MIXED
4.2.1 TEXT/PLAIN
4.2.2 MULTIPART/ALTERNATIVE
4.2.2.1 TEXT/PLAIN
4.2.2.2 TEXT/RICHTEXT
6.4.6. STORE Command 6.4.6. STORE Command
Arguments: sequence set Arguments: sequence set
message data item name message data item name
value for message data item value for message data item
Responses: untagged responses: FETCH Responses: untagged responses: FETCH
Result: OK - store completed Result: OK - store completed
NO - store error: can't store that data NO - store error: can't store that data
BAD - command unknown or arguments invalid BAD - command unknown or arguments invalid
The STORE command alters data associated with a message in the The STORE command alters data associated with a message in the
mailbox. Normally, STORE will return the updated value of the data mailbox. Normally, STORE will return the updated value of the data
with an untagged FETCH response. A suffix of ".SILENT" in the data with an untagged FETCH response. A suffix of ".SILENT" in the data
item name prevents the untagged FETCH, and the server SHOULD assume item name prevents the untagged FETCH, and the server SHOULD assume
that the client has determined the updated value itself or does not that the client has determined the updated value itself or does not
care about the updated value. care about the updated value.
skipping to change at page 93, line 34 skipping to change at page 93, line 40
MUST send the response code "[TRYCREATE]" as the prefix of the text MUST send the response code "[TRYCREATE]" as the prefix of the text
of the tagged NO response. This gives a hint to the client that it of the tagged NO response. This gives a hint to the client that it
can attempt a CREATE command and retry the COPY if the CREATE is can attempt a CREATE command and retry the COPY if the CREATE is
successful. successful.
If the COPY command is unsuccessful for any reason, server If the COPY command is unsuccessful for any reason, server
implementations MUST restore the destination mailbox to its state implementations MUST restore the destination mailbox to its state
before the COPY attempt. before the COPY attempt.
On successful completion of a COPY, the server SHOULD return a On successful completion of a COPY, the server SHOULD return a
COPYUID response code. COPYUID response code (see Section 7.1).
In the case of a mailbox that has permissions set so that the client In the case of a mailbox that has permissions set so that the client
can COPY to the mailbox, but not SELECT or EXAMINE it, the server can COPY to the mailbox, but not SELECT or EXAMINE it, the server
SHOULD NOT send an COPYUID response code as it would disclose SHOULD NOT send an COPYUID response code as it would disclose
information about the mailbox. information about the mailbox.
In the case of a mailbox that has UIDNOTSTICKY status (see the In the case of a mailbox that has UIDNOTSTICKY status (see
UIDNOTSTICKY response code), the server MAY omit the COPYUID response Section 7.1), the server MAY omit the COPYUID response code as it is
code as it is not meaningful. not meaningful.
If the server does not return the COPYUID response code, the client If the server does not return the COPYUID response code, the client
can discover this information by selecting the destination mailbox. can discover this information by selecting the destination mailbox.
The location of messages placed in the destination mailbox by COPY The location of messages placed in the destination mailbox by COPY
can be determined by using FETCH and/or SEARCH commands (e.g., for can be determined by using FETCH and/or SEARCH commands (e.g., for
Message-ID). Message-ID).
Example: C: A003 COPY 2:4 MEETING Example: C: A003 COPY 2:4 MEETING
S: A003 OK COPY completed S: A003 OK COPY completed
6.4.8. MOVE Command 6.4.8. MOVE Command
Arguments: sequence set Arguments: sequence set
skipping to change at page 112, line 22 skipping to change at page 112, line 37
\Unmarked The mailbox does not contain any additional messages since \Unmarked The mailbox does not contain any additional messages since
the last time the mailbox was selected. the last time the mailbox was selected.
\Subscribed The mailbox name was subscribed to using the SUBSCRIBE \Subscribed The mailbox name was subscribed to using the SUBSCRIBE
command. command.
\Remote The mailbox is a remote mailbox. \Remote The mailbox is a remote mailbox.
It is an error for the server to return both a \HasChildren and a It is an error for the server to return both a \HasChildren and a
\HasNoChildren attribute in the same LIST response. \HasNoChildren attribute in the same LIST response. A client that
encounters a LIST response with both \HasChildren and \HasNoChildren
attributes present should act as if both are absent in the LIST
response.
Note: the \HasNoChildren attribute should not be confused with the Note: the \HasNoChildren attribute should not be confused with the
\NoInferiors attribute, which indicates that no child mailboxes \NoInferiors attribute, which indicates that no child mailboxes
exist now and none can be created in the future. exist now and none can be created in the future.
If it is not feasible for the server to determine whether or not the If it is not feasible for the server to determine whether or not the
mailbox is "interesting", the server SHOULD NOT send either \Marked mailbox is "interesting", the server SHOULD NOT send either \Marked
or \Unmarked. The server MUST NOT send more than one of \Marked, or \Unmarked. The server MUST NOT send more than one of \Marked,
\Unmarked, and \Noselect for a single mailbox, and MAY send none of \Unmarked, and \Noselect for a single mailbox, and MAY send none of
these. these.
skipping to change at page 122, line 35 skipping to change at page 123, line 10
are absent in the [RFC-5322] header, the corresponding member are absent in the [RFC-5322] header, the corresponding member
of the envelope is NIL; if these header lines are present but of the envelope is NIL; if these header lines are present but
empty the corresponding member of the envelope is the empty empty the corresponding member of the envelope is the empty
string. string.
Note: some servers may return a NIL envelope member in the Note: some servers may return a NIL envelope member in the
"present but empty" case. Clients SHOULD treat NIL and "present but empty" case. Clients SHOULD treat NIL and
empty string as identical. empty string as identical.
Note: [RFC-5322] requires that all messages have a valid Note: [RFC-5322] requires that all messages have a valid
Date header. Therefore, the date member in the envelope can Date header. Therefore, for a well-formed message the date
not be NIL or the empty string. member in the envelope can not be NIL or the empty string.
However it can be NIL for a malformed or a draft message.
Note: [RFC-5322] requires that the In-Reply-To and Message- Note: [RFC-5322] requires that the In-Reply-To and Message-
ID headers, if present, have non-empty content. Therefore, ID headers, if present, have non-empty content. Therefore,
the in-reply-to and message-id members in the envelope can for a well-formed message the in-reply-to and message-id
not be the empty string. members in the envelope can not be the empty string.
However they can still be the empty string for a malformed
message.
If the From, To, Cc, and Bcc header lines are absent in the If the From, To, Cc, and Bcc header lines are absent in the
[RFC-5322] header, or are present but empty, the corresponding [RFC-5322] header, or are present but empty, the corresponding
member of the envelope is NIL. member of the envelope is NIL.
If the Sender or Reply-To lines are absent in the [RFC-5322] If the Sender or Reply-To lines are absent in the [RFC-5322]
header, or are present but empty, the server sets the header, or are present but empty, the server sets the
corresponding member of the envelope to be the same value as corresponding member of the envelope to be the same value as
the from member (the client is not expected to know to do the from member (the client is not expected to know to do
this). this).
Note: [RFC-5322] requires that all messages have a valid Note: [RFC-5322] requires that all messages have a valid
From header. Therefore, the from, sender, and reply-to From header. Therefore, for a well-formed message the from,
members in the envelope can not be NIL. sender, and reply-to members in the envelope can not be NIL.
However they can be NIL for a malformed or a draft message.
FLAGS A parenthesized list of flags that are set for this message. FLAGS A parenthesized list of flags that are set for this message.
INTERNALDATE A string representing the internal date of the message. INTERNALDATE A string representing the internal date of the message.
RFC822.SIZE A number expressing the [RFC-5322] size of the message. RFC822.SIZE A number expressing the [RFC-5322] size of the message.
UID A number expressing the unique identifier of the message. UID A number expressing the unique identifier of the message.
If the server chooses to send unsolicited FETCH responses, they MUST If the server chooses to send unsolicited FETCH responses, they MUST
skipping to change at page 124, line 17 skipping to change at page 125, line 12
The following is a transcript of an IMAP4rev2 connection. A long The following is a transcript of an IMAP4rev2 connection. A long
line in this sample is broken for editorial clarity. line in this sample is broken for editorial clarity.
S: * OK IMAP4rev2 Service Ready S: * OK IMAP4rev2 Service Ready
C: a001 login mrc secret C: a001 login mrc secret
S: a001 OK LOGIN completed S: a001 OK LOGIN completed
C: a002 select inbox C: a002 select inbox
S: * 18 EXISTS S: * 18 EXISTS
S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
S: * OK [UIDVALIDITY 3857529045] UIDs valid S: * OK [UIDVALIDITY 3857529045] UIDs valid
S: * LIST () "/" INBOX ("OLDNAME" ("inbox"))
S: a002 OK [READ-WRITE] SELECT completed S: a002 OK [READ-WRITE] SELECT completed
C: a003 fetch 12 full C: a003 fetch 12 full
S: * 12 FETCH (FLAGS (\Seen) INTERNALDATE "17-Jul-1996 02:44:25 -0700" S: * 12 FETCH (FLAGS (\Seen) INTERNALDATE "17-Jul-1996 02:44:25 -0700"
RFC822.SIZE 4286 ENVELOPE ("Wed, 17 Jul 1996 02:23:25 -0700 (PDT)" RFC822.SIZE 4286 ENVELOPE ("Wed, 17 Jul 1996 02:23:25 -0700 (PDT)"
"IMAP4rev2 WG mtg summary and minutes" "IMAP4rev2 WG mtg summary and minutes"
(("Terry Gray" NIL "gray" "cac.washington.edu")) (("Terry Gray" NIL "gray" "cac.washington.edu"))
(("Terry Gray" NIL "gray" "cac.washington.edu")) (("Terry Gray" NIL "gray" "cac.washington.edu"))
(("Terry Gray" NIL "gray" "cac.washington.edu")) (("Terry Gray" NIL "gray" "cac.washington.edu"))
((NIL NIL "imap" "cac.washington.edu")) ((NIL NIL "imap" "cac.washington.edu"))
((NIL NIL "minutes" "CNRI.Reston.VA.US") ((NIL NIL "minutes" "CNRI.Reston.VA.US")
skipping to change at page 145, line 11 skipping to change at page 146, line 4
in the registry. in the registry.
Additional IANA actions are specified in subsection of this section. Additional IANA actions are specified in subsection of this section.
12.1. Updates to IMAP4 Capabilities registry 12.1. Updates to IMAP4 Capabilities registry
IMAP4 capabilities are registered by publishing a standards track or IMAP4 capabilities are registered by publishing a standards track or
IESG approved informational or experimental RFC. The registry is IESG approved informational or experimental RFC. The registry is
currently located at: https://www.iana.org/assignments/ currently located at: https://www.iana.org/assignments/
imap4-capabilities imap4-capabilities
As this specification revises the AUTH= prefix, STARTTLS and As this specification revises the AUTH= prefix, STARTTLS and
LOGINDISABLED extensions previously defined in [IMAP-TLS], IANA is LOGINDISABLED extensions, IANA is requested to update registry
requested to update registry entries for these 3 extensions to point entries for these 3 extensions to point to this document.
to this document.
12.2. GSSAPI/SASL service name 12.2. GSSAPI/SASL service name
GSSAPI/Kerberos/SASL service names are registered by publishing a GSSAPI/Kerberos/SASL service names are registered by publishing a
standards track or IESG approved experimental RFC. The registry is standards track or IESG approved experimental RFC. The registry is
currently located at: https://www.iana.org/assignments/gssapi- currently located at: https://www.iana.org/assignments/gssapi-
service-names service-names
IANA is requested to update the "imap" service name previously IANA is requested to update the "imap" service name previously
registered in RFC 3501, to point to this document. registered in RFC 3501, to point to this document.
skipping to change at page 155, line 19 skipping to change at page 156, line 5
3. SEARCH command now requires to return ESEARCH response (SEARCH 3. SEARCH command now requires to return ESEARCH response (SEARCH
response is now deprecated). response is now deprecated).
4. Clarified which SEARCH keys has to use substring match and which 4. Clarified which SEARCH keys has to use substring match and which
don't. don't.
5. Added CLOSED response code from RFC 7162. SELECT/EXAMINE when a 5. Added CLOSED response code from RFC 7162. SELECT/EXAMINE when a
mailbox is already selected now require for the CLOSED response mailbox is already selected now require for the CLOSED response
code to be returned. code to be returned.
6. Updated to use modern TLS-related recommendations as per RFC 6. SELECT/EXAMINE are now required to return untagged LIST
response.
7. Updated to use modern TLS-related recommendations as per RFC
8314, RFC 7817, RFC 7525. 8314, RFC 7817, RFC 7525.
7. For future extensibility extended ABNF for tagged-ext-simple to 8. For future extensibility extended ABNF for tagged-ext-simple to
allow for bare number64. allow for bare number64.
8. Added SHOULD level requirement on IMAP servers to support 9. Added SHOULD level requirement on IMAP servers to support
$MDNSent, $Forwarded, $Junk, $NonJunk and $Phishing keywords. $MDNSent, $Forwarded, $Junk, $NonJunk and $Phishing keywords.
9. Added STATUS SIZE (RFC 8438) and STATUS DELETED. 10. Added STATUS SIZE (RFC 8438) and STATUS DELETED.
10. Mailbox names and message headers now allow for UTF-8. Support 11. Mailbox names and message headers now allow for UTF-8. Support
for Modified UTF-7 in mailbox names is not required, unless for Modified UTF-7 in mailbox names is not required, unless
compatibility with IMAP4rev1 is desired. compatibility with IMAP4rev1 is desired.
11. UNSEEN response code on SELECT/EXAMINE is now deprecated. 12. UNSEEN response code on SELECT/EXAMINE is now deprecated.
12. RECENT response on SELECT/EXAMINE, \Recent flag, RECENT STATUS, 13. RECENT response on SELECT/EXAMINE, \Recent flag, RECENT STATUS,
SEARCH NEW items are now deprecated. SEARCH NEW items are now deprecated.
13. Clarified that the server doesn't need to send a new 14. Clarified that the server doesn't need to send a new
PERMANENTFLAGS response code when a new keyword was successfully PERMANENTFLAGS response code when a new keyword was successfully
added and the server advertised \* earlier for the same mailbox. added and the server advertised \* earlier for the same mailbox.
14. Removed the CHECK command. Clients should use NOOP instead. 15. Removed the CHECK command. Clients should use NOOP instead.
15. RFC822, RFC822.HEADER and RFC822.TEXT FETCH data items were 16. RFC822, RFC822.HEADER and RFC822.TEXT FETCH data items were
deprecated. Clients should use the corresponding BODY[] deprecated. Clients should use the corresponding BODY[]
variants instead. variants instead.
16. Replaced DIGEST-MD5 SASL mechanism with SCRAM-SHA-256. DIGEST- 17. Replaced DIGEST-MD5 SASL mechanism with SCRAM-SHA-256. DIGEST-
MD5 was deprecated. MD5 was deprecated.
17. LSUB command was deprecated. Clients should use LIST 18. LSUB command was deprecated. Clients should use LIST
(SUBSCRIBED) instead. (SUBSCRIBED) instead.
18. resp-text ABNF non terminal was updated to allow for empty text. 19. resp-text ABNF non terminal was updated to allow for empty text.
19. IDLE command can now return updates not related to the currently 20. IDLE command can now return updates not related to the currently
selected mailbox state. selected mailbox state.
20. All unsolicited FETCH updates are required to include UID. 21. All unsolicited FETCH updates are required to include UID.
21. Clarified that client implementations MUST ignore response codes 22. Clarified that client implementations MUST ignore response codes
that they do not recognize. (Change from a SHOULD to a MUST.) that they do not recognize. (Change from a SHOULD to a MUST.)
22. After ENABLE IMAP4rev2 human readable response text can include 23. After ENABLE IMAP4rev2 human readable response text can include
non ASCII encoded in UTF-8. non ASCII encoded in UTF-8.
Appendix E. Acknowledgement Appendix E. Acknowledgement
Earlier versions of this document were edited by Mark Crispin. Earlier versions of this document were edited by Mark Crispin.
Sadly, he is no longer available to help with this work. Editors of Sadly, he is no longer available to help with this work. Editors of
this revisions are hoping that Mark would have approved. this revisions are hoping that Mark would have approved.
Chris Newman has contributed text on I18N and use of UTF-8 in Chris Newman has contributed text on I18N and use of UTF-8 in
messages and mailbox names. messages and mailbox names.
skipping to change at page 157, line 30 skipping to change at page 158, line 10
-FLAGS.SILENT <flag list> 92 -FLAGS.SILENT <flag list> 92
A A
ALERT (response code) 99 ALERT (response code) 99
ALL (fetch item) 88 ALL (fetch item) 88
ALL (search key) 78 ALL (search key) 78
ALL (search result option) 76 ALL (search result option) 76
ALREADYEXISTS (response code) 99 ALREADYEXISTS (response code) 99
ANSWERED (search key) 78 ANSWERED (search key) 78
APPEND (command) 68 APPEND (command) 68
APPENDUID (response code) 99 APPENDUID (response code) 100
AUTHENTICATE (command) 29 AUTHENTICATE (command) 29
AUTHENTICATIONFAILED (response code) 100 AUTHENTICATIONFAILED (response code) 100
AUTHORIZATIONFAILED (response code) 100 AUTHORIZATIONFAILED (response code) 101
B B
BAD (response) 108 BAD (response) 108
BADCHARSET (response code) 101 BADCHARSET (response code) 101
BCC <string> (search key) 78 BCC <string> (search key) 78
BEFORE <date> (search key) 78 BEFORE <date> (search key) 78
BINARY.PEEK[<section-binary>]<<partial>> (fetch item) 88 BINARY.PEEK[<section-binary>]<<partial>> (fetch item) 88
BINARY.SIZE[<section-binary>] (fetch item) 88 BINARY.SIZE[<section-binary>] (fetch item) 89
BINARY.SIZE[<section-binary>] (fetch result) 118 BINARY.SIZE[<section-binary>] (fetch result) 118
BINARY[<section-binary>]<<number>> (fetch result) 117 BINARY[<section-binary>]<<number>> (fetch result) 118
BINARY[<section-binary>]<<partial>> (fetch item) 88 BINARY[<section-binary>]<<partial>> (fetch item) 88
BODY (fetch item) 89 BODY (fetch item) 89
BODY (fetch result) 118 BODY (fetch result) 119
BODY <string> (search key) 78 BODY <string> (search key) 78
BODY.PEEK[<section>]<<partial>> (fetch item) 91 BODY.PEEK[<section>]<<partial>> (fetch item) 89
BODYSTRUCTURE (fetch item) 91 BODYSTRUCTURE (fetch item) 90
BODYSTRUCTURE (fetch result) 119 BODYSTRUCTURE (fetch result) 119
BODY[<section>]<<origin octet>> (fetch result) 118 BODY[<section>]<<origin octet>> (fetch result) 119
BODY[<section>]<<partial>> (fetch item) 89 BODY[<section>]<<partial>> (fetch item) 89
BYE (response) 108 BYE (response) 109
Body Structure (message attribute) 14 Body Structure (message attribute) 14
C C
CANNOT (response code) 101 CANNOT (response code) 101
CAPABILITY (command) 25 CAPABILITY (command) 25
CAPABILITY (response code) 101 CAPABILITY (response code) 101
CAPABILITY (response) 109 CAPABILITY (response) 110
CC <string> (search key) 78 CC <string> (search key) 78
CLIENTBUG (response code) 101 CLIENTBUG (response code) 101
CLOSE (command) 73 CLOSE (command) 74
CLOSED (response code) 102 CLOSED (response code) 102
CONTACTADMIN (response code) 102 CONTACTADMIN (response code) 102
COPY (command) 93 COPY (command) 93
COPYUID (response code) 102 COPYUID (response code) 102
CORRUPTION (response code) 102 CORRUPTION (response code) 103
COUNT (search result option) 76 COUNT (search result option) 76
CREATE (command) 38 CREATE (command) 38
D D
DELETE (command) 39 DELETE (command) 39
DELETED (search key) 78 DELETED (search key) 78
DELETED (status item) 68 DELETED (status item) 68
DRAFT (search key) 78 DRAFT (search key) 78
E E
ENABLE (command) 33 ENABLE (command) 33
ENVELOPE (fetch item) 91 ENVELOPE (fetch item) 90
ENVELOPE (fetch result) 121 ENVELOPE (fetch result) 122
ESEARCH (response) 115 ESEARCH (response) 115
EXAMINE (command) 37 EXAMINE (command) 37
EXPIRED (response code) 103 EXPIRED (response code) 103
EXPUNGE (command) 74 EXPUNGE (command) 75
EXPUNGE (response) 116 EXPUNGE (response) 117
EXPUNGEISSUED (response code) 103 EXPUNGEISSUED (response code) 103
Envelope Structure (message attribute) 14 Envelope Structure (message attribute) 14
F F
FAST (fetch item) 88 FAST (fetch item) 88
FETCH (command) 87 FETCH (command) 87
FETCH (response) 117 FETCH (response) 118
FLAGGED (search key) 78 FLAGGED (search key) 78
FLAGS (fetch item) 91 FLAGS (fetch item) 90
FLAGS (fetch result) 123 FLAGS (fetch result) 123
FLAGS (response) 115 FLAGS (response) 116
FLAGS <flag list> (store command data item) 92 FLAGS <flag list> (store command data item) 92
FLAGS.SILENT <flag list> (store command data item) 92 FLAGS.SILENT <flag list> (store command data item) 92
FROM <string> (search key) 78 FROM <string> (search key) 79
FULL (fetch item) 88 FULL (fetch item) 88
Flags (message attribute) 11 Flags (message attribute) 11
H H
HASCHILDREN (response code) 103 HASCHILDREN (response code) 103
HEADER (part specifier) 89 HEADER (part specifier) 90
HEADER <field-name> <string> (search key) 78 HEADER <field-name> <string> (search key) 79
HEADER.FIELDS (part specifier) 89 HEADER.FIELDS (part specifier) 90
HEADER.FIELDS.NOT (part specifier) 89 HEADER.FIELDS.NOT (part specifier) 90
I I
IDLE (command) 71 IDLE (command) 71
INTERNALDATE (fetch item) 91 INTERNALDATE (fetch item) 90
INTERNALDATE (fetch result) 123 INTERNALDATE (fetch result) 123
INUSE (response code) 103 INUSE (response code) 104
Internal Date (message attribute) 13 Internal Date (message attribute) 13
K K
KEYWORD <flag> (search key) 79 KEYWORD <flag> (search key) 79
Keyword (type of flag) 12 Keyword (type of flag) 12
L L
LARGER <n> (search key) 79 LARGER <n> (search key) 79
LIMIT (response code) 104 LIMIT (response code) 104
LIST (command) 44 LIST (command) 44
LIST (response) 110 LIST (response) 111
LOGOUT (command) 27 LOGOUT (command) 27
M M
MAX (search result option) 76 MAX (search result option) 76
MAY (specification requirement term) 5 MAY (specification requirement term) 5
MESSAGES (status item) 68 MESSAGES (status item) 68
MIME (part specifier) 90 MIME (part specifier) 91
MIN (search result option) 76 MIN (search result option) 76
MOVE (command) 94 MOVE (command) 94
MUST (specification requirement term) 5 MUST (specification requirement term) 5
MUST NOT (specification requirement term) 5 MUST NOT (specification requirement term) 5
Message Sequence Number (message attribute) 11 Message Sequence Number (message attribute) 11
N N
NAMESPACE (command) 62 NAMESPACE (command) 62
NAMESPACE (response) 114 NAMESPACE (response) 115
NO (response) 107 NO (response) 108
NONEXISTENT (response code) 104 NONEXISTENT (response code) 104
NOOP (command) 26 NOOP (command) 26
NOPERM (response code) 104 NOPERM (response code) 104
NOT <search-key> (search key) 79 NOT <search-key> (search key) 79
NOT RECOMMENDED (specification requirement term) 5 NOT RECOMMENDED (specification requirement term) 5
O O
OK (response) 107 OK (response) 107
ON <date> (search key) 79 ON <date> (search key) 79
OPTIONAL (specification requirement term) 5 OPTIONAL (specification requirement term) 5
OR <search-key1> <search-key2> (search key) 79 OR <search-key1> <search-key2> (search key) 79
OVERQUOTA (response code) 104 OVERQUOTA (response code) 104
P P
PARSE (response code) 104 PARSE (response code) 105
PERMANENTFLAGS (response code) 105 PERMANENTFLAGS (response code) 105
PREAUTH (response) 108 PREAUTH (response) 108
PRIVACYREQUIRED (response code) 105 PRIVACYREQUIRED (response code) 105
Permanent Flag (class of flag) 13 Permanent Flag (class of flag) 13
Predefined keywords 12 Predefined keywords 12
R R
READ-ONLY (response code) 105 READ-ONLY (response code) 106
READ-WRITE (response code) 105 READ-WRITE (response code) 106
RECOMMENDED (specification requirement term) 5 RECOMMENDED (specification requirement term) 5
RENAME (command) 41 RENAME (command) 41
REQUIRED (specification requirement term) 5 REQUIRED (specification requirement term) 5
RFC822.SIZE (fetch item) 91 RFC822.SIZE (fetch item) 90
RFC822.SIZE (fetch result) 123 RFC822.SIZE (fetch result) 123
S S
SAVE (search result option) 76 SAVE (search result option) 76
SEARCH (command) 75 SEARCH (command) 75
SEEN (search key) 79 SEEN (search key) 79
SELECT (command) 35 SELECT (command) 35
SENTBEFORE <date> (search key) 79 SENTBEFORE <date> (search key) 79
SENTON <date> (search key) 79 SENTON <date> (search key) 79
SENTSINCE <date> (search key) 79 SENTSINCE <date> (search key) 79
SERVERBUG (response code) 106 SERVERBUG (response code) 106
SHOULD (specification requirement term) 5 SHOULD (specification requirement term) 5
SHOULD NOT (specification requirement term) 5 SHOULD NOT (specification requirement term) 5
SINCE <date> (search key) 79 SINCE <date> (search key) 79
SIZE (status item) 68 SIZE (status item) 68
SMALLER <n> (search key) 79 SMALLER <n> (search key) 79
STARTTLS (command) 28 STARTTLS (command) 28
STATUS (command) 67 STATUS (command) 67
STATUS (response) 115 STATUS (response) 115
STORE (command) 91 STORE (command) 92
SUBJECT <string> (search key) 79 SUBJECT <string> (search key) 80
SUBSCRIBE (command) 43 SUBSCRIBE (command) 43
Session Flag (class of flag) 13 Session Flag (class of flag) 13
System Flag (type of flag) 11 System Flag (type of flag) 11
T T
TEXT (part specifier) 89 TEXT (part specifier) 90
TEXT <string> (search key) 79 TEXT <string> (search key) 80
TO <string> (search key) 80 TO <string> (search key) 80
TRYCREATE (response code) 106 TRYCREATE (response code) 106
U U
UID (command) 95 UID (command) 96
UID (fetch item) 91 UID (fetch item) 90
UID (fetch result) 123 UID (fetch result) 123
UID <sequence set> (search key) 80 UID <sequence set> (search key) 80
UIDNEXT (response code) 106 UIDNEXT (response code) 106
UIDNEXT (status item) 68 UIDNEXT (status item) 68
UIDNOTSTICKY (response code) 106 UIDNOTSTICKY (response code) 106
UIDVALIDITY (response code) 106 UIDVALIDITY (response code) 107
UIDVALIDITY (status item) 68 UIDVALIDITY (status item) 68
UNANSWERED (search key) 80 UNANSWERED (search key) 80
UNAVAILABLE (response code) 106 UNAVAILABLE (response code) 107
UNDELETED (search key) 80 UNDELETED (search key) 80
UNDRAFT (search key) 80 UNDRAFT (search key) 80
UNFLAGGED (search key) 80 UNFLAGGED (search key) 80
UNKEYWORD <flag> (search key) 80 UNKEYWORD <flag> (search key) 80
UNKNOWN-CTE (response code) 107 UNKNOWN-CTE (response code) 107
UNSEEN (search key) 80 UNSEEN (search key) 80
UNSEEN (status item) 68 UNSEEN (status item) 68
UNSELECT (command) 74 UNSELECT (command) 74
UNSUBSCRIBE (command) 44 UNSUBSCRIBE (command) 44
Unique Identifier (UID) (message attribute) 9 Unique Identifier (UID) (message attribute) 9
X X
X<atom> (command) 97 X<atom> (command) 97
[ [
[RFC-5322] Size (message attribute) 14 [RFC-5322] Size (message attribute) 14
\ \
\All (mailbox name attribute) 112 \All (mailbox name attribute) 113
\Answered (system flag) 11 \Answered (system flag) 11
\Archive (mailbox name attribute) 112 \Archive (mailbox name attribute) 113
\Deleted (system flag) 12 \Deleted (system flag) 12
\Draft (system flag) 12 \Draft (system flag) 12
\Drafts (mailbox name attribute) 113 \Drafts (mailbox name attribute) 113
\Flagged (mailbox name attribute) 113 \Flagged (mailbox name attribute) 113
\Flagged (system flag) 11 \Flagged (system flag) 11
\HasChildren (mailbox name attribute) 111 \HasChildren (mailbox name attribute) 112
\HasNoChildren (mailbox name attribute) 112 \HasNoChildren (mailbox name attribute) 112
\Junk (mailbox name attribute) 113 \Junk (mailbox name attribute) 113
\Marked (mailbox name attribute) 112 \Marked (mailbox name attribute) 112
\Noinferiors (mailbox name attribute) 111 \Noinferiors (mailbox name attribute) 111
\NonExistent (mailbox name attribute) 111 \NonExistent (mailbox name attribute) 111
\Noselect (mailbox name attribute) 111 \Noselect (mailbox name attribute) 111
\Recent (system flag) 12 \Recent (system flag) 12
\Remote (mailbox name attribute) 112 \Remote (mailbox name attribute) 112
\Seen (system flag) 11 \Seen (system flag) 11
\Sent (mailbox name attribute) 113 \Sent (mailbox name attribute) 113
 End of changes. 103 change blocks. 
201 lines changed or deleted 237 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/