RFC 8457
IMAP "$Important" Keyword and "\Important" Special-Use Attribute
RFC 8457: IMAP "$Important" Keyword and "\Important" Special-Use Attribute π
Okay bestie, this is RFC 8457 π. It's written by B. Leiba, Ed. from Huawei Technologies, and it's on the Standards Track (so it's an actual Internet standard, not just vibes). It came out in September 2018 and has ISSN 2070-1721. The title block doesn't list any RFCs it obsoletes or updates, so it's not replacing anything π«Ά. It's all about IMAP, the protocol your email app uses to talk to the mail server π¬.
Abstract β¨
Okay so, RFC 6154 made an IMAP special-use LIST extension and defined a first set of attributes π
. This document adds a new attribute, \Important, and sets up a brand-new IANA registry for IMAP folder attributes. That registry holds the attributes from RFCs 5258, 3501, and 6154 too, so they all live in one place ποΈ. It also adds a new IMAP keyword, $Important, and registers it in the registry from RFC 5788 π₯.
Status of This Memo πΈ
This is an Internet Standards Track document, so it's official πΌ.
It's a product of the Internet Engineering Task Force (IETF) and represents the consensus of the IETF community π«. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG) β . If you want more on Internet Standards, check Section 2 of RFC 7841 π§.
For the current status, any errata, and how to give feedback, go to https://www.rfc-editor.org/info/rfc8457 π.
Copyright Notice π
Copyright (c) 2018 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 (https://trustee.ietf.org/license-info) as they stand on the publication date. Please read these carefully, because they explain your rights and restrictions for this document π. Code Components pulled out of this document must include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions. They come without warranty, as the Simplified BSD License describes π.
Table of Contents π
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Conventions Used in This Document . . . . . . . . . . . . . 3
2. Definition of the "$Important" Message Keyword . . . . . . . 3
3. Definition of the 'Important' Mailbox Attribute . . . . . . . 3
3.1. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2.1. Example of a LIST Response . . . . . . . . . . . . . . . 4
3.2.2. Examples of Creating a New Mailbox Using "\Important" . . 4
4. Implementation Notes . . . . . . . . . . . . . . . . . . . . 5
5. Security Considerations . . . . . . . . . . . . . . . . . . . 5
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6
6.1. Registration of the "$Important" Keyword . . . . . . . . . 6
6.2. Creation of the IMAP Mailbox Name Attributes Registry . . . 7
6.2.1. Instructions to the Designated Expert . . . . . . . . . . 8
6.3. Initial Entries for the IMAP Mailbox Name Attributes
Registry . . . . . . . . . . . . . . . . . . . . . . . . . 9
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.1. Normative References . . . . . . . . . . . . . . . . . . . 10
7.2. Informative References . . . . . . . . . . . . . . . . . . 10
Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 11
1. Introduction β¨
Okay so the Internet Message Access Protocol (IMAP) spec, [RFC3501], defines how message keywords work, and the "IMAP Keywords" registry was made in [RFC5788] ποΈ. [RFC6154] adds an extension to the IMAP LIST command for special-use mailboxes π¦. That lets servers share extra info (attributes) about what a mailbox is for, and it defines a first set of special-use attributes π¦.
This document does the following:
- defines a new message keyword,
$Important, for messages that are considered important to the user by some externally defined criteria π; - registers the
$Importantkeyword in the "IMAP Keywords" registry π; - defines a new special-use attribute,
\Important, to mark a mailbox that holds messages considered important to the user by some externally defined criteria π; and - creates a registry for IMAP mailbox attributes and registers the new attribute along with the ones defined in [RFC5258], [RFC3501], and [RFC6154] ποΈ.
1.1. Conventions Used in This Document π
In this doc's examples, C: means lines sent by a client connected to a server, and S: means lines the server sends back to the client π¬.
2. Definition of the "$Important" Message Keyword π
The $Important keyword is a signal that a message is likely important to the user π¨. It's generally expected to be set automatically by the system, using whatever signals are available. Those can be things like who sent the message, who else it's addressed to, how the subject or content looks, or other heuristics π§ . The keyword can also be set by the user, but that's not expected to be the main way it gets used π.
It's different from the \Flagged system flag in two ways:
$Importantmeans general importance, not follow-up or urgency π. It's meant for a kind of triage, while\Flaggedstays for special attention, follow-up, or time sensitivity β°. The point of$Importantis that other messages that are "like this one," according to some server-applied heuristics, will also get$Importantπͺ.- Setting
$Importantis expected to be based at least partly on heuristics, and the server usually sets it automatically π€.\Flagged, on the other hand, is only meant to be set by the user through some "flag this message" or "put a star on this message" interface β.
3. Definition of the 'Important' Mailbox Attribute π¦
The \Important mailbox attribute is a signal that the mailbox holds messages that are likely important to the user π«. On an implementation that also supports the $Important keyword, this special use will probably be a virtual mailbox that collects messages from other mailboxes marked with $Important π. Other implementations might just put messages there automatically, using the same kinds of heuristics noted for $Important (see Section 2) π§. The differences between \Important and \Flagged for mailboxes are like the ones between $Important and \Flagged for messages π
.
3.1. Formal Syntax πΈ
This syntax spec adds to the one in Section 6 of [RFC6154], using Augmented Backus-Naur Form (ABNF) as described in [RFC5234]. Also be sure to check the ABNF notes at the start of Section 9 of [RFC3501] π.
use-attr =/ "\Important"
3.2. Examples π¬
3.2.1. Example of a LIST Response π
In this example, the mailbox called "Important Messages" is the one with the \Important attribute π«.
C: t1 LIST "" "Imp*"
S: * LIST (\HasNoChildren \Important) "/" "Important Messages"
S: * LIST (\HasNoChildren) "/" "Imported Wine"
S: t1 OK Success
3.2.2. Examples of Creating a New Mailbox Using "\Important" π οΈ
In this example, the "Important Messages" mailbox gets created with the \Important attribute on a server that advertises the CREATE-SPECIAL-USE capability string π.
C: t1 CREATE "Important Messages" (USE (\Important))
S: t1 OK Mailbox created
Next up, it's basically the same thing, but the server can't assign \Important to the new mailbox π¬.
C: t1 CREATE "Important Messages" (USE (\Important))
S: t1 NO [USEATTR] An \Important mailbox already exists
And here's one more, same idea, but this server doesn't support this extension at all π.
C: t1 CREATE "Important Messages" (USE (\Important))
S: t1 NO [USEATTR] Mailbox not created; unsupported use \Important
In both of the failure examples, the USEATTR response code tells the client the problem is in the USE parameters π. Here's the tea β: both cases send the same response code, so the human-readable text is the only way to tell them apart. And that text isn't parsable by the client, so it can only be logged or shown to the user π« .
6.1. Registration of the "$Important" Keyword β¨
okay so IANA already registered the $Important keyword in the "IMAP Keywords" registry, using the template from [RFC5788]. here's the whole entry, bestie π
IMAP keyword name: $Important
Purpose (description): The "$Important" keyword is a signal that a
message is likely important to the user.
Private or Shared on a server: PRIVATE
Is it an advisory keyword or may it cause an automatic action:
Advisory (but see the reference for details).
When/by whom the keyword is set/cleared: The keyword can be set by
the user, or automatically by the system based on available
signals (such as who the message is from, who else the message
is addressed to, evaluation of the subject or content, or other
heuristics).
Related keywords: None (see the reference for the related mailbox
name attribute).
Related IMAP capabilities: None.
Security considerations: See Section 5 of RFC 8457.
Published specification: RFC 8457
Person & email address to contact for further information:
IETF Applications and Real-Time Area <art@ietf.org>
Intended usage: COMMON
Owner/Change controller: IESG
Note: None.
6.2. Creation of the IMAP Mailbox Name Attributes Registry π¦
IANA also made a brand-new registry in the "Internet Message Access Protocol (IMAP)" group, and it's called "IMAP Mailbox Name Attributes" π . It has two references: "RFC 3501, Section 7.2.2" and "RFC 8457, Section 6". This registry is going to be shared with JMAP for Mail [JMAP-MAIL], so both protocols can use the same list π.
Every entry in the registry has these four fields:
- Attribute Name
- Description
- Reference
- Usage Notes
IANA keeps the list in alphabetical order by Attribute Name. The names are registered without the initial backslash (""), and they're usually written with initial capital letters. They're treated as case-insensitive US-ASCII strings, so no drama there β¨.
The Usage Notes field is free-form US-ASCII text. It's usually empty (and stays empty if the registration request doesn't mention it). It's meant to hold things like "not used by JMAP" and "JMAP only" π. This field is for humans to read, so there's no separate registry of the strings that can go in there, which is very chill π«Ά.
The registration policy for this registry is listed as "IETF Review" or "Expert Review" [RFC8126], and new registrations get accepted in one of two ways:
- For registrations requested in an IETF consensus document, the registration policy is IETF Review. The request is made in the IANA Considerations section of that document, and it gives the requested value for each field.
- For everything else, the policy is Expert Review (see Section 6.2.1). The request is made by emailing IANA, asking for a new IMAP Mailbox Name Attribute and giving the requested value for each field. A formal specification isn't required, but the reference document should describe the proposed attribute well enough that people can build interoperable implementations π§. An Informational RFC (submitted, for example, through the IETF or Independent stream) is a fine way to publish that reference document π.
6.2.1. Instructions to the Designated Expert π
The expert reviewer is designated by the IESG, and their job is to give the requested registration a general review π₯. They check that the reference and description are good enough to understand what the registered attribute is for. People should also try to generalize what an attribute means, so that several implementations with the same needs can reuse an attribute that already exists πΈ.
Apart from that check, this policy is basically first come, first served, and the expert should not block serious registration requests that come with a reasonable reference π . The reference can be any form of documentation, including a web page, but it's worth aiming for something that's expected to be long-lived and stable π.
6.3. Initial Entries for the IMAP Mailbox Name Attributes Registry π
The registry starts out with these entries (the rows with a "*" have their Usage Notes set to "not used by JMAP"):
+===============+===================================+===========+
| Attribute | Description | Reference |
| Name | | |
+===============+===================================+===========+
| All | All messages | [RFC6154] |
+---------------+-----------------------------------+-----------+
| Archive | Archived messages | [RFC6154] |
+---------------+-----------------------------------+-----------+
| Drafts | Messages that are working drafts | [RFC6154] |
+---------------+-----------------------------------+-----------+
| Flagged | Messages with the \Flagged flag | [RFC6154] |
+---------------+-----------------------------------+-----------+
| HasChildren | Has accessible child mailboxes | [RFC5258] | *
+---------------+-----------------------------------+-----------+
| HasNoChildren | Has no accessible child mailboxes | [RFC5258] | *
+---------------+-----------------------------------+-----------+
| Important | Messages deemed important to user | RFC 8457 |
+---------------+-----------------------------------+-----------+
| Junk | Messages identified as Spam/Junk | [RFC6154] |
+---------------+-----------------------------------+-----------+
| Marked | Server has marked the mailbox as | [RFC3501] | *
| | "interesting" | |
+---------------+-----------------------------------+-----------+
| NoInferiors | No hierarchy under this name | [RFC3501] | *
+---------------+-----------------------------------+-----------+
| NonExistent | The mailbox name doesn't actually | [RFC5258] | *
| | exist | |
+---------------+-----------------------------------+-----------+
| Noselect | The mailbox is not selectable | [RFC3501] | *
+---------------+-----------------------------------+-----------+
| Remote | The mailbox exists on a remote | [RFC5258] | *
| | server | |
+---------------+-----------------------------------+-----------+
| Sent | Sent mail | [RFC6154] |
+---------------+-----------------------------------+-----------+
| Subscribed | The mailbox is subscribed to | [RFC5258] |
+---------------+-----------------------------------+-----------+
| Trash | Messages the user has discarded | [RFC6154] |
+---------------+-----------------------------------+-----------+
| Unmarked | No new messages since last select | [RFC3501] | *
+===============+===================================+===========+
7. References π
7.1. Normative References
[RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
4rev1", RFC 3501, DOI 10.17487/RFC3501, March 2003,
<https://www.rfc-editor.org/info/rfc3501>.
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", STD 68, RFC 5234,
DOI 10.17487/RFC5234, January 2008,
<https://www.rfc-editor.org/info/rfc5234>.
[RFC6154] Leiba, B. and J. Nicolson, "IMAP LIST Extension for
Special-Use Mailboxes", RFC 6154, DOI 10.17487/RFC6154,
March 2011, <https://www.rfc-editor.org/info/rfc6154>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>.
7.2. Informative References
[JMAP-MAIL]
Jenkins, N. and C. Newman, "JMAP for Mail", Work in
Progress, draft-ietf-jmap-mail-07, August 2018.
[RFC5258] Leiba, B. and A. Melnikov, "Internet Message Access
Protocol version 4 - LIST Command Extensions", RFC 5258,
DOI 10.17487/RFC5258, June 2008,
<https://www.rfc-editor.org/info/rfc5258>.
[RFC5788] Melnikov, A. and D. Cridland, "IMAP4 Keyword Registry",
RFC 5788, DOI 10.17487/RFC5788, March 2010,
<https://www.rfc-editor.org/info/rfc5788>.
Contributors π«Ά
The following author was an original contributor to this document in
addition to the editor.
Eric "Iceman"
Google
Email: iceman@google.com
Author's Address π
Barry Leiba (editor)
Huawei Technologies
Phone: +1 646 827 0648
Email: barryleiba@computer.org
URI: http://internetmessagingtechnology.org/
that's the whole spec, bestie ππ we're literally done!!
π¦ where this page comes from
- ietf: rfc8457 2018-09
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms