| rfc9979.original | rfc9979.txt | |||
|---|---|---|---|---|
| MailMaint N.M. Jenkins | Internet Engineering Task Force (IETF) N. Jenkins | |||
| Internet-Draft Fastmail | Request for Comments: 9979 Fastmail | |||
| Intended status: Informational D. Eggert | Category: Informational D. Eggert | |||
| Expires: 9 July 2026 Apple Inc | ISSN: 2070-1721 Apple, Inc | |||
| 5 January 2026 | May 2026 | |||
| Registration of further IMAP/JMAP keywords and mailbox name attributes | Registration of Further IMAP/JMAP Keywords and Mailbox Name Attributes | |||
| draft-ietf-mailmaint-messageflag-mailboxattribute-14 | ||||
| Abstract | Abstract | |||
| This document defines a number of keywords and mailbox name | This document defines a number of keywords and mailbox name | |||
| attributes that have been in use across different server and client | attributes that have been in use across different server and client | |||
| implementations. It defines the intended use of these keywords and | implementations. It defines the intended use of these keywords and | |||
| mailbox name attributes. This document registers all of these with | mailbox name attributes. This document registers all of these with | |||
| IANA to avoid name collisions. | IANA to avoid name collisions. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This document is not an Internet Standards Track specification; it is | |||
| provisions of BCP 78 and BCP 79. | published for informational purposes. | |||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Not all documents | |||
| approved by the IESG are candidates for any level of Internet | ||||
| Standard; see Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 9 July 2026. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9979. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2026 IETF Trust and the persons identified as the | Copyright (c) 2026 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
| 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 | 2. Requirements Language | |||
| 3. Flag Color Keywords . . . . . . . . . . . . . . . . . . . . . 4 | 3. Flag Color Keywords | |||
| 3.1. Definition of the $MailFlagBit_ Message Keywords . . . . 4 | 3.1. Definition of the $MailFlagBit_ Message Keywords | |||
| 3.2. Implementation Notes . . . . . . . . . . . . . . . . . . 5 | 3.2. Implementation Notes | |||
| 4. Attachment Detection Keywords . . . . . . . . . . . . . . . . 5 | 4. Attachment Detection Keywords | |||
| 4.1. $hasattachment . . . . . . . . . . . . . . . . . . . . . 5 | 4.1. $hasattachment | |||
| 4.2. $hasnoattachment . . . . . . . . . . . . . . . . . . . . 6 | 4.2. $hasnoattachment | |||
| 5. Memos Keywords . . . . . . . . . . . . . . . . . . . . . . . 6 | 5. Memos Keywords | |||
| 5.1. $hasmemo . . . . . . . . . . . . . . . . . . . . . . . . 6 | 5.1. $hasmemo | |||
| 5.2. $memo . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 5.2. $memo | |||
| 6. Subscription Management Keywords . . . . . . . . . . . . . . 7 | 6. Subscription Management Keywords | |||
| 6.1. $canunsubscribe . . . . . . . . . . . . . . . . . . . . . 7 | 6.1. $canunsubscribe | |||
| 6.2. $unsubscribed . . . . . . . . . . . . . . . . . . . . . . 8 | 6.2. $unsubscribed | |||
| 7. Other Message Keywords . . . . . . . . . . . . . . . . . . . 8 | 7. Other Message Keywords | |||
| 7.1. $autosent . . . . . . . . . . . . . . . . . . . . . . . . 8 | 7.1. $autosent | |||
| 7.2. $followed . . . . . . . . . . . . . . . . . . . . . . . . 9 | 7.2. $followed | |||
| 7.3. $imported . . . . . . . . . . . . . . . . . . . . . . . . 9 | 7.3. $imported | |||
| 7.4. $istrusted . . . . . . . . . . . . . . . . . . . . . . . 9 | 7.4. $istrusted | |||
| 7.5. $maskedemail . . . . . . . . . . . . . . . . . . . . . . 10 | 7.5. $maskedemail | |||
| 7.6. $muted . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 7.6. $muted | |||
| 7.7. $new . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 7.7. $new | |||
| 7.8. $notify . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 7.8. $notify | |||
| 8. Mailbox Name Attributes . . . . . . . . . . . . . . . . . . . 12 | 8. Mailbox Name Attributes | |||
| 8.1. Snoozed . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 8.1. Snoozed | |||
| 8.2. Scheduled . . . . . . . . . . . . . . . . . . . . . . . . 13 | 8.2. Scheduled | |||
| 8.3. Memos . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 8.3. Memos | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 9. IANA Considerations | |||
| 9.1. IMAP/JMAP Keyword Registrations . . . . . . . . . . . . . 14 | 9.1. IMAP/JMAP Keyword Registrations | |||
| 9.1.1. $autosent keyword registration . . . . . . . . . . . 14 | 9.1.1. $autosent Keyword Registration | |||
| 9.1.2. $canunsubscribe keyword registration . . . . . . . . 14 | 9.1.2. $canunsubscribe Keyword Registration | |||
| 9.1.3. $followed keyword registration . . . . . . . . . . . 14 | 9.1.3. $followed Keyword Registration | |||
| 9.1.4. $hasattachment keyword registration . . . . . . . . . 15 | 9.1.4. $hasattachment Keyword Registration | |||
| 9.1.5. $hasmemo keyword registration . . . . . . . . . . . . 15 | 9.1.5. $hasmemo Keyword Registration | |||
| 9.1.6. $hasnoattachment keyword registration . . . . . . . . 16 | 9.1.6. $hasnoattachment Keyword Registration | |||
| 9.1.7. $imported keyword registration . . . . . . . . . . . 16 | 9.1.7. $imported Keyword Registration | |||
| 9.1.8. $istrusted keyword registration . . . . . . . . . . . 16 | 9.1.8. $istrusted Keyword Registration | |||
| 9.1.9. $MailFlagBit0 keyword registration . . . . . . . . . 17 | 9.1.9. $MailFlagBit0 Keyword Registration | |||
| 9.1.10. $MailFlagBit1 keyword registration . . . . . . . . . 17 | 9.1.10. $MailFlagBit1 Keyword Registration | |||
| 9.1.11. $MailFlagBit2 keyword registration . . . . . . . . . 18 | 9.1.11. $MailFlagBit2 Keyword Registration | |||
| 9.1.12. $maskedemail keyword registration . . . . . . . . . . 18 | 9.1.12. $maskedemail Keyword Registration | |||
| 9.1.13. $memo keyword registration . . . . . . . . . . . . . 18 | 9.1.13. $memo Keyword Registration | |||
| 9.1.14. $muted keyword registration . . . . . . . . . . . . . 19 | 9.1.14. $muted Keyword Registration | |||
| 9.1.15. $new keyword registration . . . . . . . . . . . . . . 19 | 9.1.15. $new Keyword Registration | |||
| 9.1.16. $notify keyword registration . . . . . . . . . . . . 20 | 9.1.16. $notify Keyword Registration | |||
| 9.1.17. $unsubscribed keyword registration . . . . . . . . . 20 | 9.1.17. $unsubscribed Keyword Registration | |||
| 9.2. IMAP Mailbox Name Attributes Registrations | ||||
| 9.2. IMAP Mailbox Name Attributes Registrations . . . . . . . 21 | 9.2.1. Snoozed Mailbox Name Attribute Registration | |||
| 9.2.1. Snoozed mailbox name attribute registration . . . . . 21 | 9.2.2. Scheduled Mailbox Name Attribute Registration | |||
| 9.2.2. Scheduled mailbox name attribute registration . . . . 21 | 9.2.3. Memos Mailbox Name Attribute Registration | |||
| 9.2.3. Memos mailbox name attribute registration . . . . . . 21 | 10. Security Considerations | |||
| 10. Security Considerations . . . . . . . . . . . . . . . . . . . 21 | 11. Normative References | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 | Authors' Addresses | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . 22 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | ||||
| 1. Introduction | 1. Introduction | |||
| The Internet Message Access Protocol (IMAP) specification [RFC9051] | The Internet Message Access Protocol (IMAP) specification [RFC9051] | |||
| defines the use of message keywords, and an "IMAP and JMAP Keywords" | defines the use of message keywords, and [RFC5788] describes the | |||
| registry is created in [RFC5788]. Similarly [RFC8457] creates an | creation of the "IMAP and JMAP Keywords" registry. Similarly, | |||
| "IMAP Mailbox Name Attributes Registry". JMAP Mail [RFC8621] updated | [RFC8457] describes the creation of the "IMAP Mailbox Name | |||
| these registries to apply to messages and mailboxes over the JMAP | Attributes" registry. [RFC8621] updates these registries to apply to | |||
| protocol as well. | messages and mailboxes over the JMAP as well. | |||
| This document defines 17 message keywords: | This document defines 17 message keywords: | |||
| $autosent | * $autosent | |||
| $canunsubscribe | ||||
| $followed | ||||
| $hasattachment | ||||
| $hasmemo | ||||
| $hasnoattachment | ||||
| $imported | ||||
| $istrusted | ||||
| $MailFlagBit0 | ||||
| $MailFlagBit1 | ||||
| $MailFlagBit2 | ||||
| $maskedemail | ||||
| $memo | ||||
| $muted | ||||
| $new | ||||
| $notify | ||||
| $unsubscribed | ||||
| And defines 3 mailbox name attributes: | * $canunsubscribe | |||
| Memos | * $followed | |||
| Scheduled | ||||
| Snoozed | * $hasattachment | |||
| * $hasmemo | ||||
| * $hasnoattachment | ||||
| * $imported | ||||
| * $istrusted | ||||
| * $MailFlagBit0 | ||||
| * $MailFlagBit1 | ||||
| * $MailFlagBit2 | ||||
| * $maskedemail | ||||
| * $memo | ||||
| * $muted | ||||
| * $new | ||||
| * $notify | ||||
| * $unsubscribed | ||||
| And defines three mailbox name attributes: | ||||
| * Memos | ||||
| * Scheduled | ||||
| * Snoozed | ||||
| This document also registers these in the "IMAP and JMAP Keywords" | This document also registers these in the "IMAP and JMAP Keywords" | |||
| registry and "IMAP Mailbox Name Attributes" registry. | registry and "IMAP Mailbox Name Attributes" registry. | |||
| 2. Requirements Language | 2. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 3. Flag Color Keywords | 3. Flag Color Keywords | |||
| The Internet Message Access Protocol (IMAP) specification [RFC9051] | The Internet Message Access Protocol (IMAP) specification [RFC9051] | |||
| defines a \Flagged system flag to mark a message for urgent/special | defines a \Flagged system flag to mark a message as urgent / in need | |||
| attention. The new keywords defined in Section 3.1 allow such a | of special attention. The new keywords defined in Section 3.1 allow | |||
| flagged message to have that flag be of one of 7 colors. | such a flagged message to have that flag be of one of seven colors. | |||
| 3.1. Definition of the $MailFlagBit_ Message Keywords | 3.1. Definition of the $MailFlagBit_ Message Keywords | |||
| The 3 flag color keywords | The three flag color keywords: | |||
| $MailFlagBit0 | * $MailFlagBit0 | |||
| $MailFlagBit1 | ||||
| $MailFlagBit2 | * $MailFlagBit1 | |||
| * $MailFlagBit2 | ||||
| make up a bit pattern that defines the color of the flag as such: | make up a bit pattern that defines the color of the flag as such: | |||
| +=======+=======+=======+========+ | +=======+=======+=======+========+ | |||
| | Bit 0 | Bit 1 | Bit 2 | Color | | | Bit 0 | Bit 1 | Bit 2 | Color | | |||
| +=======+=======+=======+========+ | +=======+=======+=======+========+ | |||
| | 0 | 0 | 0 | red | | | 0 | 0 | 0 | red | | |||
| +-------+-------+-------+--------+ | +-------+-------+-------+--------+ | |||
| | 1 | 0 | 0 | orange | | | 1 | 0 | 0 | orange | | |||
| +-------+-------+-------+--------+ | +-------+-------+-------+--------+ | |||
| skipping to change at page 4, line 51 ¶ | skipping to change at line 209 ¶ | |||
| | 0 | 0 | 1 | blue | | | 0 | 0 | 1 | blue | | |||
| +-------+-------+-------+--------+ | +-------+-------+-------+--------+ | |||
| | 1 | 0 | 1 | purple | | | 1 | 0 | 1 | purple | | |||
| +-------+-------+-------+--------+ | +-------+-------+-------+--------+ | |||
| | 0 | 1 | 1 | gray | | | 0 | 1 | 1 | gray | | |||
| +-------+-------+-------+--------+ | +-------+-------+-------+--------+ | |||
| Table 1: Flag Colors | Table 1: Flag Colors | |||
| Note that the bit combination 111 (all three bits set) is not | Note that the bit combination 111 (all three bits set) is not | |||
| assigned a color, resulting in 7 distinct flag colors instead of 8 | assigned a color, resulting in seven distinct flag colors instead of | |||
| possible combinations. | eight possible combinations. | |||
| These flags MUST be ignored if the \Flagged system flag is not set. | These flags MUST be ignored if the \Flagged system flag is not set. | |||
| If the \Flagged system flag is set, the flagged status MAY be | If the \Flagged system flag is set, the flagged status MAY be | |||
| presented to the user in the color corresponding to the combination | presented to the user in the color corresponding to the combination | |||
| of the 3 flag color keywords. | of the three flag color keywords. | |||
| 3.2. Implementation Notes | 3.2. Implementation Notes | |||
| A mail client that is aware of these flag color keywords MUST clear | A mail client that is aware of these flag color keywords MUST clear | |||
| all 3 flag color keywords when the user unflags the message, i.e. | all three flag color keywords when the user unflags the message, | |||
| when clearing the \Flagged system flag, all 3 flag color keywords | i.e., when clearing the \Flagged system flag, all three flag color | |||
| MUST also be cleared. | keywords MUST also be cleared. | |||
| A mail client MUST NOT set any of these flags unless the \Flagged | A mail client MUST NOT set any of these flags unless the \Flagged | |||
| system flag is already set or is being set. | system flag is already set or is being set. | |||
| Servers MAY clear these flag color keywords when a client clears the | Servers MAY clear these flag color keywords when a client clears the | |||
| \Flagged system flag. | \Flagged system flag. | |||
| While these keywords are defined in terms of colors, clients SHOULD | While these keywords are defined in terms of colors, clients SHOULD | |||
| provide alternatives for users who cannot perceive colors. This | provide alternatives for users who cannot perceive colors. This | |||
| could include using different shapes, patterns, text labels, audio | could include using different shapes, patterns, text labels, audio | |||
| skipping to change at page 5, line 44 ¶ | skipping to change at line 251 ¶ | |||
| message structure. This is particularly useful for displaying | message structure. This is particularly useful for displaying | |||
| attachment indicators in message lists or implementing attachment- | attachment indicators in message lists or implementing attachment- | |||
| based filtering. | based filtering. | |||
| The $hasattachment and $hasnoattachment keywords are mutually | The $hasattachment and $hasnoattachment keywords are mutually | |||
| exclusive. A message MUST NOT have both keywords set simultaneously. | exclusive. A message MUST NOT have both keywords set simultaneously. | |||
| 4.1. $hasattachment | 4.1. $hasattachment | |||
| The $hasattachment keyword indicates that a message has one or more | The $hasattachment keyword indicates that a message has one or more | |||
| attachments. It is set by the server during message delivery, or by | attachments. It is set by the server during message delivery or by | |||
| the client (if neither $hasattachment nor $hasnoattachment are | the client (if neither $hasattachment nor $hasnoattachment is | |||
| currently set). | currently set). | |||
| This keyword enables clients to indicate attachments (e.g., paperclip | This keyword enables clients to indicate attachments (e.g., paperclip | |||
| icons) in message lists without having to fetch the full MIME | icons) in message lists without having to fetch the full MIME | |||
| structure for each message. It also facilitates attachment-based | structure for each message. It also facilitates attachment-based | |||
| filtering and search operations. | filtering and search operations. | |||
| When using JMAP, the "hasAttachment" Email property MUST reflect the | When using JMAP, the "hasAttachment" Email property MUST reflect the | |||
| same information as this keyword for consistency across protocols. | same information as this keyword for consistency across protocols. | |||
| 4.2. $hasnoattachment | 4.2. $hasnoattachment | |||
| The $hasnoattachment keyword explicitly indicates that a message does | The $hasnoattachment keyword explicitly indicates that a message does | |||
| not have any attachments. It is set by the server during message | not have any attachments. It is set by the server during message | |||
| delivery, or by the client (if neither $hasattachment nor | delivery or by the client (if neither $hasattachment nor | |||
| $hasnoattachment are currently set). | $hasnoattachment is currently set). | |||
| This keyword complements $hasattachment by providing definitive | This keyword complements $hasattachment by providing definitive | |||
| information about messages that have been analyzed but found to | information about messages that have been analyzed but found to | |||
| contain no attachments. The absence of $hasattachment alone is | contain no attachments. The absence of $hasattachment alone is | |||
| inconclusive, as it might simply mean the message hasn't been | inconclusive, as it might simply mean the message hasn't been | |||
| processed for attachment detection. | processed for attachment detection. | |||
| This explicit distinction is important for clients that need to know | This explicit distinction is important for clients that need to know | |||
| whether attachment detection has been performed on a message. When | whether attachment detection has been performed on a message. When | |||
| using JMAP, the "hasAttachment" Email property MUST reflect the same | using JMAP, the "hasAttachment" Email property MUST reflect the same | |||
| skipping to change at page 7, line 17 ¶ | skipping to change at line 321 ¶ | |||
| indicators in message lists to indicate which messages have memos, | indicators in message lists to indicate which messages have memos, | |||
| and helps clients decide whether to fetch entire conversation threads | and helps clients decide whether to fetch entire conversation threads | |||
| when loading a mailbox to ensure memos are properly presented. | when loading a mailbox to ensure memos are properly presented. | |||
| 5.2. $memo | 5.2. $memo | |||
| The $memo keyword identifies a message as a note-to-self created by | The $memo keyword identifies a message as a note-to-self created by | |||
| the user regarding another message in the same thread. It allows for | the user regarding another message in the same thread. It allows for | |||
| contextual annotations to be added to conversations. | contextual annotations to be added to conversations. | |||
| Messages with this keyword should be constructed similar to a reply | Messages with this keyword should be constructed similarly to a reply | |||
| to the message being annotated, with appropriate Subject and Reply-To | to the message being annotated, with appropriate Subject and Reply-To | |||
| headers set to maintain context and threading. Servers SHOULD store | headers set to maintain context and threading. Servers SHOULD store | |||
| messages with this keyword in a mailbox with the "Memos" mailbox name | messages with this keyword in a mailbox with the "Memos" mailbox name | |||
| attribute (see Section 9.2.3), if available. | attribute (see Section 9.2.3), if available. | |||
| Supporting clients MUST present these messages differently from | Supporting clients MUST present these messages differently from | |||
| regular emails. Rather than presenting them as standalone messages, | regular emails. Rather than presenting them as standalone messages, | |||
| they MUST be presented as annotations attached to the message they're | they MUST be presented as annotations attached to the message they're | |||
| commenting on. Clients may provide special UI affordances for | commenting on. Clients may provide special UI affordances for | |||
| editing or deleting these memos, which typically requires replacing | editing or deleting these memos, which typically requires replacing | |||
| skipping to change at page 7, line 43 ¶ | skipping to change at line 347 ¶ | |||
| 6. Subscription Management Keywords | 6. Subscription Management Keywords | |||
| The following keywords help clients manage mailing list | The following keywords help clients manage mailing list | |||
| subscriptions. They provide mechanisms for tracking unsubscription | subscriptions. They provide mechanisms for tracking unsubscription | |||
| attempts and identifying messages with valid unsubscribe options. | attempts and identifying messages with valid unsubscribe options. | |||
| 6.1. $canunsubscribe | 6.1. $canunsubscribe | |||
| The $canunsubscribe keyword indicates that a message contains a | The $canunsubscribe keyword indicates that a message contains a | |||
| valid, [RFC8058]-compliant List-Unsubscribe header that clients can | valid, List-Unsubscribe header compliant with [RFC8058] that clients | |||
| use to provide one-click unsubscribe functionality. | can use to provide one-click unsubscribe functionality. | |||
| This keyword is set by servers during message delivery when they | This keyword is set by servers during message delivery when they | |||
| detect a valid List-Unsubscribe header and the message passes | detect a valid List-Unsubscribe header and the message passes | |||
| implementation-specific reputation checks. This pre-verification is | implementation-specific reputation checks. This pre-verification is | |||
| important, as not all List-Unsubscribe headers are trustworthy, and | important, as not all List-Unsubscribe headers are trustworthy: some | |||
| some might lead to phishing sites or generate additional spam. | might lead to phishing sites or generate additional spam. | |||
| The primary benefit of this keyword is efficiency--clients can know | The primary benefit of this keyword is efficiency: clients can know | |||
| whether to offer unsubscribe functionality in their user interface | whether to offer unsubscribe functionality in their user interface | |||
| without having to fetch and validate the List-Unsubscribe header for | without having to fetch and validate the List-Unsubscribe header for | |||
| every message. It also provides an extra layer of safety since the | every message. It also provides an extra layer of safety since the | |||
| server has already performed reputation checks on the unsubscribe | server has already performed reputation checks on the unsubscribe | |||
| mechanism. | mechanism. | |||
| 6.2. $unsubscribed | 6.2. $unsubscribed | |||
| The $unsubscribed keyword indicates that the user has attempted to | The $unsubscribed keyword indicates that the user has attempted to | |||
| unsubscribe from the mailing list associated with a message. It | unsubscribe from the mailing list associated with a message. It | |||
| skipping to change at page 8, line 30 ¶ | skipping to change at line 381 ¶ | |||
| from a mailing list, typically via a one-click List-Unsubscribe | from a mailing list, typically via a one-click List-Unsubscribe | |||
| action as defined in [RFC8058]. It serves as a record that an | action as defined in [RFC8058]. It serves as a record that an | |||
| unsubscription attempt has been made, even if confirmation of | unsubscription attempt has been made, even if confirmation of | |||
| successful unsubscription hasn't been received. It MUST NOT be set | successful unsubscription hasn't been received. It MUST NOT be set | |||
| if the unsubscription attempt definitely failed. | if the unsubscription attempt definitely failed. | |||
| Supporting clients can use this to provide an indicator on messages | Supporting clients can use this to provide an indicator on messages | |||
| with this keyword to remind the user they have previously attempted | with this keyword to remind the user they have previously attempted | |||
| to unsubscribe from this sender or mailing list. This can be helpful | to unsubscribe from this sender or mailing list. This can be helpful | |||
| when users revisit old messages and might otherwise attempt to | when users revisit old messages and might otherwise attempt to | |||
| unsubscribe again, or when they receive additional messages despite | unsubscribe again or when they receive additional messages despite | |||
| unsubscribing and need to take further action. | unsubscribing and need to take further action. | |||
| 7. Other Message Keywords | 7. Other Message Keywords | |||
| 7.1. $autosent | 7.1. $autosent | |||
| The $autosent keyword identifies messages that were automatically | The $autosent keyword identifies messages that were automatically | |||
| generated and sent by the system on behalf of the user, typically in | generated and sent by the system on behalf of the user, typically in | |||
| response to user-defined filtering rules or settings. | response to user-defined filtering rules or settings. | |||
| skipping to change at page 9, line 18 ¶ | skipping to change at line 417 ¶ | |||
| interested in future messages in a specific thread. This enables | interested in future messages in a specific thread. This enables | |||
| special handling to ensure these messages receive appropriate | special handling to ensure these messages receive appropriate | |||
| attention. | attention. | |||
| When a new message arrives in a thread where this keyword is present, | When a new message arrives in a thread where this keyword is present, | |||
| supporting servers MAY take actions to prioritize the message. This | supporting servers MAY take actions to prioritize the message. This | |||
| could include ensuring it is available in the inbox regardless of | could include ensuring it is available in the inbox regardless of | |||
| filtering rules that might otherwise affect it, automatically adding | filtering rules that might otherwise affect it, automatically adding | |||
| the $notify keyword to ensure notifications, or applying other | the $notify keyword to ensure notifications, or applying other | |||
| handling that increases its prominence. The specific actions taken | handling that increases its prominence. The specific actions taken | |||
| and whether they can be configured by the user depends on the | and whether they can be configured by the user depend on the | |||
| implementation. | implementation. | |||
| Thread identification for this keyword follows the same definition as | Thread identification for this keyword follows the same definition as | |||
| described in $muted. | described in Section 7.6. | |||
| This keyword is set or cleared by clients based on user actions to | This keyword is set or cleared by clients based on user actions to | |||
| follow or unfollow a thread. When unfollowing a thread, clients MUST | follow or unfollow a thread. When unfollowing a thread, clients MUST | |||
| remove this keyword from all messages in the thread that have it. | remove this keyword from all messages in the thread that have it. | |||
| The $followed keyword is mutually exclusive with the $muted keyword. | The $followed keyword is mutually exclusive with the $muted keyword. | |||
| If both are present on messages in the same thread, servers MUST | If both are present on messages in the same thread, servers MUST | |||
| treat the thread as followed rather than muted. | treat the thread as followed rather than muted. | |||
| 7.3. $imported | 7.3. $imported | |||
| skipping to change at page 10, line 12 ¶ | skipping to change at line 460 ¶ | |||
| been verified by the server with a high degree of confidence. It | been verified by the server with a high degree of confidence. It | |||
| provides an indication that the message is likely authentic. | provides an indication that the message is likely authentic. | |||
| This advisory keyword is set by the server during message delivery | This advisory keyword is set by the server during message delivery | |||
| when the authenticity of both the sender's name and email address can | when the authenticity of both the sender's name and email address can | |||
| be verified with a high degree of confidence. This level of | be verified with a high degree of confidence. This level of | |||
| verification typically applies to messages sent by the mailbox | verification typically applies to messages sent by the mailbox | |||
| provider itself to its customers, where the provider has strong | provider itself to its customers, where the provider has strong | |||
| evidence of the message's origin. | evidence of the message's origin. | |||
| Supporting clients can provide a verification indicator (e.g., | Supporting clients can provide a verification indicator (e.g., check | |||
| checkmark icon) for messages with this keyword, helping users | mark icon) for messages with this keyword, helping users identify | |||
| identify legitimate communications from their service provider. This | legitimate communications from their service provider. This is | |||
| is particularly important for distinguishing authentic provider | particularly important for distinguishing authentic provider messages | |||
| messages from phishing attempts that impersonate the provider. | from phishing attempts that impersonate the provider. | |||
| Servers MUST exercise caution when applying this keyword, as it | Servers MUST exercise caution when applying this keyword, as it | |||
| conveys trust to the user. If misapplied, it could lead users to | conveys trust to the user. If misapplied, it could lead users to | |||
| trust fraudulent messages. | trust fraudulent messages. | |||
| It MUST NOT be used for messages that have only passed standard | It MUST NOT be used for messages that have only passed standard | |||
| authentication mechanisms like SPF, DKIM, or DMARC. | authentication mechanisms like Sender Policy Framework (SPF), | |||
| DomainKeys Identified Mail (DKIM), or Domain-based Message | ||||
| Authentication, Reporting, and Conformance (DMARC). | ||||
| 7.5. $maskedemail | 7.5. $maskedemail | |||
| The $maskedemail keyword indicates that a message was received | The $maskedemail keyword indicates that a message was received | |||
| through a masked email address--an alias created specifically for | through a masked email address -- an alias created specifically for | |||
| communications with a particular sender to protect the user's primary | communications with a particular sender to protect the user's primary | |||
| email address. | email address. | |||
| This advisory keyword is set by the server during message delivery on | This advisory keyword is set by the server during message delivery on | |||
| messages that arrive via such aliases. These might be automatically | messages that arrive via such aliases. These might be automatically | |||
| generated single-use addresses, service-specific addresses, or user- | generated single-use addresses, service-specific addresses, or user- | |||
| created aliases for specific correspondents. | created aliases for specific correspondents. | |||
| Supporting clients can provide an indicator (e.g., mask icon) for | Supporting clients can provide an indicator (e.g., mask icon) for | |||
| messages with this keyword. This helps users understand that the | messages with this keyword. This helps users understand that the | |||
| skipping to change at page 11, line 14 ¶ | skipping to change at line 510 ¶ | |||
| When a new message arrives that belongs to the same thread as one | When a new message arrives that belongs to the same thread as one | |||
| marked with this keyword, supporting servers MAY automatically | marked with this keyword, supporting servers MAY automatically | |||
| deprioritize the message. This could include moving it to an archive | deprioritize the message. This could include moving it to an archive | |||
| or trash folder, marking it as read, or applying other handling that | or trash folder, marking it as read, or applying other handling that | |||
| reduces its prominence. The specific actions taken and whether they | reduces its prominence. The specific actions taken and whether they | |||
| can be configured by the user depends on the implementation. | can be configured by the user depends on the implementation. | |||
| For thread identification purposes, messages are considered part of | For thread identification purposes, messages are considered part of | |||
| the same thread when they share the same thread identifier as defined | the same thread when they share the same thread identifier as defined | |||
| in [RFC8474] Section 5.2 for IMAP or [RFC8621], Section 3 for JMAP. | in Section 5.2 of [RFC8474] for IMAP or Section 3 of [RFC8621] for | |||
| This definition applies to all thread-related keywords in this | JMAP. This definition applies to all thread-related keywords in this | |||
| document. | document. | |||
| This keyword is set or cleared by clients based on user actions to | This keyword is set or cleared by clients based on user actions to | |||
| mute or unmute a thread. When unmuting a thread, clients MUST remove | mute or unmute a thread. When unmuting a thread, clients MUST remove | |||
| this keyword from all messages in the thread that have it. The | this keyword from all messages in the thread that have it. The | |||
| $muted keyword is mutually exclusive with the $followed keyword. If | $muted keyword is mutually exclusive with the $followed keyword. If | |||
| both are present on messages in the same thread, both servers and | both are present on messages in the same thread, both servers and | |||
| clients MUST treat the thread as followed rather than muted. | clients MUST treat the thread as followed rather than muted. | |||
| Implementers should note the security considerations in the IANA | Implementers should note the security considerations in the IANA | |||
| skipping to change at page 11, line 39 ¶ | skipping to change at line 535 ¶ | |||
| allow many other similar actions. | allow many other similar actions. | |||
| 7.7. $new | 7.7. $new | |||
| The $new keyword indicates that a message should be emphasized or | The $new keyword indicates that a message should be emphasized or | |||
| made more prominent to the user due to a recent system action, even | made more prominent to the user due to a recent system action, even | |||
| if the message itself is not new. | if the message itself is not new. | |||
| This advisory keyword is typically set by servers when a previously | This advisory keyword is typically set by servers when a previously | |||
| snoozed message "awakens" and returns to the inbox after its snooze | snoozed message "awakens" and returns to the inbox after its snooze | |||
| period has elapsed. It signals to clients that although this message | period has elapsed. It signals to clients that, although this | |||
| might have an older date, it should be treated as effectively new in | message might have an older date, it should be treated as effectively | |||
| terms of user attention. | new in terms of user attention. | |||
| Supporting clients can present these messages with special treatment | Supporting clients can present these messages with special treatment | |||
| to draw user attention, such as emphasizing, bolding, or placing them | to draw user attention, such as emphasizing, bolding, or placing them | |||
| at the top of the message list, even if strict date sorting would | at the top of the message list, even if strict date sorting would | |||
| place them elsewhere. | place them elsewhere. | |||
| Clients MUST clear this keyword when the user interacts with the | Clients MUST clear this keyword when the user interacts with the | |||
| message, such as by opening, replying to, or otherwise acknowledging | message, such as by opening, replying to, or otherwise acknowledging | |||
| it. This prevents the message from remaining emphasized indefinitely | it. This prevents the message from remaining emphasized indefinitely | |||
| after the user has accessed it. | after the user has accessed it. | |||
| skipping to change at page 12, line 38 ¶ | skipping to change at line 582 ¶ | |||
| notification. | notification. | |||
| 8. Mailbox Name Attributes | 8. Mailbox Name Attributes | |||
| 8.1. Snoozed | 8.1. Snoozed | |||
| The Snoozed mailbox name attribute identifies a mailbox that is used | The Snoozed mailbox name attribute identifies a mailbox that is used | |||
| to store messages that have been temporarily removed from the user's | to store messages that have been temporarily removed from the user's | |||
| attention and scheduled to reappear at a later time. | attention and scheduled to reappear at a later time. | |||
| When a user chooses to "snooze" a message, the supporting server will | When a user chooses to "snooze" a message, the supporting server | |||
| move the message to a mailbox with this attribute. At the specified | moves the message to a mailbox with this attribute. At the specified | |||
| "awaken" time, the server will automatically move the message back to | "awaken" time, the server automatically moves the message back to its | |||
| its original location (typically the inbox) and may mark it with the | original location (typically the inbox) and may mark it with the $new | |||
| $new keyword to ensure it receives proper attention. | keyword to ensure it receives proper attention. | |||
| This attribute standardizes the location of snoozed messages across | This attribute standardizes the location of snoozed messages across | |||
| clients, allowing them to identify and manage snoozed messages | clients, allowing them to identify and manage snoozed messages | |||
| consistently. However, this attribute merely identifies the storage | consistently. However, this attribute merely identifies the storage | |||
| location for snoozed messages and does not itself define the snoozing | location for snoozed messages and does not itself define the snoozing | |||
| mechanism or interface. | mechanism or interface. | |||
| Supporting clients may present the contents of this mailbox | Supporting clients may present the contents of this mailbox | |||
| differently from regular mailboxes, such as organizing messages by | differently from regular mailboxes, such as organizing messages by | |||
| their scheduled "awaken" time rather than received date, or providing | their scheduled "awaken" time rather than received date or providing | |||
| specialized interfaces for adjusting the snooze duration. | specialized interfaces for adjusting the snooze duration. | |||
| 8.2. Scheduled | 8.2. Scheduled | |||
| The Scheduled mailbox name attribute identifies a mailbox that | The Scheduled mailbox name attribute identifies a mailbox that | |||
| contains messages that have been composed but are scheduled to be | contains messages that have been composed but are scheduled to be | |||
| sent at a future time rather than immediately. | sent at a future time rather than immediately. | |||
| When a user composes a message and chooses to send it at a later date | When a user composes a message and chooses to send it at a later date | |||
| or time, the supporting server will store the message in a mailbox | or time, the supporting server stores the message in a mailbox with | |||
| with this attribute until the scheduled sending time. Once that time | this attribute until the scheduled sending time. Once that time is | |||
| is reached, the server will send the message and typically move it to | reached, the server sends the message and typically moves it to the | |||
| the \Sent mailbox or delete it according to server policy. | \Sent mailbox or delete it according to server policy. | |||
| This attribute standardizes the location of scheduled messages across | This attribute standardizes the location of scheduled messages across | |||
| clients, enabling users to review, edit, or cancel scheduled messages | clients, enabling users to review, edit, or cancel scheduled messages | |||
| before they are sent, regardless of which client was used to schedule | before they are sent, regardless of which client was used to schedule | |||
| them. | them. | |||
| Supporting clients may present the contents of this mailbox in a way | Supporting clients may present the contents of this mailbox in a way | |||
| that highlights the scheduled sending time and allow users to modify | that highlights the scheduled sending time and allows users to modify | |||
| or cancel scheduled messages before they are sent. | or cancel scheduled messages before they are sent. | |||
| 8.3. Memos | 8.3. Memos | |||
| The Memos mailbox name attribute identifies a mailbox designated for | The Memos mailbox name attribute identifies a mailbox designated for | |||
| storing messages that have the $memo keyword. These messages are | storing messages that have the $memo keyword. These messages are | |||
| user-created notes or annotations related to other messages. | user-created notes or annotations related to other messages. | |||
| When a user creates a memo (a note-to-self regarding another | When a user creates a memo (a note-to-self regarding another | |||
| message), clients SHOULD store these messages in a mailbox with this | message), clients SHOULD store these messages in a mailbox with this | |||
| attribute. This separation allows clients to handle memos | attribute. This separation allows clients to handle memos | |||
| differently from regular messages, presenting them as annotations | differently from regular messages, presenting them as annotations | |||
| rather than standalone communications. | rather than standalone communications. | |||
| Storing memos in a designated mailbox helps prevent them from | Storing memos in a designated mailbox helps prevent them from | |||
| cluttering the user's inbox or other message folders, while still | cluttering the user's inbox or other message folders, while still | |||
| maintaining them as proper email messages for compatibility and | maintaining them as proper email messages for compatibility and | |||
| synchronization purposes. | synchronization purposes. | |||
| Supporting clients MUST NOT present the contents of this mailbox as | Supporting clients MUST NOT present the contents of this mailbox as | |||
| regular messages in their interface, but instead MUST present them | regular messages in their interface; instead, they MUST present them | |||
| contextually alongside the messages they annotate when those messages | contextually alongside the messages they annotate when those messages | |||
| are accessed. | are accessed. | |||
| 9. IANA Considerations | 9. IANA Considerations | |||
| The following 17 IMAP/JMAP keywords are registered in the _IMAP and | The following 17 IMAP/JMAP keywords have been registered in the "IMAP | |||
| JMAP Keywords_ registry, as established in [RFC5788]. | and JMAP Keywords" registry, as established in [RFC5788]. | |||
| 9.1. IMAP/JMAP Keyword Registrations | 9.1. IMAP/JMAP Keyword Registrations | |||
| 9.1.1. $autosent keyword registration | 9.1.1. $autosent Keyword Registration | |||
| IMAP/JMAP keyword name: $autosent | IMAP/JMAP keyword name: $autosent | |||
| Purpose: Indicate to the client that a message was sent | Purpose: Indicate to the client that a message was sent | |||
| automatically as a response due to a user rule or setting. | automatically as a response due to a user rule or setting. | |||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: This | Is it an advisory keyword or may it cause an automatic action: This | |||
| keyword is advisory. | keyword is advisory. | |||
| When/by whom the keyword is set/cleared: This keyword is set by the | When/by whom the keyword is set/cleared: This keyword is set by the | |||
| server on delivery. | server on delivery. | |||
| Related keywords: None | Related keywords: None | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: None | Security considerations: None | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.1.2. $canunsubscribe keyword registration | 9.1.2. $canunsubscribe Keyword Registration | |||
| IMAP/JMAP keyword name: $canunsubscribe | IMAP/JMAP keyword name: $canunsubscribe | |||
| Purpose: Indicate to the client that this message has an [RFC8058]- | ||||
| compliant List-Unsubscribe header. | Purpose: Indicate to the client that this message has a List- | |||
| Unsubscribe header that is compliant with [RFC8058]. | ||||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: This | Is it an advisory keyword or may it cause an automatic action: This | |||
| keyword is advisory. | keyword is advisory. | |||
| When/by whom the keyword is set/cleared: This keyword is set by the | When/by whom the keyword is set/cleared: This keyword is set by the | |||
| server on delivery. | server on delivery. | |||
| Related keywords: None | Related keywords: None | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: None | Security considerations: None | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.1.3. $followed keyword registration | 9.1.3. $followed Keyword Registration | |||
| IMAP/JMAP keyword name: $followed | IMAP/JMAP keyword name: $followed | |||
| Purpose: Indicate to the server that the user is particularly | Purpose: Indicate to the server that the user is particularly | |||
| interested in future replies to a particular thread. | interested in future replies to a particular thread. | |||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: This | Is it an advisory keyword or may it cause an automatic action: This | |||
| keyword can cause automatic action. | keyword can cause automatic action. | |||
| When/by whom the keyword is set/cleared: This keyword is set and | When/by whom the keyword is set/cleared: This keyword is set and | |||
| cleared by the client. | cleared by the client. | |||
| Related keywords: Mutually exclusive with $muted. If both are | Related keywords: Mutually exclusive with $muted. If both are | |||
| specified on a thread, servers MUST behave as though only | specified on a thread, servers MUST behave as though only | |||
| $followed were set. | $followed were set. | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: None | Security considerations: None | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.1.4. $hasattachment keyword registration | 9.1.4. $hasattachment Keyword Registration | |||
| IMAP/JMAP keyword name: $hasattachment | IMAP/JMAP keyword name: $hasattachment | |||
| Purpose: Indicate to the client that a message has an attachment. | Purpose: Indicate to the client that a message has an attachment. | |||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: This | Is it an advisory keyword or may it cause an automatic action: This | |||
| keyword is advisory. | keyword is advisory. | |||
| When/by whom the keyword is set/cleared: It is set by the server | When/by whom the keyword is set/cleared: It is set by the server | |||
| during message delivery, or by the client (if neither | during message delivery or by the client (if neither | |||
| $hasattachment nor $hasnoattachment are currently set). | $hasattachment nor $hasnoattachment is currently set). | |||
| Related keywords: $hasnoattachment | Related keywords: $hasnoattachment | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: None | Security considerations: None | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.1.5. $hasmemo keyword registration | 9.1.5. $hasmemo Keyword Registration | |||
| IMAP/JMAP keyword name: $hasmemo | IMAP/JMAP keyword name: $hasmemo | |||
| Purpose: Indicate to the client that a message has an associated | Purpose: Indicate to the client that a message has an associated | |||
| memo with the $memo keyword. | memo with the $memo keyword. | |||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: This | Is it an advisory keyword or may it cause an automatic action: This | |||
| keyword is advisory. | keyword is advisory. | |||
| When/by whom the keyword is set/cleared: This keyword is set and | When/by whom the keyword is set/cleared: This keyword is set and | |||
| cleared by the client based on user interaction. | cleared by the client based on user interaction. | |||
| Related keywords: The $memo and $hasmemo keywords are mutually | Related keywords: The $memo and $hasmemo keywords are mutually | |||
| exclusive. | exclusive. | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: None | Security considerations: None | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.1.6. $hasnoattachment keyword registration | 9.1.6. $hasnoattachment Keyword Registration | |||
| IMAP/JMAP keyword name: $hasnoattachment | IMAP/JMAP keyword name: $hasnoattachment | |||
| Purpose: Indicate to the client that a message does not have an | Purpose: Indicate to the client that a message does not have an | |||
| attachment. | attachment. | |||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: This | Is it an advisory keyword or may it cause an automatic action: This | |||
| keyword is advisory. | keyword is advisory. | |||
| When/by whom the keyword is set/cleared: It is set by the server | When/by whom the keyword is set/cleared: It is set by the server | |||
| during message delivery, or by the client (if neither | during message delivery, or by the client (if neither | |||
| $hasattachment nor $hasnoattachment are currently set). | $hasattachment nor $hasnoattachment is currently set). | |||
| Related keywords: None | Related keywords: None | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: None | Security considerations: None | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.1.7. $imported keyword registration | 9.1.7. $imported Keyword Registration | |||
| IMAP/JMAP keyword name: $imported | IMAP/JMAP keyword name: $imported | |||
| Purpose: Indicate to the client that this message was imported from | Purpose: Indicate to the client that this message was imported from | |||
| another mailbox. | another mailbox. | |||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: This | Is it an advisory keyword or may it cause an automatic action: This | |||
| keyword is advisory. | keyword is advisory. | |||
| When/by whom the keyword is set/cleared: This keyword is set by the | When/by whom the keyword is set/cleared: This keyword is set by the | |||
| server on delivery. | server on delivery. | |||
| Related keywords: None | Related keywords: None | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: None | Security considerations: None | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.1.8. $istrusted keyword registration | 9.1.8. $istrusted Keyword Registration | |||
| IMAP/JMAP keyword name: $istrusted | IMAP/JMAP keyword name: $istrusted | |||
| Purpose: Indicate to the client that the authenticity of the from | Purpose: Indicate to the client that the authenticity of the from | |||
| name and email address have been verified by the server. | name and email address have been verified by the server. | |||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: This | Is it an advisory keyword or may it cause an automatic action: This | |||
| keyword is advisory. | keyword is advisory. | |||
| When/by whom the keyword is set/cleared: This keyword is set by the | When/by whom the keyword is set/cleared: This keyword is set by the | |||
| server on delivery. | server on delivery. | |||
| Related keywords: None | Related keywords: None | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: Servers should make sure this keyword is | Security considerations: Servers should make sure this keyword is | |||
| only set for messages that really are trusted. | only set for messages that really are trusted. | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.1.9. $MailFlagBit0 keyword registration | 9.1.9. $MailFlagBit0 Keyword Registration | |||
| IMAP/JMAP keyword name: $MailFlagBit0 | IMAP/JMAP keyword name: $MailFlagBit0 | |||
| Purpose: Bit 0 part of a 3-bit bitmask that defines the color of the | Purpose: Bit 0 part of a 3-bit bitmask that defines the color of the | |||
| flag when the message has the system flag \Flagged set. See | flag when the message has the system flag \Flagged set. See | |||
| Section 3 for details. | Section 3 for details. | |||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: No | Is it an advisory keyword or may it cause an automatic action: No | |||
| When/by whom the keyword is set/cleared: This keyword is set by a | When/by whom the keyword is set/cleared: This keyword is set by a | |||
| client as the result of a user action to "flag" a message for | client as the result of a user action to "flag" a message as | |||
| urgent/special attention. | urgent / in need of special attention. | |||
| Related keywords: $MailFlagBit1, $MailFlagBit2 | Related keywords: $MailFlagBit1, $MailFlagBit2 | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: None | Security considerations: None | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.1.10. $MailFlagBit1 keyword registration | 9.1.10. $MailFlagBit1 Keyword Registration | |||
| IMAP/JMAP keyword name: $MailFlagBit1 | IMAP/JMAP keyword name: $MailFlagBit1 | |||
| Purpose: Bit 1 part of a 3-bit bitmask that defines the color of the | Purpose: Bit 1 part of a 3-bit bitmask that defines the color of the | |||
| flag when the message has the system flag \Flagged set. See | flag when the message has the system flag \Flagged set. See | |||
| Section 3 for details. | Section 3 for details. | |||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: No | Is it an advisory keyword or may it cause an automatic action: No | |||
| When/by whom the keyword is set/cleared: This keyword is set by a | When/by whom the keyword is set/cleared: This keyword is set by a | |||
| client as the result of a user action to "flag" a message for | client as the result of a user action to "flag" a message as | |||
| urgent/special attention. | urgent / in need of special attention. | |||
| Related keywords: $MailFlagBit0, $MailFlagBit2 | Related keywords: $MailFlagBit0, $MailFlagBit2 | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: None | Security considerations: None | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.1.11. $MailFlagBit2 keyword registration | 9.1.11. $MailFlagBit2 Keyword Registration | |||
| IMAP/JMAP keyword name: $MailFlagBit2 | IMAP/JMAP keyword name: $MailFlagBit2 | |||
| Purpose: Bit 2 part of a 3-bit bitmask that defines the color of the | Purpose: Bit 2 part of a 3-bit bitmask that defines the color of the | |||
| flag when the message has the system flag \Flagged set. See | flag when the message has the system flag \Flagged set. See | |||
| Section 3 for details. | Section 3 for details. | |||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: No | Is it an advisory keyword or may it cause an automatic action: No | |||
| When/by whom the keyword is set/cleared: This keyword is set by a | When/by whom the keyword is set/cleared: This keyword is set by a | |||
| client as the result of a user action to "flag" a message for | client as the result of a user action to "flag" a message as | |||
| urgent/special attention. | urgent / in need of special attention. | |||
| Related keywords: $MailFlagBit0, $MailFlagBit1 | Related keywords: $MailFlagBit0, $MailFlagBit1 | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: None | Security considerations: None | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.1.12. $maskedemail keyword registration | 9.1.12. $maskedemail Keyword Registration | |||
| IMAP/JMAP keyword name: $maskedemail | IMAP/JMAP keyword name: $maskedemail | |||
| Purpose: Indicate to the client that the message was received via an | Purpose: Indicate to the client that the message was received via an | |||
| alias created for an individual sender. | alias created for an individual sender. | |||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: This | Is it an advisory keyword or may it cause an automatic action: This | |||
| keyword is advisory. | keyword is advisory. | |||
| When/by whom the keyword is set/cleared: This keyword is set by the | When/by whom the keyword is set/cleared: This keyword is set by the | |||
| server on delivery. | server on delivery. | |||
| Related keywords: None | Related keywords: None | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: None | Security considerations: None | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: LIMITED | Intended usage: LIMITED | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.1.13. $memo keyword registration | 9.1.13. $memo Keyword Registration | |||
| IMAP/JMAP keyword name: $memo | IMAP/JMAP keyword name: $memo | |||
| Purpose: Indicate to the client that a message is a note-to-self | Purpose: Indicate to the client that a message is a note-to-self | |||
| from the user regarding another message in the same thread. | from the user regarding another message in the same thread. | |||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: This | Is it an advisory keyword or may it cause an automatic action: This | |||
| keyword is advisory. | keyword is advisory. | |||
| When/by whom the keyword is set/cleared: This keyword is set and | When/by whom the keyword is set/cleared: This keyword is set and | |||
| cleared by the client based on user interaction. | cleared by the client based on user interaction. | |||
| Related keywords: The $memo and $hasmemo keywords are mutually | Related keywords: The $memo and $hasmemo keywords are mutually | |||
| exclusive. | exclusive. | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: None | Security considerations: None | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.1.14. $muted keyword registration | 9.1.14. $muted Keyword Registration | |||
| IMAP/JMAP keyword name: $muted | IMAP/JMAP keyword name: $muted | |||
| Purpose: Indicate to the server that the user is not interested in | Purpose: Indicate to the server that the user is not interested in | |||
| future replies to a particular thread. | future replies to a particular thread. | |||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: This | Is it an advisory keyword or may it cause an automatic action: This | |||
| keyword can cause an automatic action. | keyword can cause an automatic action. | |||
| When/by whom the keyword is set/cleared: This keyword is set and | When/by whom the keyword is set/cleared: This keyword is set and | |||
| cleared by the client. | cleared by the client. | |||
| Related keywords: Mutually exclusive with $followed. If both are | Related keywords: Mutually exclusive with $followed. If both are | |||
| specified on a thread, servers MUST behave as though only | specified on a thread, servers MUST behave as though only | |||
| $followed were set. | $followed were set. | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: Muting a thread can mean a user won't be | Security considerations: Muting a thread can mean a user won't be | |||
| notified of a reply. If someone compromises a user's account, | notified of a reply. If someone compromises a user's account, | |||
| they may mute threads where they don't want the user to be | they may mute threads where they don't want the user to be | |||
| notified of the reply, for example when sending phishing to the | notified of the reply, for example, when sending phishing to the | |||
| user's contacts. There are many other ways an attacker with | user's contacts. However, there are many other ways an attacker | |||
| access to the user's mailbox can also achieve this however, so | with access to the user's mailbox can also achieve this, so this | |||
| this is not greatly increasing the attack surface. When restoring | is not greatly increasing the attack surface. When restoring | |||
| legitimate access to a stolen account, care must be taken to find | legitimate access to a stolen account, care must be taken to find | |||
| and confirm/revert mute actions that may have been taken by the | and confirm or revert mute actions that may have been taken by the | |||
| attacker. | attacker. | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.1.15. $new keyword registration | 9.1.15. $new Keyword Registration | |||
| IMAP/JMAP keyword name: $new | IMAP/JMAP keyword name: $new | |||
| Purpose: Indicate to the client that a message should be made more | Purpose: Indicate to the client that a message should be made more | |||
| prominent to the user due to a recent action. | prominent to the user due to a recent action. | |||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: This | Is it an advisory keyword or may it cause an automatic action: This | |||
| keyword is advisory. | keyword is advisory. | |||
| When/by whom the keyword is set/cleared: This keyword is set by the | When/by whom the keyword is set/cleared: This keyword is set by the | |||
| server. Clients can clear the keyword based on user interaction. | server. Clients can clear the keyword based on user interaction. | |||
| Related keywords: None | Related keywords: None | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: None | Security considerations: None | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: LIMITED | Intended usage: LIMITED | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.1.16. $notify keyword registration | 9.1.16. $notify Keyword Registration | |||
| IMAP/JMAP keyword name: $notify | IMAP/JMAP keyword name: $notify | |||
| Purpose: Indicate to the client that a notification should be | Purpose: Indicate to the client that a notification should be | |||
| presented for this message. | presented for this message. | |||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: This | Is it an advisory keyword or may it cause an automatic action: This | |||
| keyword can cause an automatic action. | keyword can cause an automatic action. | |||
| When/by whom the keyword is set/cleared: This keyword is set by the | When/by whom the keyword is set/cleared: This keyword is set by the | |||
| server on delivery when a message meets certain criteria. It may | server on delivery when a message meets certain criteria. It may | |||
| be cleared by a client when the user interacts with the message. | be cleared by a client when the user interacts with the message. | |||
| Related keywords: None | Related keywords: None | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: None | Security considerations: None | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.1.17. $unsubscribed keyword registration | 9.1.17. $unsubscribed Keyword Registration | |||
| IMAP/JMAP keyword name: $unsubscribed | IMAP/JMAP keyword name: $unsubscribed | |||
| Purpose: Indicate the client has attempted to unsubscribe from the | Purpose: Indicate the client has attempted to unsubscribe from the | |||
| mailing list this message is from. | mailing list this message is from. | |||
| Private or Shared on a server: SHARED | Private or Shared on a server: SHARED | |||
| Is it an advisory keyword or may it cause an automatic action: This | Is it an advisory keyword or may it cause an automatic action: This | |||
| keyword is advisory. | keyword is advisory. | |||
| When/by whom the keyword is set/cleared: This keyword is set by the | When/by whom the keyword is set/cleared: This keyword is set by the | |||
| client based on user interaction. | client based on user interaction. | |||
| Related keywords: None | Related keywords: None | |||
| Related IMAP capabilities: None | Related IMAP capabilities: None | |||
| Security considerations: None | Security considerations: None | |||
| Published specification: This document | ||||
| Published specification: RFC 9979 | ||||
| Intended usage: COMMON | Intended usage: COMMON | |||
| Scope: BOTH | Scope: BOTH | |||
| Owner/Change controller: IESG | Owner/Change controller: IESG | |||
| 9.2. IMAP Mailbox Name Attributes Registrations | 9.2. IMAP Mailbox Name Attributes Registrations | |||
| The following 3 IMAP/JMAP mailbox name attributes are registered in | The following three IMAP/JMAP mailbox name attributes have been | |||
| the IMAP Mailbox Name Attributes Registry, as established in | registered in the "IMAP Mailbox Name Attributes" registry, as | |||
| [RFC8457]. | established by [RFC8457]. | |||
| Note that none of the attributes in this section have an implied | Note that none of the attributes in this section have an implied | |||
| backslash. This sets them apart from those specified in Section 2 of | backslash. This sets them apart from those specified in Section 2 of | |||
| [RFC6154]. | [RFC6154]. | |||
| 9.2.1. Snoozed mailbox name attribute registration | 9.2.1. Snoozed Mailbox Name Attribute Registration | |||
| Attribute Name: Snoozed | Attribute Name: Snoozed | |||
| Description: Identifies the mailbox where temporarily snoozed | Description: Identifies the mailbox where temporarily snoozed | |||
| messages are stored. | messages are stored. | |||
| Reference: This document. | ||||
| 9.2.2. Scheduled mailbox name attribute registration | Reference: RFC 9979 | |||
| 9.2.2. Scheduled Mailbox Name Attribute Registration | ||||
| Attribute Name: Scheduled | Attribute Name: Scheduled | |||
| Description: Identifies the mailbox where messages scheduled to be | Description: Identifies the mailbox where messages scheduled to be | |||
| sent at a later time are stored. | sent at a later time are stored. | |||
| Reference: This document. | ||||
| 9.2.3. Memos mailbox name attribute registration | Reference: RFC 9979 | |||
| 9.2.3. Memos Mailbox Name Attribute Registration | ||||
| Attribute Name: Memos | Attribute Name: Memos | |||
| Description: Identifies the mailbox where user-created memo messages | Description: Identifies the mailbox where user-created memo messages | |||
| are stored. | are stored. | |||
| Reference: This document. | ||||
| Reference: RFC 9979 | ||||
| 10. Security Considerations | 10. Security Considerations | |||
| The security considerations for the $istrusted and $muted keywords | The security considerations for the $istrusted and $muted keywords | |||
| are described in Section 9.1.8, Section 7.4, and Section 9.1.14 | are described in Sections 9.1.8, 7.4, and 9.1.14, respectively. | |||
| respectively. | ||||
| The use and interpretation of the keywords and mailbox name | The use and interpretation of the keywords and mailbox name | |||
| attributes defined in this document depend on the client's and user's | attributes defined in this document depend on the client's and user's | |||
| ability to trust the IMAP server. Clients should be aware that a | ability to trust the IMAP server. Clients should be aware that a | |||
| compromised or malicious server could set these keywords incorrectly | compromised or malicious server could set these keywords incorrectly | |||
| or manipulate them to mislead users. For additional security | or manipulate them to mislead users. For additional security | |||
| considerations related to IMAP, refer to [RFC9051]. | considerations related to IMAP, refer to [RFC9051]. | |||
| Besides that this document should not affect the security of the | Otherwise, this document should not affect the security of the | |||
| Internet. | Internet. | |||
| 11. References | 11. Normative References | |||
| 11.1. Normative References | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC5788] Melnikov, A. and D. Cridland, "IMAP4 Keyword Registry", | [RFC5788] Melnikov, A. and D. Cridland, "IMAP4 Keyword Registry", | |||
| RFC 5788, DOI 10.17487/RFC5788, March 2010, | RFC 5788, DOI 10.17487/RFC5788, March 2010, | |||
| <https://www.rfc-editor.org/info/rfc5788>. | <https://www.rfc-editor.org/info/rfc5788>. | |||
| skipping to change at page 23, line 4 ¶ | skipping to change at line 1258 ¶ | |||
| [RFC8621] Jenkins, N. and C. Newman, "The JSON Meta Application | [RFC8621] Jenkins, N. and C. Newman, "The JSON Meta Application | |||
| Protocol (JMAP) for Mail", RFC 8621, DOI 10.17487/RFC8621, | Protocol (JMAP) for Mail", RFC 8621, DOI 10.17487/RFC8621, | |||
| August 2019, <https://www.rfc-editor.org/info/rfc8621>. | August 2019, <https://www.rfc-editor.org/info/rfc8621>. | |||
| [RFC9051] Melnikov, A., Ed. and B. Leiba, Ed., "Internet Message | [RFC9051] Melnikov, A., Ed. and B. Leiba, Ed., "Internet Message | |||
| Access Protocol (IMAP) - Version 4rev2", RFC 9051, | Access Protocol (IMAP) - Version 4rev2", RFC 9051, | |||
| DOI 10.17487/RFC9051, August 2021, | DOI 10.17487/RFC9051, August 2021, | |||
| <https://www.rfc-editor.org/info/rfc9051>. | <https://www.rfc-editor.org/info/rfc9051>. | |||
| Authors' Addresses | Authors' Addresses | |||
| Neil Jenkins | Neil Jenkins | |||
| Fastmail | Fastmail | |||
| PO Box 234, Collins St West | PO Box 234, Collins St West | |||
| Melbourne VIC 8007 | Melbourne VIC 8007 | |||
| Australia | Australia | |||
| Email: neilj@fastmailteam.com | Email: neilj@fastmailteam.com | |||
| URI: https://www.fastmail.com | URI: https://www.fastmail.com | |||
| Daniel Eggert | Daniel Eggert | |||
| Apple Inc | Apple, Inc | |||
| One Apple Park Way | One Apple Park Way | |||
| Cupertino, CA 95014 | Cupertino, CA 95014 | |||
| United States of America | United States of America | |||
| Email: deggert@apple.com | Email: deggert@apple.com | |||
| URI: https://www.apple.com | URI: https://www.apple.com | |||
| End of changes. 241 change blocks. | ||||
| 227 lines changed or deleted | 437 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||