| < draft-ietf-extra-sieve-snooze-01.txt | draft-ietf-extra-sieve-snooze-02.txt > | |||
|---|---|---|---|---|
| EXTRA K. Murchison | EXTRA K. Murchison | |||
| Internet-Draft R. Signes | Internet-Draft R. Signes | |||
| Updates: 5232 (if approved) N. Jenkins | Updates: 5232 (if approved) N. Jenkins | |||
| Intended status: Standards Track Fastmail | Intended status: Standards Track Fastmail | |||
| Expires: August 26, 2021 February 22, 2021 | Expires: 17 February 2022 16 August 2021 | |||
| Sieve Email Filtering: Snooze Extension | Sieve Email Filtering: Snooze Extension | |||
| draft-ietf-extra-sieve-snooze-01 | draft-ietf-extra-sieve-snooze-02 | |||
| Abstract | Abstract | |||
| This document describes the "snooze" extension to the Sieve email | This document describes the "snooze" extension to the Sieve email | |||
| filtering language. The "snooze" extension gives Sieve the ability | filtering language. The "snooze" extension gives Sieve the ability | |||
| to postpone the delivery of an incoming into a target mailbox until a | to postpone the delivery of an incoming email message into a target | |||
| later point in time. | mailbox until a later point in time. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on August 26, 2021. | This Internet-Draft will expire on 17 February 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | license-info) in effect on the date of publication of this document. | |||
| publication of this document. Please review these documents | Please review these documents carefully, as they describe your rights | |||
| carefully, as they describe your rights and restrictions with respect | and restrictions with respect to this document. Code Components | |||
| to this document. Code Components extracted from this document must | extracted from this document must include Simplified BSD License text | |||
| include Simplified BSD License text as described in Section 4.e of | as described in Section 4.e of the Trust Legal Provisions and are | |||
| the Trust Legal Provisions and are provided without warranty as | provided without warranty as described in the Simplified BSD License. | |||
| described in the Simplified BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Conventions Used in This Document . . . . . . . . . . . . . . 2 | 2. Conventions Used in This Document . . . . . . . . . . . . . . 2 | |||
| 3. Capability Identifier . . . . . . . . . . . . . . . . . . . . 3 | 3. Capability Identifier . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4. Snooze Action . . . . . . . . . . . . . . . . . . . . . . . . 3 | 4. Snooze Action . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4.1. Mailbox Argument . . . . . . . . . . . . . . . . . . . . 3 | 4.1. Mailbox Argument . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4.2. Weekdays Argument . . . . . . . . . . . . . . . . . . . . 4 | 4.2. Weekdays Argument . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4.3. Times and TZID Arguments . . . . . . . . . . . . . . . . 4 | 4.3. Times and TZID Arguments . . . . . . . . . . . . . . . . 4 | |||
| 4.3.1. Awaken Times Examples . . . . . . . . . . . . . . . . 5 | 4.3.1. Awaken Times Examples . . . . . . . . . . . . . . . . 5 | |||
| 4.4. Interaction with Extensions to the Fileinto Action . . . 6 | 4.4. Interaction with Extensions to the Fileinto Action . . . 6 | |||
| 4.4.1. Imap4flags Extension . . . . . . . . . . . . . . . . 6 | 4.4.1. Imap4flags Extension . . . . . . . . . . . . . . . . 6 | |||
| 4.4.2. Mailbox Extension . . . . . . . . . . . . . . . . . . 7 | 4.4.2. Mailbox Extension . . . . . . . . . . . . . . . . . . 7 | |||
| 4.4.3. Special-Use Extension . . . . . . . . . . . . . . . . 7 | 4.4.3. Special-Use Extension . . . . . . . . . . . . . . . . 8 | |||
| 4.4.4. MailboxID Extension . . . . . . . . . . . . . . . . . 8 | 4.4.4. MailboxID Extension . . . . . . . . . . . . . . . . . 8 | |||
| 5. Implementation Status . . . . . . . . . . . . . . . . . . . . 8 | 5. Implementation Status . . . . . . . . . . . . . . . . . . . . 8 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
| 7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 9 | 7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 8.1. Registration of Sieve Extension . . . . . . . . . . . . . 9 | 8.1. Registration of Sieve Extension . . . . . . . . . . . . . 9 | |||
| 8.2. Registration of IMAP Mailbox Name Attribute . . . . . . . 10 | 8.2. Registration of IMAP Mailbox Name Attribute . . . . . . . 10 | |||
| 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 10 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 10 | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 12 | 10.2. Informative References . . . . . . . . . . . . . . . . . 12 | |||
| 10.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | ||||
| Appendix A. Change History (To be removed by RFC Editor before | Appendix A. Change History (To be removed by RFC Editor before | |||
| publication) . . . . . . . . . . . . . . . . . . . . 12 | publication) . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 1. Introduction | 1. Introduction | |||
| Users are not always ready, willing, or able to read and respond to | Users are not always ready, willing, or able to read and respond to | |||
| email messages at the time of their arrival. Sometimes it is | email messages at the time of their arrival. Sometimes it is | |||
| desirable to have messages appear in a mailbox at a more convenient | desirable to have messages appear in a mailbox at a more convenient | |||
| time for the user to act upon them. | time for the user to act upon them. | |||
| This document defines an extension to the Sieve language [RFC5228] | This document defines an extension to the Sieve language [RFC5228] | |||
| that enables scripts to postpone the delivery of a message into a | that enables scripts to postpone the delivery of a message into a | |||
| skipping to change at page 3, line 43 ¶ | skipping to change at page 3, line 43 ¶ | |||
| The "snooze" action cancels the implicit keep and postpones delivery | The "snooze" action cancels the implicit keep and postpones delivery | |||
| of the message into the specified mailbox at a later point in time. | of the message into the specified mailbox at a later point in time. | |||
| The snooze action is semantically equivalent to a delayed fileinto | The snooze action is semantically equivalent to a delayed fileinto | |||
| action (see Section 4.1 of [RFC5228]). The arguments of the snooze | action (see Section 4.1 of [RFC5228]). The arguments of the snooze | |||
| action specify when, where, and how the awakened message will be | action specify when, where, and how the awakened message will be | |||
| filed. | filed. | |||
| A Sieve interpreter MUST implement the snooze action by delivering | A Sieve interpreter MUST implement the snooze action by delivering | |||
| the message to a special "snoozed" mailbox within its mailstore. | the message to a special "snoozed" mailbox within its mailstore. | |||
| IMAP and JMAP servers MUST apply the "Snoozed" (Section 8.2) | IMAP [RFC3501] and JMAP [RFC8621] servers MUST apply the "Snoozed" | |||
| attribute to this mailbox. The message will reside in this special | (Section 8.2) attribute to this mailbox. The message will reside in | |||
| mailbox until the prescribed awaken time at which it will be moved | this special mailbox until the prescribed awaken time at which it | |||
| into the specified target mailbox. | will be moved into the specified target mailbox. | |||
| 4.1. Mailbox Argument | 4.1. Mailbox Argument | |||
| The optional :mailbox argument is used to specify the target mailbox | The optional :mailbox argument is used to specify the target mailbox | |||
| that the message will be filed into when it is awakened. It is | that the message will be filed into when it is awakened. It is | |||
| equivalent to the mailbox argument of the fileinto action (see | equivalent to the mailbox argument of the fileinto action (see | |||
| Section 4.1 of [RFC5228]). | Section 4.1 of [RFC5228]). | |||
| If :mailbox is omitted, or if the specified mailbox doesn't exist at | If :mailbox is omitted, or if the specified mailbox doesn't exist at | |||
| the time of awakening, the message will be filed into the user's main | the time of awakening, the message will be filed into the user's main | |||
| mailbox. For instance, in an implementation where the IMAP server is | mailbox. For instance, in an implementation where an IMAP server is | |||
| running scripts on behalf of the user at time of delivery, the user's | running scripts on behalf of the user at time of delivery, the user's | |||
| "INBOX" would be the implicit target for awakening messages. | "INBOX" would be the implicit target for awakening messages. | |||
| 4.2. Weekdays Argument | 4.2. Weekdays Argument | |||
| The optional :weekdays argument specifies the set of days on which | The optional :weekdays argument specifies the set of days on which | |||
| the specified set of awakening times apply. Each day of the week is | the specified set of awakening times apply. Each day of the week is | |||
| expressed as an integer between "0" and "6". "0" is Sunday, "1" is | expressed as an integer between "0" and "6". "0" is Sunday, "1" is | |||
| Monday, etc. This syntax matches that of the "weekday" date-part | Monday, etc. This syntax matches that of the "weekday" date-part | |||
| argument to the date test extension (see Section 4.2 of [RFC5260]). | argument to the date test extension (see Section 4.2 of [RFC5260]). | |||
| skipping to change at page 5, line 19 ¶ | skipping to change at page 5, line 19 ¶ | |||
| message would be awakened and filed. | message would be awakened and filed. | |||
| The following example shows awaken times rolling into the next day or | The following example shows awaken times rolling into the next day or | |||
| week. Note that 2020-07-30 falls on a Thursday. | week. Note that 2020-07-30 falls on a Thursday. | |||
| require "snooze"; | require "snooze"; | |||
| snooze :weekdays ["1", "3", "5", "2", "4"] | snooze :weekdays ["1", "3", "5", "2", "4"] | |||
| :tzid "Australia/Melbourne" ["12:00:00", | :tzid "Australia/Melbourne" ["12:00:00", | |||
| "08:00:00", "16:00:00"]; | "08:00:00", "16:00:00"]; | |||
| +----------------------+---------------------+---------------------+ | +======================+=====================+=====================+ | |||
| | Arrival (UTC) | Arrival (Melbourne) | Awaken (Melbourne) | | | Arrival (UTC) | Arrival (Melbourne) | Awaken (Melbourne) | | |||
| +----------------------+---------------------+---------------------+ | +======================+=====================+=====================+ | |||
| | 2020-07-30T00:00:00Z | --07-30T10:00:00+10 | --07-30T12:00:00+10 | | | 2020-07-30T00:00:00Z | --07-30T10:00:00+10 | --07-30T12:00:00+10 | | |||
| +----------------------+---------------------+---------------------+ | ||||
| | 2020-07-30T04:00:00Z | --07-30T14:00:00+10 | --07-30T16:00:00+10 | | | 2020-07-30T04:00:00Z | --07-30T14:00:00+10 | --07-30T16:00:00+10 | | |||
| +----------------------+---------------------+---------------------+ | ||||
| | 2020-07-30T08:00:00Z | --07-30T18:00:00+10 | --07-31T08:00:00+10 | | | 2020-07-30T08:00:00Z | --07-30T18:00:00+10 | --07-31T08:00:00+10 | | |||
| +----------------------+---------------------+---------------------+ | ||||
| | 2020-07-31T12:00:00Z | --07-31T22:00:00+10 | --08-03T08:00:00+10 | | | 2020-07-31T12:00:00Z | --07-31T22:00:00+10 | --08-03T08:00:00+10 | | |||
| +----------------------+---------------------+---------------------+ | ||||
| | 2020-08-01T16:00:00Z | --08-02T02:00:00+10 | --08-03T08:00:00+10 | | | 2020-08-01T16:00:00Z | --08-02T02:00:00+10 | --08-03T08:00:00+10 | | |||
| +----------------------+---------------------+---------------------+ | +----------------------+---------------------+---------------------+ | |||
| Table 1 | ||||
| The following example shows awaken times falling before, during, and | The following example shows awaken times falling before, during, and | |||
| after a daylight saving to standard time transition. Note that the | after a daylight saving to standard time transition. Note that the | |||
| transition occurs at 2020-11-01T02:00:00-04. | transition occurs at 2020-11-01T02:00:00-04. | |||
| require "snooze"; | require "snooze"; | |||
| snooze :tzid "America/New_York" "01:30:00"; | snooze :tzid "America/New_York" "01:30:00"; | |||
| +----------------------+---------------------+---------------------+ | +======================+=====================+=====================+ | |||
| | Arrival (UTC) | Arrival (New York) | Awaken (New York) | | | Arrival (UTC) | Arrival (New York) | Awaken (New York) | | |||
| +----------------------+---------------------+---------------------+ | +======================+=====================+=====================+ | |||
| | 2020-11-01T05:00:00Z | --11-01T01:00:00-04 | --11-01T01:30:00-04 | | | 2020-11-01T05:00:00Z | --11-01T01:00:00-04 | --11-01T01:30:00-04 | | |||
| +----------------------+---------------------+---------------------+ | ||||
| | 2020-11-01T06:00:00Z | --11-01T01:00:00-05 | --11-02T01:30:00-05 | | | 2020-11-01T06:00:00Z | --11-01T01:00:00-05 | --11-02T01:30:00-05 | | |||
| +----------------------+---------------------+---------------------+ | ||||
| | 2020-11-01T07:00:00Z | --11-01T02:00:00-05 | --11-02T01:30:00-05 | | | 2020-11-01T07:00:00Z | --11-01T02:00:00-05 | --11-02T01:30:00-05 | | |||
| +----------------------+---------------------+---------------------+ | +----------------------+---------------------+---------------------+ | |||
| Table 2 | ||||
| The following example shows awaken times falling before, during, and | The following example shows awaken times falling before, during, and | |||
| after a standard to daylight saving time transition. Note that the | after a standard to daylight saving time transition. Note that the | |||
| transition occurs at 2021-03-14T02:00:00-05. | transition occurs at 2021-03-14T02:00:00-05. | |||
| require "snooze"; | require "snooze"; | |||
| snooze :tzid "America/New_York" "02:30:00"; | snooze :tzid "America/New_York" "02:30:00"; | |||
| +----------------------+---------------------+---------------------+ | ||||
| +======================+=====================+=====================+ | ||||
| | Arrival (UTC) | Arrival (New York) | Awaken (New York) | | | Arrival (UTC) | Arrival (New York) | Awaken (New York) | | |||
| +----------------------+---------------------+---------------------+ | +======================+=====================+=====================+ | |||
| | 2021-03-13T06:30:00Z | --03-13T01:30:00-05 | --03-13T02:30:00-05 | | | 2021-03-13T06:30:00Z | --03-13T01:30:00-05 | --03-13T02:30:00-05 | | |||
| +----------------------+---------------------+---------------------+ | ||||
| | 2021-03-14T06:30:00Z | --03-14T01:30:00-05 | --03-14T03:30:00-04 | | | 2021-03-14T06:30:00Z | --03-14T01:30:00-05 | --03-14T03:30:00-04 | | |||
| +----------------------+---------------------+---------------------+ | ||||
| | 2021-03-14T07:30:00Z | --03-14T03:30:00-04 | --03-15T02:30:00-04 | | | 2021-03-14T07:30:00Z | --03-14T03:30:00-04 | --03-15T02:30:00-04 | | |||
| +----------------------+---------------------+---------------------+ | +----------------------+---------------------+---------------------+ | |||
| Table 3 | ||||
| 4.4. Interaction with Extensions to the Fileinto Action | 4.4. Interaction with Extensions to the Fileinto Action | |||
| Some tagged arguments defined in extensions to the fileinto action | Some tagged arguments defined in extensions to the fileinto action | |||
| can be used together with the snooze action. The sections below | can be used together with the snooze action. The sections below | |||
| describe these interactions. Tagged arguments in future extensions | describe these interactions. Tagged arguments in future extensions | |||
| to the fileinto action need to describe their interaction with the | to the fileinto action need to describe their interaction with the | |||
| snooze extension, if any. | snooze extension, if any. | |||
| When any fileinto extension arguments are used with the snooze | When any fileinto extension arguments are used with the snooze | |||
| extension, the corresponding extension MUST be enabled, and the | extension, the corresponding extension MUST be enabled, and the | |||
| skipping to change at page 7, line 10 ¶ | skipping to change at page 7, line 20 ¶ | |||
| This document doesn't dictate how the Sieve interpreter will set the | This document doesn't dictate how the Sieve interpreter will set the | |||
| IMAP flags. In particular, the Sieve interpreter may work as an IMAP | IMAP flags. In particular, the Sieve interpreter may work as an IMAP | |||
| client or may have direct access to the mailstore. | client or may have direct access to the mailstore. | |||
| The general requirements for flag handling specified in Section 2 of | The general requirements for flag handling specified in Section 2 of | |||
| [RFC5232] MUST be followed. | [RFC5232] MUST be followed. | |||
| 4.4.1.1. Example | 4.4.1.1. Example | |||
| The following example leverage the Date [RFC5260], Relational | The following example leverages the Date [RFC5260], Relational | |||
| [RFC5231], and Imap4flags [RFC5232] extensions to snooze messages | [RFC5231], and Imap4flags [RFC5232] extensions to snooze messages | |||
| received after business hours until the following work day. Note | received after business hours until the following work day. Note | |||
| that the message is marked as important when it is snoozed, and will | that the message is marked as important when it is snoozed, and will | |||
| be marked as unread when it is awakened. | be marked as unread when it is awakened. | |||
| require ["snooze", "imap4flags", "date", "relational"]; | require ["snooze", "imap4flags", "date", "relational"]; | |||
| if anyof(header :is "from" "boss@example.com", | if anyof(header :is "from" "boss@example.com", | |||
| currentdate :is "weekday" "0", | currentdate :is "weekday" "0", | |||
| currentdate :is "weekday" "6", | currentdate :is "weekday" "6", | |||
| skipping to change at page 8, line 4 ¶ | skipping to change at page 8, line 13 ¶ | |||
| target mailbox. | target mailbox. | |||
| 4.4.3. Special-Use Extension | 4.4.3. Special-Use Extension | |||
| This document extends the definition of the ":specialuse" [RFC8579] | This document extends the definition of the ":specialuse" [RFC8579] | |||
| tagged argument so that it can be used with the snooze action. | tagged argument so that it can be used with the snooze action. | |||
| AWAKEN-OPTIONS /= SPECIAL-USE | AWAKEN-OPTIONS /= SPECIAL-USE | |||
| SPECIAL-USE = ":specialuse" string | SPECIAL-USE = ":specialuse" string | |||
| If the optional ":specialuse" argument is specified with snooze, it | If the optional ":specialuse" argument is specified with snooze, it | |||
| instructs the Sieve interpreter to check whether a mailbox exists | instructs the Sieve interpreter to check whether a mailbox exists | |||
| with the specific special-use flag assigned to it. If such a mailbox | with the specific special-use flag assigned to it. If such a mailbox | |||
| exists, the awakened message is filed into the special-use mailbox. | exists, the awakened message is filed into the special-use mailbox. | |||
| Otherwise, the awakened message is filed into the target mailbox. | Otherwise, the awakened message is filed into the target mailbox. | |||
| If both the optional ":specialuse" and ":create" arguments are | If both the optional ":specialuse" and ":create" arguments are | |||
| specified with snooze, the Sieve interpreter is instructed to create | specified with snooze, the Sieve interpreter is instructed to create | |||
| the target mailbox per Section 4.1 of [RFC8579], if needed. | the target mailbox per Section 4.1 of [RFC8579], if needed. | |||
| 4.4.4. MailboxID Extension | 4.4.4. MailboxID Extension | |||
| This document extends the definition of the ":mailboxid" | This document extends the definition of the ":mailboxid" [RFC9042] | |||
| [I-D.ietf-extra-sieve-mailboxid] tagged argument so that it can be | tagged argument so that it can be used with the snooze action. | |||
| used with the snooze action. | ||||
| AWAKEN-OPTIONS /= MAILBOXID | AWAKEN-OPTIONS /= MAILBOXID | |||
| MAILBOXID = ":mailboxid" string | MAILBOXID = ":mailboxid" string | |||
| If the optional ":mailboxid" argument is specified with snooze, it | If the optional ":mailboxid" argument is specified with snooze, it | |||
| instructs the Sieve interpreter to check whether a mailbox exists in | instructs the Sieve interpreter to check whether a mailbox exists in | |||
| the user's personal namespace [RFC2342] with the specified MAILBOXID | the user's personal namespace [RFC2342] with the specified MAILBOXID | |||
| [RFC8474]. If such a mailbox exists, the awakened message is filed | [RFC8474]. If such a mailbox exists, the awakened message is filed | |||
| into that mailbox. Otherwise, the awakened message is filed into the | into that mailbox. Otherwise, the awakened message is filed into the | |||
| skipping to change at page 9, line 14 ¶ | skipping to change at page 9, line 21 ¶ | |||
| According to [RFC7942], "this will allow reviewers and working groups | According to [RFC7942], "this will allow reviewers and working groups | |||
| to assign due consideration to documents that have the benefit of | to assign due consideration to documents that have the benefit of | |||
| running code, which may serve as evidence of valuable experimentation | running code, which may serve as evidence of valuable experimentation | |||
| and feedback that have made the implemented protocols more mature. | and feedback that have made the implemented protocols more mature. | |||
| It is up to the individual working groups to use this information as | It is up to the individual working groups to use this information as | |||
| they see fit". | they see fit". | |||
| 5.1. Cyrus Server | 5.1. Cyrus Server | |||
| The open source Cyrus Server [1] project is a highly scalable | The open source Cyrus Server (http://www.cyrusimap.org/) project is a | |||
| enterprise mail system which supports Sieve email filtering at the | highly scalable enterprise mail system which supports Sieve email | |||
| point of final delivery. This production level Sieve implementation | filtering at the point of final delivery. This production level | |||
| supports all of the requirements described in this document. This | Sieve implementation supports all of the requirements described in | |||
| implementation is freely distributable under a BSD style license from | this document. This implementation is freely distributable under a | |||
| Computing Services at Carnegie Mellon University [2]. | BSD style license from Computing Services at Carnegie Mellon | |||
| University (http://www.cmu.edu/computing/). | ||||
| 6. Security Considerations | 6. Security Considerations | |||
| Security considerations are discussed in [RFC5228], [RFC5232], | Security considerations are discussed in [RFC5228], [RFC5232], | |||
| [RFC8579], and [I-D.ietf-extra-sieve-mailboxid]. | [RFC8579], and [RFC9042]. | |||
| It is believed that this extension doesn't introduce any additional | It is believed that this extension doesn't introduce any additional | |||
| security concerns. | security concerns. | |||
| 7. Privacy Considerations | 7. Privacy Considerations | |||
| It is believed that this extension doesn't introduce any privacy | It is believed that this extension doesn't introduce any privacy | |||
| considerations beyond those in [RFC5228]. | considerations beyond those in [RFC5228]. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| 8.1. Registration of Sieve Extension | 8.1. Registration of Sieve Extension | |||
| This document defines the following new Sieve extension to be added | This document defines the following new Sieve extension to be added | |||
| to the registry defined in Section 6.2 of [RFC5228] and located here: | to the registry defined in Section 6.2 of [RFC5228] and located here: | |||
| <https://www.iana.org/assignments/sieve-extensions/sieve- | https://www.iana.org/assignments/sieve-extensions/sieve- | |||
| extensions.xhtml#sieve-extensions> | extensions.xhtml#sieve-extensions | |||
| IANA are requested to add a capability to the Sieve Extensions | IANA are requested to add a capability to the Sieve Extensions | |||
| registry: | registry: | |||
| To: iana@iana.org | To: iana@iana.org | |||
| Subject: Registration of new Sieve extension | Subject: Registration of new Sieve extension | |||
| Capability name: snooze | Capability name: snooze | |||
| Description: Adds the "snooze" action command to postpone delivery | Description: Adds the "snooze" action command to postpone delivery | |||
| of a message into a target mailbox until a later point in time. | of a message into a target mailbox until a later point in time. | |||
| RFC number: RFC XXXX | RFC number: RFC XXXX | |||
| Contact address: The Sieve discussion list <sieve@ietf.org> | Contact address: The Sieve discussion list <sieve@ietf.org> | |||
| 8.2. Registration of IMAP Mailbox Name Attribute | 8.2. Registration of IMAP Mailbox Name Attribute | |||
| This document defines the following new IMAP mailbox name attribute | This document defines the following new IMAP mailbox name attribute | |||
| to be added to the registry defined in Section 6.2 of [RFC8457] and | to be added to the registry defined in Section 6.2 of [RFC8457] and | |||
| located here: <https://www.iana.org/assignments/imap-mailbox-name- | located here: https://www.iana.org/assignments/imap-mailbox-name- | |||
| attributes/imap-mailbox-name-attributes.xhtml#imap-mailbox-name- | attributes/imap-mailbox-name-attributes.xhtml#imap-mailbox-name- | |||
| attributes> | attributes | |||
| IANA are requested to add an attribute to the IMAP Mailbox Name | IANA are requested to add an attribute to the IMAP Mailbox Name | |||
| Attribute registry: | Attribute registry: | |||
| To: iana@iana.org | To: iana@iana.org | |||
| Subject: Registration of new IMAP Mailbox Name Attribute | Subject: Registration of new IMAP Mailbox Name Attribute | |||
| Attribute name: Snoozed | Attribute name: Snoozed | |||
| skipping to change at page 10, line 42 ¶ | skipping to change at page 11, line 5 ¶ | |||
| 9. Acknowledgments | 9. Acknowledgments | |||
| The authors would like to thank the following individuals for | The authors would like to thank the following individuals for | |||
| contributing their ideas and support for writing this specification: | contributing their ideas and support for writing this specification: | |||
| Ned Freed, Barry Leiba, and Alexey Melnikov. | Ned Freed, Barry Leiba, and Alexey Melnikov. | |||
| 10. References | 10. References | |||
| 10.1. Normative References | 10.1. Normative References | |||
| [I-D.ietf-extra-sieve-mailboxid] | ||||
| Gondwana, B., "Sieve Email Filtering: delivery by | ||||
| mailboxid", draft-ietf-extra-sieve-mailboxid-06 (work in | ||||
| progress), December 2020. | ||||
| [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>. | |||
| [RFC2342] Gahrns, M. and C. Newman, "IMAP4 Namespace", RFC 2342, | [RFC2342] Gahrns, M. and C. Newman, "IMAP4 Namespace", RFC 2342, | |||
| DOI 10.17487/RFC2342, May 1998, | DOI 10.17487/RFC2342, May 1998, | |||
| <https://www.rfc-editor.org/info/rfc2342>. | <https://www.rfc-editor.org/info/rfc2342>. | |||
| [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION | [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION | |||
| skipping to change at page 11, line 47 ¶ | skipping to change at page 12, line 5 ¶ | |||
| <https://www.rfc-editor.org/info/rfc8457>. | <https://www.rfc-editor.org/info/rfc8457>. | |||
| [RFC8474] Gondwana, B., Ed., "IMAP Extension for Object | [RFC8474] Gondwana, B., Ed., "IMAP Extension for Object | |||
| Identifiers", RFC 8474, DOI 10.17487/RFC8474, September | Identifiers", RFC 8474, DOI 10.17487/RFC8474, September | |||
| 2018, <https://www.rfc-editor.org/info/rfc8474>. | 2018, <https://www.rfc-editor.org/info/rfc8474>. | |||
| [RFC8579] Bosch, S., "Sieve Email Filtering: Delivering to Special- | [RFC8579] Bosch, S., "Sieve Email Filtering: Delivering to Special- | |||
| Use Mailboxes", RFC 8579, DOI 10.17487/RFC8579, May 2019, | Use Mailboxes", RFC 8579, DOI 10.17487/RFC8579, May 2019, | |||
| <https://www.rfc-editor.org/info/rfc8579>. | <https://www.rfc-editor.org/info/rfc8579>. | |||
| [RFC9042] Gondwana, B., Ed., "Sieve Email Filtering: Delivery by | ||||
| MAILBOXID", RFC 9042, DOI 10.17487/RFC9042, June 2021, | ||||
| <https://www.rfc-editor.org/info/rfc9042>. | ||||
| [tzdb] Internet Assigned Numbers Authority, "Time Zone Database", | [tzdb] Internet Assigned Numbers Authority, "Time Zone Database", | |||
| <https://www.iana.org/time-zones>. | <https://www.iana.org/time-zones>. | |||
| 10.2. Informative References | 10.2. Informative References | |||
| [RFC5231] Segmuller, W. and B. Leiba, "Sieve Email Filtering: | [RFC5231] Segmuller, W. and B. Leiba, "Sieve Email Filtering: | |||
| Relational Extension", RFC 5231, DOI 10.17487/RFC5231, | Relational Extension", RFC 5231, DOI 10.17487/RFC5231, | |||
| January 2008, <https://www.rfc-editor.org/info/rfc5231>. | January 2008, <https://www.rfc-editor.org/info/rfc5231>. | |||
| [RFC5260] Freed, N., "Sieve Email Filtering: Date and Index | [RFC5260] Freed, N., "Sieve Email Filtering: Date and Index | |||
| Extensions", RFC 5260, DOI 10.17487/RFC5260, July 2008, | Extensions", RFC 5260, DOI 10.17487/RFC5260, July 2008, | |||
| <https://www.rfc-editor.org/info/rfc5260>. | <https://www.rfc-editor.org/info/rfc5260>. | |||
| [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | |||
| Code: The Implementation Status Section", BCP 205, | Code: The Implementation Status Section", BCP 205, | |||
| RFC 7942, DOI 10.17487/RFC7942, July 2016, | RFC 7942, DOI 10.17487/RFC7942, July 2016, | |||
| <https://www.rfc-editor.org/info/rfc7942>. | <https://www.rfc-editor.org/info/rfc7942>. | |||
| 10.3. URIs | [RFC8621] Jenkins, N. and C. Newman, "The JSON Meta Application | |||
| Protocol (JMAP) for Mail", RFC 8621, DOI 10.17487/RFC8621, | ||||
| [1] http://www.cyrusimap.org/ | August 2019, <https://www.rfc-editor.org/info/rfc8621>. | |||
| [2] http://www.cmu.edu/computing/ | ||||
| Appendix A. Change History (To be removed by RFC Editor before | Appendix A. Change History (To be removed by RFC Editor before | |||
| publication) | publication) | |||
| Changes since draft-ietf-extra-sieve-snooze-01: | ||||
| * Updated :mailboxid reference to RFC9042. | ||||
| * Added an informative reference to RFC8621. | ||||
| * Miscellaneous editorial changes. | ||||
| Changes since draft-ietf-extra-sieve-snooze-00: | Changes since draft-ietf-extra-sieve-snooze-00: | |||
| o Disallow both :mailboxid and :specialuse in the same snooze | * Disallow both :mailboxid and :specialuse in the same snooze | |||
| action. | action. | |||
| o Updated :mailboxid reference to draft-ietf-extra-sieve-mailboxid | * Updated :mailboxid reference to draft-ietf-extra-sieve-mailboxid | |||
| o Specified that snooze cancels implicit keep. | * Specified that snooze cancels implicit keep. | |||
| o Specified that implementations MUST use a "snoozed" mailbox. | * Specified that implementations MUST use a "snoozed" mailbox. | |||
| o Added registration of \Snoozed Special-Use Attribute. | * Added registration of \Snoozed Special-Use Attribute. | |||
| o Added example of manipulating IMAP flags at both snooze time and | * Added example of manipulating IMAP flags at both snooze time and | |||
| awaken time. | awaken time. | |||
| o Miscellaneous editorial changes. | * Miscellaneous editorial changes. | |||
| Authors' Addresses | Authors' Addresses | |||
| Kenneth Murchison | Kenneth Murchison | |||
| Fastmail US LLC | Fastmail US LLC | |||
| 1429 Walnut Street - Suite 1201 | 1429 Walnut Street - Suite 1201 | |||
| Philadelphia, PA 19102 | Philadelphia, PA 19102 | |||
| USA | United States of America | |||
| Email: murch@fastmailteam.com | Email: murch@fastmailteam.com | |||
| Ricardo Signes | Ricardo Signes | |||
| Fastmail US LLC | Fastmail US LLC | |||
| 1429 Walnut Street - Suite 1201 | 1429 Walnut Street - Suite 1201 | |||
| Philadelphia, PA 19102 | Philadelphia, PA 19102 | |||
| USA | United States of America | |||
| Email: rjbs@fastmailteam.com | Email: rjbs@fastmailteam.com | |||
| Neil Jenkins | Neil Jenkins | |||
| Fastmail Pty Ltd | Fastmail Pty Ltd | |||
| Level 2, 114 William Street | Level 2, 114 William Street | |||
| Melbourne, VIC 3000 | Melbourne VIC 3000 | |||
| Australia | Australia | |||
| Email: neilj@fastmailteam.com | Email: neilj@fastmailteam.com | |||
| End of changes. 52 change blocks. | ||||
| 67 lines changed or deleted | 87 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||