draft-ietf-imapext-list-extensions-13.txt   draft-ietf-imapext-list-extensions-14.txt 
IMAP Extensions Working Group B. Leiba IMAP Extensions Working Group B. Leiba
Internet-Draft IBM T.J. Watson Research Center Internet-Draft IBM T.J. Watson Research Center
Updates: 2193 (if approved) A. Melnikov Updates: 2193 (if approved) A. Melnikov
Obsoletes: 3348 (if approved) Isode Limited Obsoletes: 3348 (if approved) Isode Limited
Expires: November 17, 2005 May 16, 2005 Expires: April 22, 2006 October 19, 2005
IMAP4 LIST Command Extensions IMAP4 LIST Command Extensions
draft-ietf-imapext-list-extensions-13 draft-ietf-imapext-list-extensions-14
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 35 skipping to change at page 1, line 35
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."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on November 17, 2005. This Internet-Draft will expire on April 22, 2006.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2005). Copyright (C) The Internet Society (2005).
Abstract Abstract
IMAP4 has two commands for listing mailboxes: LIST and LSUB. As we IMAP4 has two commands for listing mailboxes: LIST and LSUB. As we
have added extensions, such as Mailbox Referrals, that have required have added extensions, such as Mailbox Referrals, that have required
specialized lists we have had to expand the number of list commands, specialized lists we have had to expand the number of list commands,
skipping to change at page 2, line 35 skipping to change at page 2, line 35
3.1 General principles for returning LIST responses . . . . . . . 10 3.1 General principles for returning LIST responses . . . . . . . 10
3.2 Additional requirements on LIST-EXTENDED clients . . . . . . . 11 3.2 Additional requirements on LIST-EXTENDED clients . . . . . . . 11
3.3 CHILDINFO extended data item . . . . . . . . . . . . . . . . . 11 3.3 CHILDINFO extended data item . . . . . . . . . . . . . . . . . 11
4. The CHILDREN return Option . . . . . . . . . . . . . . . . . . 14 4. The CHILDREN return Option . . . . . . . . . . . . . . . . . . 14
5. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 26 6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 26
7. Security Considerations . . . . . . . . . . . . . . . . . . . 29 7. Security Considerations . . . . . . . . . . . . . . . . . . . 30
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 30 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31
8.1 Guidelines for IANA . . . . . . . . . . . . . . . . . . . . . 30 8.1 Guidelines for IANA . . . . . . . . . . . . . . . . . . . . . 31
8.2 Registration procedure and Change control . . . . . . . . . . 30 8.2 Registration procedure and Change control . . . . . . . . . . 31
8.3 Registration template for LIST-EXTENDED options . . . . . . . 31 8.3 Registration template for LIST-EXTENDED options . . . . . . . 32
8.4 Initial LIST-EXTENDED option registrations . . . . . . . . . . 32 8.4 Initial LIST-EXTENDED option registrations . . . . . . . . . . 33
8.5 Registration template for LIST-EXTENDED extended data item . . 34 8.5 Registration template for LIST-EXTENDED extended data item . . 35
8.6 Initial LIST-EXTENDED extended data item registrations . . . . 35 8.6 Initial LIST-EXTENDED extended data item registrations . . . . 36
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 36 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 37
10. Normative References . . . . . . . . . . . . . . . . . . . . . 36 10. Normative References . . . . . . . . . . . . . . . . . . . . . 37
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 36 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 37
Intellectual Property and Copyright Statements . . . . . . . . 38 Intellectual Property and Copyright Statements . . . . . . . . 39
1. Conventions used in this document 1. Conventions used in this document
In examples, "C:" indicates lines sent by a client that is connected In examples, "C:" indicates lines sent by a client that is connected
to a server. "S:" indicates lines sent by the server to the client. to a server. "S:" indicates lines sent by the server to the client.
The words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" are The words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY" are
used in this document as specified in RFC 2119 [Kwds]. used in this document as specified in RFC 2119 [Kwds].
The term "canonical LIST pattern" refers to the canonical pattern The term "canonical LIST pattern" refers to the canonical pattern
skipping to change at page 6, line 9 skipping to change at page 6, line 9
e. adds new mailbox attributes: "\NonExistent", "\Subscribed", e. adds new mailbox attributes: "\NonExistent", "\Subscribed",
"\Remote", "\HasChildren" and "\HasNoChildren". "\Remote", "\HasChildren" and "\HasNoChildren".
f. adds CHILDINFO extended data item. f. adds CHILDINFO extended data item.
3. Extended LIST Command 3. Extended LIST Command
This extension updates the syntax of the LIST command to allow for This extension updates the syntax of the LIST command to allow for
multiple mailbox patterns to be specified, if they are enclosed in multiple mailbox patterns to be specified, if they are enclosed in
parantheses. A mailbox name match a list of mailbox patterns if it parentheses. A mailbox name matches a list of mailbox patterns if it
matches at least one mailbox pattern. Note that if a mailbox name matches at least one mailbox pattern. If a mailbox name matches
matches multiple mailbox patterns from the list, the server should multiple mailbox patterns from the list, the server SHOULD return
return only a single LIST response. only a single LIST response.
Note that the non-extended LIST command is required to treat an empty Note that the non-extended LIST command is required to treat an empty
("" string) mailbox name argument as a special request to return the ("" string) mailbox name argument as a special request to return the
hierarchy delimiter and the root name of the name given in the hierarchy delimiter and the root name of the name given in the
reference parameter (as per [IMAP4]). However ANY extended LIST reference parameter (as per [IMAP4]). However ANY extended LIST
command (extended in any of 3 ways specified in Section 2, or any command (extended in any of 3 ways specified in Section 2, or any
combination of therof) MUST NOT treat the empty mailbox name as such combination of therof) MUST NOT treat the empty mailbox name as such
special request and any regular processing described in this document special request and any regular processing described in this document
applies. In particular, if an extended LIST command has multiple applies. In particular, if an extended LIST command has multiple
mailbox names and one (or more) of them is the empty string, the mailbox names and one (or more) of them is the empty string, the
skipping to change at page 8, line 4 skipping to change at page 8, line 4
data. Tags MUST be registered with IANA, as described in Section 8.5 data. Tags MUST be registered with IANA, as described in Section 8.5
of this document. An example of such extended set might be of this document. An example of such extended set might be
((tablecloth (("fringe" "lacy")("color" "white")))(X-Sample ((tablecloth (("fringe" "lacy")("color" "white")))(X-Sample
"text")) "text"))
or... or...
((tablecloth ("fringe" "lacy"))(X-Sample "text" "and even more ((tablecloth ("fringe" "lacy"))(X-Sample "text" "and even more
text")) text"))
See the formal grammar, below, for the full syntactic details. The See the formal syntax, in Section 6, for the full syntactic details.
server MUST NOT return any extended data item, unless the client has The server MUST NOT return any extended data item, unless the client
expressed its ability to support extended LIST responses, for example has expressed its ability to support extended LIST responses, for
by using an extended LIST command. The server MAY return data in the example by using an extended LIST command. The server MAY return
extended fields that was not solicited by the client. The client data in the extended fields that was not solicited by the client.
MUST ignore all extended fields it doesn't recognize. The client MUST ignore all extended fields it doesn't recognize.
The LIST-EXTENDED capability also defines several new mailbox The LIST-EXTENDED capability also defines several new mailbox
attributes. attributes.
The "\NonExistent" attribute indicates that a mailbox does not The "\NonExistent" attribute indicates that a mailbox does not
actually exist. Note that this attribute is not meaningful by actually exist. Note that this attribute is not meaningful by
itself, as mailboxes that match the canonical LIST pattern but don't itself, as mailboxes that match the canonical LIST pattern but don't
exist must not be returned unless one of the two conditions listed exist must not be returned unless one of the two conditions listed
below is also satisfied: below is also satisfied:
a. the mailbox also satisfies the selection criteria (for example, a. the mailbox also satisfies the selection criteria (for example,
its name is subscribed and the "SUBSCRIBED" selection option has its name is subscribed and the "SUBSCRIBED" selection option has
been specified) been specified)
b. "RECURSIVEMATCH" has been specified, and the mailbox has at least b. "RECURSIVEMATCH" has been specified, and the mailbox has at least
one child mailbox that matches the LIST pattern and selection one descendant mailbox that does not match the LIST pattern and
criteria. does match the selection criteria.
In practice this means that the "\NonExistent" attribute is usually In practice this means that the "\NonExistent" attribute is usually
returned with one or more of "\Subscribed", "\Remote" or the returned with one or more of "\Subscribed", "\Remote" or the
CHILDINFO extended data item (see their description below). CHILDINFO extended data item (see their description below).
The "\NonExistent" attribute implies "\NoSelect". The "\NonExistent" The "\NonExistent" attribute implies "\NoSelect". The "\NonExistent"
attribute MUST be supported and MUST be accurately computed. attribute MUST be supported and MUST be accurately computed.
The selection options defined in this specification are The selection options defined in this specification are
skipping to change at page 8, line 48 skipping to change at page 8, line 48
than the existing mailboxes. This will often be a subset of the than the existing mailboxes. This will often be a subset of the
actual mailboxes. It's also possible for this list to contain the actual mailboxes. It's also possible for this list to contain the
names of mailboxes that don't exist. In any case, the list MUST names of mailboxes that don't exist. In any case, the list MUST
include exactly those mailbox names that match the canonical list include exactly those mailbox names that match the canonical list
pattern and are subscribed to. This option is intended to pattern and are subscribed to. This option is intended to
supplement the LSUB command. Of particular note are the mailbox supplement the LSUB command. Of particular note are the mailbox
attributes as returned by this option, compared with what is attributes as returned by this option, compared with what is
returned by LSUB. With the latter, the attributes returned may returned by LSUB. With the latter, the attributes returned may
not reflect the actual attribute status on the mailbox name, and not reflect the actual attribute status on the mailbox name, and
the \NoSelect attribute has a special meaning (it indicates that the \NoSelect attribute has a special meaning (it indicates that
this mailbox is not, itself, subscribed, but that it has child this mailbox is not, itself, subscribed, but that it has
mailboxes that are). With the SUBSCRIBED selection option descendant mailboxes that are). With the SUBSCRIBED selection
described here, the attributes are accurate, complete, and have no option described here, the attributes are accurate, complete, and
special meanings. "LSUB" and "LIST (SUBSCRIBED)" are, thus, not have no special meanings. "LSUB" and "LIST (SUBSCRIBED)" are,
the same thing, and some servers must do significant extra work to thus, not the same thing, and some servers must do significant
respond to "LIST (SUBSCRIBED)". Because of this, clients SHOULD extra work to respond to "LIST (SUBSCRIBED)". Because of this,
continue to use "LSUB" unless they specifically want the clients SHOULD continue to use "LSUB" unless they specifically
additional information offered by "LIST (SUBSCRIBED)". want the additional information offered by "LIST (SUBSCRIBED)".
This option defines a new mailbox attribute, "\Subscribed", that This option defines a new mailbox attribute, "\Subscribed", that
indicates that a mailbox name is subscribed to. The "\Subscribed" indicates that a mailbox name is subscribed to. The "\Subscribed"
attribute MUST be supported and MUST be accurately computed when attribute MUST be supported and MUST be accurately computed when
the SUBSCRIBED selection option is specified. the SUBSCRIBED selection option is specified.
Note that the SUBSCRIBED selection option implies the SUBSCRIBED Note that the SUBSCRIBED selection option implies the SUBSCRIBED
return option (see below). return option (see below).
REMOTE - causes the LIST command to show remote mailboxes as well as REMOTE - causes the LIST command to show remote mailboxes as well as
local ones, as described in [MBRef]. This option is intended to local ones, as described in [MBRef]. This option is intended to
replace the RLIST command and, in conjunction with the SUBSCRIBED replace the RLIST command and, in conjunction with the SUBSCRIBED
selection option, the RLSUB command. selection option, the RLSUB command.
This option defines a new mailbox attribute, "\Remote", that This option defines a new mailbox attribute, "\Remote", that
indicates that a mailbox is a remote mailbox. The "\Remote" indicates that a mailbox is a remote mailbox. The "\Remote"
attribute MUST be accurately computed when the REMOTE option is attribute MUST be accurately computed when the REMOTE option is
specified. specified.
Note that a server implementation that doesn't support any remote The REMOTE selection option has no interaction with other options.
mailboxes is compliant with this specification as long as it Its effect is to tell the server to apply the other options, if
accepts and ignores the REMOTE selection option. Note that if the any, to remote mailboxes, in addition to local ones. In
server choses to ignore the REMOTE selection option, it still has particular, it has no interaction with RECURSIVEMATCH (see below).
to treat RECURSIVEMATCH REMOTE as a valid combination of selection A request for (REMOTE RECURSIVEMATCH) is invalid, because a
options (see also the description of the RECURSIVEMATCH option request for (RECURSIVEMATCH) is. A request for (REMOTE
below). RECURSIVEMATCH SUBSCRIBED) is asking for all subscribed mailboxes,
both local and remote.
RECURSIVEMATCH - this option forces the server to return information RECURSIVEMATCH - this option forces the server to return information
about parent mailboxes that don't match other selection options, about parent mailboxes that don't match other selection options,
but have some submailboxes that do. Information about children is but have some submailboxes that do. Information about children is
returned in the CHILDINFO extended data item, as described in returned in the CHILDINFO extended data item, as described in
Section 3.3. Section 3.3.
Note 1: In order for a parent mailbox to be returned, it still has Note 1: In order for a parent mailbox to be returned, it still has
to match the canonical LIST pattern. to match the canonical LIST pattern.
skipping to change at page 11, line 4 skipping to change at page 11, line 6
implementors must not assume that clients will be able to implementors must not assume that clients will be able to
assemble mailbox attributes and other information returned in assemble mailbox attributes and other information returned in
multiple LIST responses. multiple LIST responses.
2. There are only two reasons for including a matching mailbox name 2. There are only two reasons for including a matching mailbox name
in the responses to the LIST command (Note that the server is in the responses to the LIST command (Note that the server is
allowed to return unsolicited responses at any time. Such allowed to return unsolicited responses at any time. Such
responses are not governed by this rule): responses are not governed by this rule):
A. the mailbox name also satisfies the selection criteria; A. the mailbox name also satisfies the selection criteria;
B. the mailbox name doesn't satisfy the selection criteria, but B. the mailbox name doesn't satisfy the selection criteria, but
it has at least one child mailbox name that satisfies the it has at least one descendant mailbox name that satisfies
selection criteria and that doesn't match the canonical LIST the selection criteria and that doesn't match the canonical
pattern. LIST pattern.
For more information on this case see the CHILDINFO extended For more information on this case see the CHILDINFO extended
data item described in Section 3.3. Note that the CHILDINFO data item described in Section 3.3. Note that the CHILDINFO
extended data item can only be returned when the extended data item can only be returned when the
RECURSIVEMATCH selection option is specified. RECURSIVEMATCH selection option is specified.
3. Attributes returned in the same LIST response must be treated 3. Attributes returned in the same LIST response must be treated
additively. For example the following response additively. For example the following response
S: * LIST (\Subscribed \NonExistent) "/" "Fruit/Peach" S: * LIST (\Subscribed \NonExistent) "/" "Fruit/Peach"
skipping to change at page 12, line 4 skipping to change at page 12, line 7
| \NonExistent | \NoSelect | | \NonExistent | \NoSelect |
+--------------------+-------------------+ +--------------------+-------------------+
3.3 CHILDINFO extended data item 3.3 CHILDINFO extended data item
The CHILDINFO extended data item MUST only be returned when the The CHILDINFO extended data item MUST only be returned when the
client has specified the RECURSIVEMATCH selection option. client has specified the RECURSIVEMATCH selection option.
The CHILDINFO extended data item in a LIST response describes the The CHILDINFO extended data item in a LIST response describes the
selection criteria that has caused it to be returned and indicates selection criteria that has caused it to be returned and indicates
that the mailbox has st least one child mailbox that matches the that the mailbox has at least one descendant mailbox that matches the
selection criteria. selection criteria.
The LSUB command indicates this condition by using the "\NoSelect" The LSUB command indicates this condition by using the "\NoSelect"
attribute, but the LIST (SUBSCRIBED) command MUST NOT do that, since attribute, but the LIST (SUBSCRIBED) command MUST NOT do that, since
"\NoSelect" retains its original meaning here. Further, the "\NoSelect" retains its original meaning here. Further, the
CHILDINFO extended data item is more general, in that it can be used CHILDINFO extended data item is more general, in that it can be used
with any extended set of selection criteria. with any extended set of selection criteria.
The returned selection criteria allow the client to distinguish a The returned selection criteria allow the client to distinguish a
solicited response from an unsolicited one, as well as to distinguish solicited response from an unsolicited one, as well as to distinguish
skipping to change at page 16, line 46 skipping to change at page 16, line 46
has two children, one of them is subscribed as well. has two children, one of them is subscribed as well.
C: A02 LIST (SUBSCRIBED) "" "*" C: A02 LIST (SUBSCRIBED) "" "*"
S: * LIST (\Marked \NoInferiors \Subscribed) "/" "inbox" S: * LIST (\Marked \NoInferiors \Subscribed) "/" "inbox"
S: * LIST (\Subscribed) "/" "Fruit/Banana" S: * LIST (\Subscribed) "/" "Fruit/Banana"
S: * LIST (\Subscribed \NonExistent) "/" "Fruit/Peach" S: * LIST (\Subscribed \NonExistent) "/" "Fruit/Peach"
S: * LIST (\Subscribed) "/" "Vegetable"
S: * LIST (\Subscribed) "/" "Vegetable/Broccoli" S: * LIST (\Subscribed) "/" "Vegetable/Broccoli"
S: A02 OK done S: A02 OK done
3: The next example shows the use of the CHILDREN option. The 3: The next example shows the use of the CHILDREN option. The
client, without having to list the second level of hierarchy, now client, without having to list the second level of hierarchy, now
knows which of the top-level mailboxes have submailboxes knows which of the top-level mailboxes have submailboxes
(children) and which do not. Note that it's not necessary for (children) and which do not. Note that it's not necessary for
the server to return the \HasNoChildren attribute for the inbox, the server to return the \HasNoChildren attribute for the inbox,
because the \NoInferiors attribute already implies that, and has because the \NoInferiors attribute already implies that, and has
a stronger meaning. a stronger meaning.
skipping to change at page 22, line 8 skipping to change at page 22, line 8
S: C04 OK done S: C04 OK done
B) Now, let's assume that no mailbox is subscribed. In this case B) Now, let's assume that no mailbox is subscribed. In this case
the command <LIST (SUBSCRIBED RECURSIVEMATCH) "" "%"> will return the command <LIST (SUBSCRIBED RECURSIVEMATCH) "" "%"> will return
no responses, as there are no subscribed children (even though no responses, as there are no subscribed children (even though
"Foo" has children). "Foo" has children).
C) And finally, suppose that only the mailboxes "Foo" and "Moo" C) And finally, suppose that only the mailboxes "Foo" and "Moo"
are subscribed. In that case we see this result: are subscribed. In that case we see this result:
C: LIST (SUBSCRIBED RECURSIVEMATCH) "" "%" RETURN (CHILDREN) C: C04 LIST (SUBSCRIBED RECURSIVEMATCH) "" "%" RETURN
(CHILDREN)
S: * LIST (\HasChildren \Subscribed) "/" "Foo" S: * LIST (\HasChildren \Subscribed) "/" "Foo"
S: * LIST (\HasNoChildren \Subscribed) "/" "Moo" S: * LIST (\HasNoChildren \Subscribed) "/" "Moo"
S: C04 OK done
(which means that the mailbox "Foo" has children, but none of (which means that the mailbox "Foo" has children, but none of
them is subscribed). them is subscribed).
9: The following example demonstrates that the CHILDINFO extended 9: The following example demonstrates that the CHILDINFO extended
data item is returned whether children mailboxes match the data item is returned whether children mailboxes match the
canonical LIST pattern or not. canonical LIST pattern or not.
Let's assume there is the following hierarchy: Let's assume there is the following hierarchy:
C: D01 LIST "" "*" C: D01 LIST "" "*"
skipping to change at page 26, line 43 skipping to change at page 26, line 43
eitem-standard-tag = atom eitem-standard-tag = atom
; a tag for extended list data defined in a Standard ; a tag for extended list data defined in a Standard
; Track or Experimental RFC. ; Track or Experimental RFC.
eitem-vendor-tag = vendor-tag eitem-vendor-tag = vendor-tag
; a vendor specific tag for extended list data ; a vendor specific tag for extended list data
list = "LIST" [SP list-select-opts] SP mailbox SP mbox-or-pat list = "LIST" [SP list-select-opts] SP mailbox SP mbox-or-pat
[SP list-return-opts] [SP list-return-opts]
list-select-opts = "(" [*(list-select-mod-opt SP) list-select-base- list-return-opts = "RETURN" SP "(" [return-option *(SP return-
opt option)] ")"
*(SP list-select-opt)] ")" ; list return options, e.g. CHILDREN
; list selection options, e.g. REMOTE list-select-base-opt = "SUBSCRIBED" / option-extension
list-select-opt = list-select-mod-opt / list-select-base-opt
; An option registration template is described in
; Section 8.3 of this document.
list-select-base-opt = "SUBSCRIBED" / "REMOTE" / option-extension
; options that can be used by themselves ; options that can be used by themselves
list-select-base-opt-quoted = <"> list-select-base-opt <"> list-select-base-opt-quoted = <"> list-select-base-opt <">
list-select-independent-opt = "REMOTE" / option-extension
; options that do not syntactically interact with
; other options
list-select-mod-opt = "RECURSIVEMATCH" / option-extension list-select-mod-opt = "RECURSIVEMATCH" / option-extension
; options that require a list-select-base-opt ; options that require a list-select-base-opt
; to also be present ; to also be present
list-return-opts = "RETURN" SP "(" [return-option *(SP return- list-select-opt = list-select-base-opt / list-select-independent-opt
option)] ")" / list-select-mod-opt
; list return options, e.g. CHILDREN ; An option registration template is described in
; Section 8.3 of this document.
list-select-opts = "(" [
(*(list-select-opt SP) list-select-base-opt
*(SP list-select-opt))
/ (list-select-independent-opt
*(SP list-select-independent-opt))
] ")"
; Any number of options may be in any order
; This allows these:
; ()
; (REMOTE)
; (SUBSCRIBED)
; (SUBSCRIBED REMOTE)
; (SUBSCRIBED RECURSIVEMATCH)
; (SUBSCRIBED REMOTE RECURSIVEMATCH)
; But does NOT allow these:
; (RECURSIVEMATCH)
; (REMOTE RECURSIVEMATCH)
mailbox-list = "(" [mbx-list-flags] ")" SP mailbox-list = "(" [mbx-list-flags] ")" SP
(DQUOTE QUOTED-CHAR DQUOTE / nil) SP mailbox (DQUOTE QUOTED-CHAR DQUOTE / nil) SP mailbox
[SP mbox-list-extended] [SP mbox-list-extended]
mbox-list-extended = "(" [mbox-list-extended-item mbox-list-extended = "(" [mbox-list-extended-item
*(SP mbox-list-extended-item)] ")" *(SP mbox-list-extended-item)] ")"
mbox-list-extended-item = "(" mbox-list-extended-item-data ")" mbox-list-extended-item = "(" mbox-list-extended-item-data ")"
mbox-list-extended-item-data = mbox-list-extended-item-tag SP mbox-list-extended-item-data = mbox-list-extended-item-tag SP
nstring-list nstring-list
mbox-list-extended-item-tag = astring mbox-list-extended-item-tag = astring
; The content MUST conform to either "eitem-vendor-tag" ; The content MUST conform to either "eitem-vendor-tag"
skipping to change at page 28, line 14 skipping to change at page 28, line 28
mbox-list-oflag = child-mbox-flag / "\NonExistent" / mbox-list-oflag = child-mbox-flag / "\NonExistent" /
/ "\Subscribed" / "\Remote" / "\Subscribed" / "\Remote"
mbox-or-pat = list-mailbox / patterns mbox-or-pat = list-mailbox / patterns
nstring-list = nstring / nstring-list = nstring /
"(" [nstring-list *(SP nstring-list)] ")" "(" [nstring-list *(SP nstring-list)] ")"
; a recursive list definition ; a recursive list definition
option-extension = option-vendor-tag / option-standard-tag option-extension = (option-standard-tag / option-vendor-tag) [SP
option-value]
option-vendor-tag = vendor-tag
; a vendor specific option
option-standard-tag = atom option-standard-tag = atom
; an option defined in a Standard Track or ; an option defined in a Standards Track or Experimental
; Experimental RFC RFC
option-value = "(" astring *(SP astring) ")"
option-vendor-tag = vendor-token "-" atom
; a vendor specific option, non-standard
patterns = "(" list-mailbox *(SP list-mailbox) ")" patterns = "(" list-mailbox *(SP list-mailbox) ")"
return-option = "SUBSCRIBED" / "CHILDREN" / return-option = "SUBSCRIBED" / "CHILDREN" /
option-extension option-extension
vendor-tag = vendor-token "-" atom
7. Security Considerations 7. Security Considerations
This document describes syntactic changes to the specification of the This document describes syntactic changes to the specification of the
IMAP4 commands LIST, LSUB, RLIST, and RLSUB, and the modified LIST IMAP4 commands LIST, LSUB, RLIST, and RLSUB, and the modified LIST
command has the same security considerations as those commands. They command has the same security considerations as those commands. They
are described in [IMAP4] and [MBRef]. are described in [IMAP4] and [MBRef].
The Child Mailbox Extension provides a client a more efficient means The Child Mailbox Extension provides a client a more efficient means
of determining whether a particular mailbox has children. If a of determining whether a particular mailbox has children. If a
mailbox has children, but the currently authenticated user does not mailbox has children, but the currently authenticated user does not
 End of changes. 29 change blocks. 
68 lines changed or deleted 92 lines changed or added

This html diff was produced by rfcdiff 1.27, available from http://www.levkowetz.com/ietf/tools/rfcdiff/