123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675 |
- Internet Engineering Task Force (IETF) B. Leiba
- Request for Comments: 6154 Huawei Technologies
- Category: Standards Track J. Nicolson
- ISSN: 2070-1721 Google
- March 2011
- IMAP LIST Extension for Special-Use Mailboxes
- Abstract
- Some IMAP message stores include special-use mailboxes, such as those
- used to hold draft messages or sent messages. Many mail clients
- allow users to specify where draft or sent messages should be put,
- but configuring them requires that the user know which mailboxes the
- server has set aside for these purposes. This extension adds new
- optional mailbox attributes that a server may include in IMAP LIST
- command responses to identify special-use mailboxes to the client,
- easing configuration.
- Status of This Memo
- This is an Internet Standards Track document.
- This document is a product of the Internet Engineering Task Force
- (IETF). It represents the consensus of the IETF community. It has
- received public review and has been approved for publication by the
- Internet Engineering Steering Group (IESG). Further information on
- Internet Standards is available in Section 2 of RFC 5741.
- Information about the current status of this document, any errata,
- and how to provide feedback on it may be obtained at
- http://www.rfc-editor.org/info/rfc6154.
- Copyright Notice
- Copyright (c) 2011 IETF Trust and the persons identified as the
- document authors. All rights reserved.
- This document is subject to BCP 78 and the IETF Trust's Legal
- Provisions Relating to IETF Documents
- (http://trustee.ietf.org/license-info) in effect on the date of
- publication of this document. Please review these documents
- carefully, as they describe your rights and restrictions with respect
- to this document. Code Components extracted from this document must
- include Simplified BSD License text as described in Section 4.e of
- the Trust Legal Provisions and are provided without warranty as
- described in the Simplified BSD License.
- Leiba & Nicolson Standards Track [Page 1]
- RFC 6154 IMAP LIST: Special-Use Mailboxes March 2011
- Table of Contents
- 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
- 1.1. Conventions Used in This Document . . . . . . . . . . . . 3
- 2. New Mailbox Attributes Identifying Special-Use Mailboxes . . . 3
- 3. Extension to IMAP CREATE Command to Set Special-Use
- Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . 5
- 4. IMAP METADATA Entry for Special-Use Attributes . . . . . . . . 6
- 5. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
- 5.1. Example of an IMAP LIST Command . . . . . . . . . . . . . 7
- 5.2. Example of an Extended IMAP LIST Command . . . . . . . . . 7
- 5.3. Example of an IMAP CREATE Command . . . . . . . . . . . . 8
- 5.4. Example of Using IMAP METADATA to Manipulate
- Special-Use Attributes . . . . . . . . . . . . . . . . . . 8
- 6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 9
- 7. Security Considerations . . . . . . . . . . . . . . . . . . . 9
- 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
- 8.1. Registration of USEATTR IMAP Response Code . . . . . . . . 10
- 8.2. Registration of CREATE-SPECIAL-USE IMAP Capability . . . . 10
- 8.3. Registration of SPECIAL-USE IMAP Capability . . . . . . . 10
- 8.4. Registration of SPECIAL-USE Selection Option . . . . . . . 10
- 8.5. Registration of SPECIAL-USE Return Option . . . . . . . . 11
- 8.6. Registration of SPECIAL-USE Metadata . . . . . . . . . . . 11
- 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
- 9.1. Normative References . . . . . . . . . . . . . . . . . . . 12
- 9.2. Informative References . . . . . . . . . . . . . . . . . . 12
- Leiba & Nicolson Standards Track [Page 2]
- RFC 6154 IMAP LIST: Special-Use Mailboxes March 2011
- 1. Introduction
- Some IMAP message stores include special-use mailboxes, such as those
- used to hold draft messages or sent messages. Many mail clients
- allow users to specify where draft or sent messages should be put,
- but configuring them requires that the user know which mailboxes the
- server has set aside for these purposes. This extension adds new
- optional mailbox attributes that a server may include in IMAP LIST
- command responses to identify special-use mailboxes to the client,
- easing configuration.
- In addition, this extension adds an optional parameter on the IMAP
- CREATE command, allowing a client to assign a special use to a
- mailbox when it is created. Servers may choose to support this part
- of the extension, but are not required to.
- 1.1. Conventions Used in This Document
- 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.
- The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
- "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
- document are to be interpreted as described in RFC 2119 [RFC2119].
- 2. New Mailbox Attributes Identifying Special-Use Mailboxes
- An IMAP server that supports this extension MAY include any or all of
- the following attributes in responses to the non-extended IMAP LIST
- command. The new attributes are included along with existing
- attributes, such as "\Marked" and "\Noselect". A given mailbox may
- have none, one, or more than one of these attributes. In some cases,
- a special use is advice to a client about what to put in that
- mailbox. In other cases, it's advice to a client about what to
- expect to find there. There is no capability string related to the
- support of special-use attributes on the non-extended LIST command.
- For the extended list command [RFC5258], this extension adds a new
- capability string, a new selection option, and a new return option,
- all called "SPECIAL-USE". Supporting implementations MUST include
- the "SPECIAL-USE" capability string in response to an IMAP CAPABILITY
- command. If the client specifies the "SPECIAL-USE" selection option,
- the LIST command MUST return only those mailboxes that have a
- special-use attribute set. If the client specifies the "SPECIAL-USE"
- return option, the LIST command MUST return the new special-use
- attributes on those mailboxes that have them set. The "SPECIAL-USE"
- Leiba & Nicolson Standards Track [Page 3]
- RFC 6154 IMAP LIST: Special-Use Mailboxes March 2011
- return option is implied by the "SPECIAL-USE" selection option. The
- extended LIST command MAY return SPECIAL-USE attributes even if the
- client does not specify the return option.
- The new attributes defined here are as follows:
- \All
- This mailbox presents all messages in the user's message store.
- Implementations MAY omit some messages, such as, perhaps, those
- in \Trash and \Junk. When this special use is supported, it is
- almost certain to represent a virtual mailbox.
- \Archive
- This mailbox is used to archive messages. The meaning of an
- "archival" mailbox is server-dependent; typically, it will be
- used to get messages out of the inbox, or otherwise keep them
- out of the user's way, while still making them accessible.
- \Drafts
- This mailbox is used to hold draft messages -- typically,
- messages that are being composed but have not yet been sent. In
- some server implementations, this might be a virtual mailbox,
- containing messages from other mailboxes that are marked with
- the "\Draft" message flag. Alternatively, this might just be
- advice that a client put drafts here.
- \Flagged
- This mailbox presents all messages marked in some way as
- "important". When this special use is supported, it is likely
- to represent a virtual mailbox collecting messages (from other
- mailboxes) that are marked with the "\Flagged" message flag.
- \Junk
- This mailbox is where messages deemed to be junk mail are held.
- Some server implementations might put messages here
- automatically. Alternatively, this might just be advice to a
- client-side spam filter.
- \Sent
- This mailbox is used to hold copies of messages that have been
- sent. Some server implementations might put messages here
- automatically. Alternatively, this might just be advice that a
- client save sent messages here.
- \Trash
- This mailbox is used to hold messages that have been deleted or
- marked for deletion. In some server implementations, this might
- be a virtual mailbox, containing messages from other mailboxes
- Leiba & Nicolson Standards Track [Page 4]
- RFC 6154 IMAP LIST: Special-Use Mailboxes March 2011
- that are marked with the "\Deleted" message flag.
- Alternatively, this might just be advice that a client that
- chooses not to use the IMAP "\Deleted" model should use this as
- its trash location. In server implementations that strictly
- expect the IMAP "\Deleted" model, this special use is likely not
- to be supported.
- All of the above attributes are OPTIONAL, and any given server or
- message store may support any combination of the attributes, or none
- at all. In most cases, there will likely be at most one mailbox with
- a given attribute for a given user, but in some server or message
- store implementations it might be possible for multiple mailboxes to
- have the same special-use attribute.
- Special-use attributes are likely to be user-specific. User Adam
- might share his \Sent mailbox with user Barb, but that mailbox is
- unlikely to also serve as Barb's \Sent mailbox. It's certainly
- possible for Adam and Barb to each set the \Sent use on the same
- mailbox, but that would be done by specific action (see the sections
- below).
- 3. Extension to IMAP CREATE Command to Set Special-Use Attributes
- As an OPTIONAL feature, a server MAY allow clients to designate a
- mailbox, at creation, as having one or more special uses. This
- extension defines the "USE" parameter to the IMAP CREATE command for
- that purpose (using the syntax defined in RFC 4466 section 2.2
- [RFC4466]). The new OPTIONAL "USE" parameter is followed by a
- parenthesized list of zero or more special-use attributes, as defined
- above.
- In some server implementations, some special uses may imply automatic
- action by the server. For example, creation of a "\Junk" mailbox
- might cause the server to start placing messages that have been
- evaluated as spam into the mailbox.
- In some server implementations, some special uses may result in a
- mailbox with unusual characteristics or side effects. For example,
- creation of an "\All" mailbox might cause the server to create a
- virtual mailbox, rather than a standard one, and that mailbox might
- behave in unexpected ways (COPY into it might fail, for example).
- Servers MAY allow the creation of a special-use mailbox even if one
- so designated already exists. This might have the effect of moving
- the special use from the old mailbox to the new one, or might create
- multiple mailboxes with the same special use. Alternatively, servers
- MAY refuse the creation, considering the designation to be a
- conflict.
- Leiba & Nicolson Standards Track [Page 5]
- RFC 6154 IMAP LIST: Special-Use Mailboxes March 2011
- If the server cannot create a mailbox with the designated special use
- defined, for whatever reason, it MUST NOT create the mailbox, and
- MUST respond to the CREATE command with a tagged NO response. If the
- reason for the failure is related to the special-use attribute (the
- specified special use is not supported or cannot be assigned to the
- specified mailbox), the server SHOULD include the new "USEATTR"
- response code in the tagged response (see Section 5.3 for an
- example).
- An IMAP server that supports this OPTIONAL feature will advertise the
- "CREATE-SPECIAL-USE" capability string. Clients MUST NOT use the
- "USE" parameter unless the server advertises the capability. Note
- that this capability string is different from the "SPECIAL-USE"
- string defined above, and a server that supports both functions MUST
- advertise both capability strings.
- 4. IMAP METADATA Entry for Special-Use Attributes
- If a server supports this extension and the METADATA extension
- [RFC5464], it SHOULD tie the special-use attributes for a mailbox to
- its metadata entry "/private/specialuse". The value of /private/
- specialuse is either NIL (if there are no special-use attributes for
- that mailbox) or a space-separated list of special-use attributes,
- presented the same way they would be presented in the LIST command
- response.
- Such a server MAY allow the setting of special-use attributes through
- the METADATA mechanisms, thereby allowing clients to change the
- special uses of existing mailboxes. These changes might have side
- effects, as the server automatically adjusts the special uses
- accordingly, just as it might do with CREATE USE, above. See
- Section 5.4 for an example.
- A server that supports this MUST check the validity of changes to the
- special-use attributes that are done through the metadata in the same
- way that it checks validity for the CREATE command and for any
- internal mechanisms for setting special uses on mailboxes. It MUST
- NOT just blindly accept setting of these metadata by clients, which
- might result in the setting of special uses that the implementation
- does not support, multiple mailboxes with the same special use, or
- other situations that the implementation considers invalid.
- Leiba & Nicolson Standards Track [Page 6]
- RFC 6154 IMAP LIST: Special-Use Mailboxes March 2011
- 5. Examples
- 5.1. Example of an IMAP LIST Command
- This example shows an IMAP LIST response from a server that supports
- this extension. Note that not all of the attributes are used. This
- server also supports the Child Mailbox extension [RFC3348].
- C: t1 LIST "" "%"
- S: * LIST (\Marked \HasNoChildren) "/" Inbox
- S: * LIST (\HasNoChildren) "/" ToDo
- S: * LIST (\HasChildren) "/" Projects
- S: * LIST (\Sent \HasNoChildren) "/" SentMail
- S: * LIST (\Marked \Drafts \HasNoChildren) "/" MyDrafts
- S: * LIST (\Trash \HasNoChildren) "/" Trash
- S: t1 OK done
- 5.2. Example of an Extended IMAP LIST Command
- This example shows an IMAP LIST response from a server that supports
- this extension. The client uses the extended IMAP LIST command.
- C: t1 CAPABILITY
- S: * CAPABILITY IMAP4rev1 SPECIAL-USE
- S: t1 OK done
- C: t2 LIST "" "%" RETURN (SPECIAL-USE)
- S: * LIST (\Marked) "/" Inbox
- S: * LIST () "/" ToDo
- S: * LIST () "/" Projects
- S: * LIST (\Sent) "/" SentMail
- S: * LIST (\Marked \Drafts) "/" MyDrafts
- S: * LIST (\Trash) "/" Trash
- S: t2 OK done
- Here, the client also includes the "SPECIAL-USE" selection option for
- the same list. The "SPECIAL-USE" return option could also have been
- specified, but it is unnecessary, as it is implied by the selection
- option. Note that in this case, mailboxes that do not have a
- special-use attribute are not listed. Also note that we've used the
- wildcard "*", rather than "%", to make sure we see all special-use
- mailboxes, even ones that might not be at the namespace's root.
- C: t3 LIST (SPECIAL-USE) "" "*"
- S: * LIST (\Sent) "/" SentMail
- S: * LIST (\Marked \Drafts) "/" MyDrafts
- S: * LIST (\Trash) "/" Trash
- S: t3 OK done
- Leiba & Nicolson Standards Track [Page 7]
- RFC 6154 IMAP LIST: Special-Use Mailboxes March 2011
- 5.3. Example of an IMAP CREATE Command
- This example shows an IMAP CREATE command that might be used to
- create a mailbox designated to hold draft and sent messages. It also
- attempts to create a mailbox that will contain all the user's
- messages, but the server does not support that special use for this
- user's message store.
- C: t1 CAPABILITY
- S: * CAPABILITY IMAP4rev1 CREATE-SPECIAL-USE
- S: t1 OK done
- C: t2 CREATE MySpecial (USE (\Drafts \Sent))
- S: t2 OK MySpecial created
- C: t3 CREATE Everything (USE (\All))
- S: t3 NO [USEATTR] \All not supported
- 5.4. Example of Using IMAP METADATA to Manipulate Special-Use
- Attributes
- This example shows how IMAP METADATA can be used to manipulate
- special-use attributes, if the operation is supported on the server.
- ==> Starting point:
- C: t1 LIST "" "%" RETURN (SPECIAL-USE)
- S: * LIST (\Sent) "/" SentMail
- S: * LIST (\Drafts) "/" MyDrafts
- S: * LIST () "/" SavedDrafts
- S: * LIST (\Trash) "/" Trash
- S: t1 OK done
- ==> Demonstrate the connection:
- C: t2 GETMETADATA "MyDrafts" /private/specialuse
- S: * METADATA "MyDrafts" (/private/specialuse "\\Drafts")
- S: t2 OK done
- ==> Set new use for SavedDrafts; MyDrafts changes automatically:
- C: t3 SETMETADATA "SavedDrafts" (/private/specialuse "\\Drafts")
- S: * METADATA "MyDrafts" (/private/specialuse NIL)
- S: t3 OK SETMETADATA complete
- ==> Remove special use for SentMail:
- C: t4 SETMETADATA "SentMail" (/private/specialuse NIL)
- S: t4 OK SETMETADATA complete
- Leiba & Nicolson Standards Track [Page 8]
- RFC 6154 IMAP LIST: Special-Use Mailboxes March 2011
- ==> Check the results:
- C: t5 LIST "" "%" RETURN (SPECIAL-USE)
- S: * LIST () "/" SentMail
- S: * LIST () "/" MyDrafts
- S: * LIST (\Drafts) "/" SavedDrafts
- S: * LIST (\Trash) "/" Trash
- S: t5 OK done
- 6. Formal Syntax
- The following syntax specification uses the augmented Backus-Naur
- Form (BNF) as described in [RFC5234].
- create-param =/ "USE" SP "(" [use-attr *(SP use-attr)] ")"
- ; Extends "create-param" from RFC 4466 [RFC4466]
- mbx-list-oflag =/ use-attr
- ; Extends "mbx-list-oflag" from IMAP base [RFC3501]
- list-select-independent-opt =/ "SPECIAL-USE"
- ; Extends "list-select-independent-opt" from
- ; LIST-extended [RFC5258]
- return-option =/ "SPECIAL-USE"
- ; Extends "return-option" from
- ; LIST-extended [RFC5258]
- resp-text-code =/ "USEATTR"
- ; Extends "resp-text-code" from
- ; IMAP [RFC3501]
- use-attr = "\All" / "\Archive" / "\Drafts" / "\Flagged" /
- "\Junk" / "\Sent" / "\Trash" / use-attr-ext
- use-attr-ext = "\" atom
- ; Reserved for future extensions. Clients
- ; MUST ignore list attributes they do not understand
- ; Server implementations MUST NOT generate
- ; extension attributes except as defined by
- ; future Standards-Track revisions of or
- ; extensions to this specification.
- 7. Security Considerations
- LIST response:
- Conveying special-use information to a client exposes a small bit of
- extra information that could be of value to an attacker. Knowing,
- for example, that a particular mailbox (\All) contains pointers to
- Leiba & Nicolson Standards Track [Page 9]
- RFC 6154 IMAP LIST: Special-Use Mailboxes March 2011
- every message the user has might be of particular value. If the IMAP
- channel is not protected from passive eavesdropping, this could be an
- issue.
- CREATE command "USE" parameter and metadata extension: In some server
- implementations, some special uses may imply automatic action by the
- server. For example, creation of a "\Junk" mailbox might cause the
- server to start placing messages that have been evaluated as spam
- into the mailbox. Implementors SHOULD consider the consequences of
- allowing a user (or client program) to designate the target of such
- automatic action.
- Example: If a user is allowed to give the "\Junk" attribute to a
- shared mailbox, legitimate mail that's misclassified as junk (false
- positives) will be put into that shared mailbox, exposing the user's
- private mail to others. The server might warn a user of that
- possibility, or might refuse to allow the specification to be made on
- a shared mailbox. (Note that this problem exists independent of this
- specification, if the server allows a user to share a mailbox that's
- already in use for such a function.)
- 8. IANA Considerations
- 8.1. Registration of USEATTR IMAP Response Code
- This document defines a new IMAP response code, "USEATTR", which IANA
- added to the IMAP Response Codes registry.
- 8.2. Registration of CREATE-SPECIAL-USE IMAP Capability
- This document defines a new IMAP capability, "CREATE-SPECIAL-USE",
- which IANA added to the IMAP 4 Capabilities registry.
- 8.3. Registration of SPECIAL-USE IMAP Capability
- This document defines a new IMAP capability, "SPECIAL-USE", which
- IANA added to the IMAP 4 Capabilities registry.
- 8.4. Registration of SPECIAL-USE Selection Option
- This document defines a new IMAP4 List Extended selection option,
- "SPECIAL-USE", which IANA added to the IMAP4 List Extended registry,
- as follows:
- To: iana@iana.org
- Subject: Registration of LIST-EXTENDED selection option SPECIAL-USE
- LIST-EXTENDED option name: SPECIAL-USE
- LIST-EXTENDED option type: SELECTION
- Leiba & Nicolson Standards Track [Page 10]
- RFC 6154 IMAP LIST: Special-Use Mailboxes March 2011
- Implied return option(s): SPECIAL-USE
- LIST-EXTENDED option description: Limit the list to special-use
- mailboxes only
- Published specification: RFC 6154
- Security considerations: none
- Intended usage: COMMON
- Person and email address to contact for further information: Authors'
- Addresses at the end of RFC 6154
- Owner/Change controller: iesg@ietf.org
- 8.5. Registration of SPECIAL-USE Return Option
- This document defines a new IMAP4 List Extended return option,
- "SPECIAL-USE", which IANA added to the IMAP4 List Extended registry,
- as follows:
- To: iana@iana.org
- Subject: Registration of LIST-EXTENDED return option SPECIAL-USE
- LIST-EXTENDED option name: SPECIAL-USE
- LIST-EXTENDED option type: RETURN
- LIST-EXTENDED option description: Request special-use mailbox
- information
- Published specification: RFC 6154
- Security considerations: none
- Intended usage: COMMON
- Person and email address to contact for further information: Authors'
- Addresses at the end of RFC 6154
- Owner/Change controller: iesg@ietf.org
- 8.6. Registration of SPECIAL-USE Metadata
- This document defines a new IMAP METADATA entry. IANA added the
- following to the IMAP METADATA Mailbox Entry registry:
- To: iana@iana.org
- Subject: IMAP METADATA Entry Registration
- Type: Mailbox
- Name: /private/specialuse
- Description: Defines any special-use features of a mailbox. See the
- reference specification for details of its use.
- Content-type: text/plain; charset=us-ascii
- RFC Number: RFC 6154
- Contact: MORG mailing list mailto:morg@ietf.org
- Leiba & Nicolson Standards Track [Page 11]
- RFC 6154 IMAP LIST: Special-Use Mailboxes March 2011
- 9. References
- 9.1. Normative References
- [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
- Requirement Levels", BCP 14, RFC 2119, March 1997.
- [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
- 4rev1", RFC 3501, March 2003.
- [RFC4466] Melnikov, A. and C. Daboo, "Collected Extensions to IMAP4
- ABNF", RFC 4466, April 2006.
- [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
- Specifications: ABNF", STD 68, RFC 5234, January 2008.
- [RFC5258] Leiba, B. and A. Melnikov, "Internet Message Access
- Protocol version 4 - LIST Command Extensions", RFC 5258,
- June 2008.
- [RFC5464] Daboo, C., "The IMAP METADATA Extension", RFC 5464,
- February 2009.
- 9.2. Informative References
- [RFC3348] Gahrns, M. and R. Cheng, "The Internet Message Action
- Protocol (IMAP4) Child Mailbox Extension", RFC 3348,
- July 2002.
- Authors' Addresses
- Barry Leiba
- Huawei Technologies
- Phone: +1 646 827 0648
- EMail: barryleiba@computer.org
- URI: http://internetmessagingtechnology.org/
- Jamie Nicolson
- Google
- EMail: nicolson@google.com
- Leiba & Nicolson Standards Track [Page 12]
|