idnits 2.17.1 draft-ietf-extra-sieve-snooze-04.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- -- The draft header indicates that this document updates RFC5232, but the abstract doesn't seem to mention this, which it should. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year (Using the creation date from RFC5232, updated by this document, for RFC5378 checks: 2005-02-08) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (7 March 2022) is 780 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-06) exists of draft-ietf-extra-sieve-action-registry-02 ** Obsolete normative reference: RFC 3501 (Obsoleted by RFC 9051) ** Obsolete normative reference: RFC 4234 (Obsoleted by RFC 5234) Summary: 2 errors (**), 0 flaws (~~), 2 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 EXTRA K. Murchison 3 Internet-Draft R. Signes 4 Updates: 5232 (if approved) N. Jenkins 5 Intended status: Standards Track Fastmail 6 Expires: 8 September 2022 7 March 2022 8 Sieve Email Filtering: Snooze Extension 9 draft-ietf-extra-sieve-snooze-04 11 Abstract 13 This document describes the "snooze" extension to the Sieve email 14 filtering language. The "snooze" extension gives Sieve the ability 15 to postpone the delivery of an incoming email message into a target 16 mailbox until a later point in time. 18 Status of This Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF). Note that other groups may also distribute 25 working documents as Internet-Drafts. The list of current Internet- 26 Drafts is at https://datatracker.ietf.org/drafts/current/. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 This Internet-Draft will expire on 8 September 2022. 35 Copyright Notice 37 Copyright (c) 2022 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 42 license-info) in effect on the date of publication of this document. 43 Please review these documents carefully, as they describe your rights 44 and restrictions with respect to this document. Code Components 45 extracted from this document must include Revised BSD License text as 46 described in Section 4.e of the Trust Legal Provisions and are 47 provided without warranty as described in the Revised BSD License. 49 Table of Contents 51 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 52 2. Conventions Used in This Document . . . . . . . . . . . . . . 2 53 3. Capability Identifier . . . . . . . . . . . . . . . . . . . . 3 54 4. Snooze Action . . . . . . . . . . . . . . . . . . . . . . . . 3 55 4.1. Mailbox Argument . . . . . . . . . . . . . . . . . . . . 4 56 4.2. Weekdays Argument . . . . . . . . . . . . . . . . . . . . 4 57 4.3. Times and TZID Arguments . . . . . . . . . . . . . . . . 4 58 4.3.1. Awaken Times Examples . . . . . . . . . . . . . . . . 5 59 4.4. Interaction with Extensions to the Fileinto Action . . . 6 60 4.4.1. Imap4flags Extension . . . . . . . . . . . . . . . . 6 61 4.4.2. Mailbox Extension . . . . . . . . . . . . . . . . . . 7 62 4.4.3. Special-Use Extension . . . . . . . . . . . . . . . . 8 63 4.4.4. MailboxID Extension . . . . . . . . . . . . . . . . . 8 64 5. Implementation Status . . . . . . . . . . . . . . . . . . . . 8 65 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 66 7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 9 67 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 68 8.1. Registration of Sieve Extension . . . . . . . . . . . . . 9 69 8.2. Registration of Sieve Action . . . . . . . . . . . . . . 10 70 8.3. Registration of IMAP Mailbox Name Attribute . . . . . . . 11 71 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 11 72 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 73 10.1. Normative References . . . . . . . . . . . . . . . . . . 11 74 10.2. Informative References . . . . . . . . . . . . . . . . . 12 75 Appendix A. Change History (To be removed by RFC Editor before 76 publication) . . . . . . . . . . . . . . . . . . . . . . 13 77 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 79 1. Introduction 81 Users are not always ready, willing, or able to read and respond to 82 email messages at the time of their arrival. Sometimes it is 83 desirable to have messages appear in a mailbox at a more convenient 84 time for the user to act upon them. 86 This document defines an extension to the Sieve language [RFC5228] 87 that enables scripts to postpone the delivery of a message into a 88 target mailbox until a later point in time. 90 2. Conventions Used in This Document 92 Conventions for notations are as in Section 1.1 of [RFC5228], 93 including use of the "Usage:" label for the definition of action and 94 tagged arguments syntax. 96 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 97 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 98 "OPTIONAL" in this document are to be interpreted as described in 99 BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all 100 capitals, as shown here. 102 3. Capability Identifier 104 Sieve implementations that implement this extension have an 105 identifier of "snooze" for use with the capability mechanism. 107 4. Snooze Action 109 Usage: snooze *AWAKEN-OPTIONS 111 The AWAKEN-OPTIONS argument is defined here in ABNF [RFC4234] syntax 112 so that it can be modified by other extensions. 114 AWAKEN-OPTIONS = MAILBOX / WEEKDAYS / TZID 115 ; each option MUST NOT appear more than once 116 ; however, per Section 2.6.2 of RFC 5228, 117 ; the tagged arguments in AWAKEN-OPTIONS 118 ; may appear in any order 120 MAILBOX = ":mailbox" string 121 WEEKDAYS = ":weekdays" string-list 122 TZID = ":tzid" string 124 The "snooze" action cancels the implicit keep and postpones delivery 125 of the message into the specified mailbox at a later point in time. 127 The snooze action is semantically equivalent to a delayed fileinto 128 action (see Section 4.1 of [RFC5228]). The arguments of the snooze 129 action specify when, where, and how the awakened message will be 130 filed. 132 A Sieve interpreter MUST implement the snooze action by delivering 133 the message to a special "snoozed" mailbox within its mailstore. 134 IMAP [RFC3501] and JMAP [RFC8621] servers MUST apply the "Snoozed" 135 (Section 8.3) attribute to this mailbox. The message will reside in 136 this special mailbox until the prescribed awaken time at which it 137 will be moved into the specified target mailbox. 139 4.1. Mailbox Argument 141 The optional :mailbox argument is used to specify the target mailbox 142 that the message will be filed into when it is awakened. It is 143 equivalent to the mailbox argument of the fileinto action (see 144 Section 4.1 of [RFC5228]). 146 If :mailbox is omitted, or if the specified mailbox doesn't exist at 147 the time of awakening, the message will be filed into the user's main 148 mailbox. For instance, in an implementation where an IMAP server is 149 running scripts on behalf of the user at time of delivery, the user's 150 "INBOX" would be the implicit target for awakening messages. 152 4.2. Weekdays Argument 154 The optional :weekdays argument specifies the set of days on which 155 the specified set of awakening times apply. Each day of the week is 156 expressed as an integer between "0" and "6". "0" is Sunday, "1" is 157 Monday, etc. This syntax matches that of the "weekday" date-part 158 argument to the date test extension (see Section 4.2 of [RFC5260]). 160 If :weekdays is omitted, the set of awakening times applies to every 161 day of the week. 163 4.3. Times and TZID Arguments 165 The required times argument, along with the optional :tzid argument, 166 are used to specify when a snoozed message will be awakened. Each 167 time is specified in "hh:mm:ss" format and is interpreted as the 168 local time in the time zone specified by the :tzid argument. 170 The value of the :tzid argument MUST be a time zone identifier from 171 the IANA Time Zone Database [tzdb]. If :tzid is omitted, the time 172 zone of the Sieve interpreter is used. 174 The combination of the weekdays and times form a chronological list 175 of awaken times. When a message is snoozed, it is assigned the next 176 future awaken time in the list. If a message is snoozed on a day 177 with no awaken times, or after the last awaken time on a given day, 178 the first awaken time on the next available day is used. 180 If the local time in the specified time zone occurs more than once 181 (daylight saving to standard time transition), the first occurrence 182 of the specified time value is used. If the local time in the 183 specified time zone does not occur (standard to daylight saving time 184 transition), the specified time value is interpreted using the UTC 185 offset prior to the transition. 187 4.3.1. Awaken Times Examples 189 The following examples show, given the specified snooze action and a 190 set of message arrival times, the corresponding times at which the 191 message would be awakened and filed. 193 The following example shows awaken times rolling into the next day or 194 week. Note that 2020-07-30 falls on a Thursday. 196 require "snooze"; 197 snooze :weekdays ["1", "3", "5", "2", "4"] 198 :tzid "Australia/Melbourne" ["12:00:00", 199 "08:00:00", "16:00:00"]; 201 +======================+=====================+=====================+ 202 | Arrival (UTC) | Arrival (Melbourne) | Awaken (Melbourne) | 203 +======================+=====================+=====================+ 204 | 2020-07-30T00:00:00Z | --07-30T10:00:00+10 | --07-30T12:00:00+10 | 205 +----------------------+---------------------+---------------------+ 206 | 2020-07-30T04:00:00Z | --07-30T14:00:00+10 | --07-30T16:00:00+10 | 207 +----------------------+---------------------+---------------------+ 208 | 2020-07-30T08:00:00Z | --07-30T18:00:00+10 | --07-31T08:00:00+10 | 209 +----------------------+---------------------+---------------------+ 210 | 2020-07-31T12:00:00Z | --07-31T22:00:00+10 | --08-03T08:00:00+10 | 211 +----------------------+---------------------+---------------------+ 212 | 2020-08-01T16:00:00Z | --08-02T02:00:00+10 | --08-03T08:00:00+10 | 213 +----------------------+---------------------+---------------------+ 215 Table 1 217 The following example shows awaken times falling before, during, and 218 after a daylight saving to standard time transition. Note that the 219 transition occurs at 2020-11-01T02:00:00-04. 221 require "snooze"; 222 snooze :tzid "America/New_York" "01:30:00"; 224 +======================+=====================+=====================+ 225 | Arrival (UTC) | Arrival (New York) | Awaken (New York) | 226 +======================+=====================+=====================+ 227 | 2020-11-01T05:00:00Z | --11-01T01:00:00-04 | --11-01T01:30:00-04 | 228 +----------------------+---------------------+---------------------+ 229 | 2020-11-01T06:00:00Z | --11-01T01:00:00-05 | --11-02T01:30:00-05 | 230 +----------------------+---------------------+---------------------+ 231 | 2020-11-01T07:00:00Z | --11-01T02:00:00-05 | --11-02T01:30:00-05 | 232 +----------------------+---------------------+---------------------+ 234 Table 2 236 The following example shows awaken times falling before, during, and 237 after a standard to daylight saving time transition. Note that the 238 transition occurs at 2021-03-14T02:00:00-05. 240 require "snooze"; 241 snooze :tzid "America/New_York" "02:30:00"; 243 +======================+=====================+=====================+ 244 | Arrival (UTC) | Arrival (New York) | Awaken (New York) | 245 +======================+=====================+=====================+ 246 | 2021-03-13T06:30:00Z | --03-13T01:30:00-05 | --03-13T02:30:00-05 | 247 +----------------------+---------------------+---------------------+ 248 | 2021-03-14T06:30:00Z | --03-14T01:30:00-05 | --03-14T03:30:00-04 | 249 +----------------------+---------------------+---------------------+ 250 | 2021-03-14T07:30:00Z | --03-14T03:30:00-04 | --03-15T02:30:00-04 | 251 +----------------------+---------------------+---------------------+ 253 Table 3 255 4.4. Interaction with Extensions to the Fileinto Action 257 Some tagged arguments defined in extensions to the fileinto action 258 can be used together with the snooze action. The sections below 259 describe these interactions. Tagged arguments in future extensions 260 to the fileinto action need to describe their interaction with the 261 snooze extension, if any. 263 When any fileinto extension arguments are used with the snooze 264 extension, the corresponding extension MUST be enabled, and the 265 arguments are defined to have the same syntax, semantics, and 266 treatment as they do with the fileinto action. 268 4.4.1. Imap4flags Extension 270 When the "imap4flags" [RFC5232] extension is enabled in a script, two 271 additional tagged arguments are added to "snooze" that allow 272 manipulating the set of flags on a snoozed message. 274 AWAKEN-OPTIONS /= ADDFLAGS / REMOVEFLAGS 276 ADDFLAGS = ":addflags" string-list 277 REMOVEFLAGS = ":removeflags" string-list 279 The optional :addflags and :removeflags arguments are used to specify 280 which IMAP [RFC3501] flags should be added to and/or removed from the 281 set of IMAP flags present on the snoozed message at the time of 282 awakening. Note the set of IMAP flags present at the time of 283 awakening may be the empty set. 285 If the "setflag" and/or "addflag" actions have been used to store 286 IMAP flags in the imap4flags internal variable, the Sieve interpreter 287 MUST use the current value of the internal variable as the set of 288 flags to associate with the message when storing it into the 289 "snoozed" mailbox. 291 This document doesn't dictate how the Sieve interpreter will set the 292 IMAP flags. In particular, the Sieve interpreter may work as an IMAP 293 client or may have direct access to the mailstore. 295 The general requirements for flag handling specified in Section 2 of 296 [RFC5232] MUST be followed. 298 4.4.1.1. Example 300 The following example leverages the Date [RFC5260], Relational 301 [RFC5231], and Imap4flags [RFC5232] extensions to snooze messages 302 received after business hours until the following work day. Note 303 that the message is marked as important when it is snoozed, and will 304 be marked as unread when it is awakened. 306 require ["snooze", "imap4flags", "date", "relational"]; 308 if anyof(header :is "from" "boss@example.com", 309 currentdate :is "weekday" "0", 310 currentdate :is "weekday" "6", 311 currentdate :value "ge" "hour" "17") { 312 setflag "\\Important"; 313 snooze :removeflags "\\Seen" 314 :weekdays ["1". "2", "3", "4", "5"] 315 :tzid "American/New_York", "09:00"; 316 } 318 4.4.2. Mailbox Extension 320 This document extends the definition of the ":create" [RFC5490] 321 tagged argument so that it can be used with the snooze action. 323 AWAKEN-OPTIONS /= CREATE 325 CREATE = ":create" 326 ; MUST NOT be appear unless MAILBOX also appears 328 If the optional ":create" argument is specified with snooze, it 329 instructs the Sieve interpreter to create the target mailbox, if 330 needed, before attempting to file the awakened message into the 331 target mailbox. 333 4.4.3. Special-Use Extension 335 This document extends the definition of the ":specialuse" [RFC8579] 336 tagged argument so that it can be used with the snooze action. 338 AWAKEN-OPTIONS /= SPECIAL-USE 340 SPECIAL-USE = ":specialuse" string 342 If the optional ":specialuse" argument is specified with snooze, it 343 instructs the Sieve interpreter to check whether a mailbox exists 344 with the specific special-use flag assigned to it. If such a mailbox 345 exists, the awakened message is filed into the special-use mailbox. 346 Otherwise, the awakened message is filed into the target mailbox. 348 If both the optional ":specialuse" and ":create" arguments are 349 specified with snooze, the Sieve interpreter is instructed to create 350 the target mailbox per Section 4.1 of [RFC8579], if needed. 352 4.4.4. MailboxID Extension 354 This document extends the definition of the ":mailboxid" [RFC9042] 355 tagged argument so that it can be used with the snooze action. 357 AWAKEN-OPTIONS /= MAILBOXID 359 MAILBOXID = ":mailboxid" string 361 If the optional ":mailboxid" argument is specified with snooze, it 362 instructs the Sieve interpreter to check whether a mailbox exists in 363 the user's personal namespace [RFC2342] with the specified MAILBOXID 364 [RFC8474]. If such a mailbox exists, the awakened message is filed 365 into that mailbox. Otherwise, the awakened message is filed into the 366 target mailbox. 368 It is an error to specify both ":mailboxid" and ":specialuse" in the 369 same snooze action. 371 5. Implementation Status 373 < RFC Editor: before publication please remove this section and the 374 reference to [RFC7942] > 376 This section records the status of known implementations of the 377 protocol defined by this specification at the time of posting of this 378 Internet-Draft, and is based on a proposal described in [RFC7942]. 379 The description of implementations in this section is intended to 380 assist the IETF in its decision processes in progressing drafts to 381 RFCs. Please note that the listing of any individual implementation 382 here does not imply endorsement by the IETF. Furthermore, no effort 383 has been spent to verify the information presented here that was 384 supplied by IETF contributors. This is not intended as, and must not 385 be construed to be, a catalog of available implementations or their 386 features. Readers are advised to note that other implementations may 387 exist. 389 According to [RFC7942], "this will allow reviewers and working groups 390 to assign due consideration to documents that have the benefit of 391 running code, which may serve as evidence of valuable experimentation 392 and feedback that have made the implemented protocols more mature. 393 It is up to the individual working groups to use this information as 394 they see fit". 396 5.1. Cyrus Server 398 The open source Cyrus Server (http://www.cyrusimap.org/) project is a 399 highly scalable enterprise mail system which supports Sieve email 400 filtering at the point of final delivery. This production level 401 Sieve implementation supports all of the requirements described in 402 this document. This implementation is freely distributable under a 403 BSD style license from Computing Services at Carnegie Mellon 404 University (http://www.cmu.edu/computing/). 406 6. Security Considerations 408 Security considerations are discussed in [RFC5228], [RFC5232], 409 [RFC8579], and [RFC9042]. 411 It is believed that this extension doesn't introduce any additional 412 security concerns. 414 7. Privacy Considerations 416 It is believed that this extension doesn't introduce any privacy 417 considerations beyond those in [RFC5228]. 419 8. IANA Considerations 421 8.1. Registration of Sieve Extension 423 This document defines the following new Sieve extension to be added 424 to the registry defined in Section 6.2 of [RFC5228] and located here: 425 https://www.iana.org/assignments/sieve-extensions/sieve- 426 extensions.xhtml#sieve-extensions 427 IANA are requested to add a capability to the Sieve Extensions 428 registry: 430 To: iana@iana.org 432 Subject: Registration of new Sieve extension 434 Capability name: snooze 436 Description: Adds the "snooze" action command to postpone delivery 437 of a message into a target mailbox until a later point in time. 439 RFC number: RFC XXXX 441 Contact address: The Sieve discussion list 443 8.2. Registration of Sieve Action 445 This document defines the following new Sieve action to be added to 446 the registry defined in Section 3.1 of 447 [I-D.ietf-extra-sieve-action-registry]. 449 IANA are requested to add an action to the Sieve Action registry: 451 Name: snooze 453 Description: Postpone delivery of a message into a target mailbox 454 until a later point in time. 456 References: RFC XXXX, [RFC5232], [RFC5490], [RFC8579], [RFC9042] 458 Capabilities: "snooze", "imap4flags", "mailbox", "special-use", 459 "mailboxid". 461 Interactions: Is not compatible with the reject or ereject 462 actions. 464 Cancels Implicit Keep?: Y 466 Use with IMAP Events?: Y 468 Comments: Requires a special "snoozed" mailbox in the mailstore. 470 8.3. Registration of IMAP Mailbox Name Attribute 472 This document defines the following new IMAP mailbox name attribute 473 to be added to the registry defined in Section 6.2 of [RFC8457] and 474 located here: https://www.iana.org/assignments/imap-mailbox-name- 475 attributes/imap-mailbox-name-attributes.xhtml#imap-mailbox-name- 476 attributes 478 IANA are requested to add an attribute to the IMAP Mailbox Name 479 Attribute registry: 481 To: iana@iana.org 483 Subject: Registration of new IMAP Mailbox Name Attribute 485 Attribute name: Snoozed 487 Description: Messages that have been snoozed. 489 Reference: RFC XXXX 491 9. Acknowledgments 493 The authors would like to thank the following individuals for 494 contributing their ideas and support for writing this specification: 495 Ned Freed, Barry Leiba, and Alexey Melnikov. 497 10. References 499 10.1. Normative References 501 [I-D.ietf-extra-sieve-action-registry] 502 Melnikov, A. and K. Murchison, "IANA registry for Sieve 503 actions", Work in Progress, Internet-Draft, draft-ietf- 504 extra-sieve-action-registry-02, 7 March 2022, 505 . 508 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 509 Requirement Levels", BCP 14, RFC 2119, 510 DOI 10.17487/RFC2119, March 1997, 511 . 513 [RFC2342] Gahrns, M. and C. Newman, "IMAP4 Namespace", RFC 2342, 514 DOI 10.17487/RFC2342, May 1998, 515 . 517 [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION 518 4rev1", RFC 3501, DOI 10.17487/RFC3501, March 2003, 519 . 521 [RFC4234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax 522 Specifications: ABNF", RFC 4234, DOI 10.17487/RFC4234, 523 October 2005, . 525 [RFC5228] Guenther, P., Ed. and T. Showalter, Ed., "Sieve: An Email 526 Filtering Language", RFC 5228, DOI 10.17487/RFC5228, 527 January 2008, . 529 [RFC5232] Melnikov, A., "Sieve Email Filtering: Imap4flags 530 Extension", RFC 5232, DOI 10.17487/RFC5232, January 2008, 531 . 533 [RFC5490] Melnikov, A., "The Sieve Mail-Filtering Language -- 534 Extensions for Checking Mailbox Status and Accessing 535 Mailbox Metadata", RFC 5490, DOI 10.17487/RFC5490, March 536 2009, . 538 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 539 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 540 May 2017, . 542 [RFC8457] Leiba, B., Ed., "IMAP "$Important" Keyword and 543 "\Important" Special-Use Attribute", RFC 8457, 544 DOI 10.17487/RFC8457, September 2018, 545 . 547 [RFC8474] Gondwana, B., Ed., "IMAP Extension for Object 548 Identifiers", RFC 8474, DOI 10.17487/RFC8474, September 549 2018, . 551 [RFC8579] Bosch, S., "Sieve Email Filtering: Delivering to Special- 552 Use Mailboxes", RFC 8579, DOI 10.17487/RFC8579, May 2019, 553 . 555 [RFC9042] Gondwana, B., Ed., "Sieve Email Filtering: Delivery by 556 MAILBOXID", RFC 9042, DOI 10.17487/RFC9042, June 2021, 557 . 559 [tzdb] Internet Assigned Numbers Authority, "Time Zone Database", 560 . 562 10.2. Informative References 564 [RFC5231] Segmuller, W. and B. Leiba, "Sieve Email Filtering: 565 Relational Extension", RFC 5231, DOI 10.17487/RFC5231, 566 January 2008, . 568 [RFC5260] Freed, N., "Sieve Email Filtering: Date and Index 569 Extensions", RFC 5260, DOI 10.17487/RFC5260, July 2008, 570 . 572 [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running 573 Code: The Implementation Status Section", BCP 205, 574 RFC 7942, DOI 10.17487/RFC7942, July 2016, 575 . 577 [RFC8621] Jenkins, N. and C. Newman, "The JSON Meta Application 578 Protocol (JMAP) for Mail", RFC 8621, DOI 10.17487/RFC8621, 579 August 2019, . 581 Appendix A. Change History (To be removed by RFC Editor before 582 publication) 584 Changes since draft-ietf-extra-sieve-snooze-03: 586 * Added "snooze" to the Sieve Actions Registry. 588 Changes since draft-ietf-extra-sieve-snooze-02: 590 * Updated :mailboxid reference to RFC9042. 592 * Added an informative reference to RFC8621. 594 * Miscellaneous editorial changes. 596 Changes since draft-ietf-extra-sieve-snooze-01: 598 * Miscellaneous editorial changes. 600 Changes since draft-ietf-extra-sieve-snooze-00: 602 * Disallow both :mailboxid and :specialuse in the same snooze 603 action. 605 * Updated :mailboxid reference to draft-ietf-extra-sieve-mailboxid 607 * Specified that snooze cancels implicit keep. 609 * Specified that implementations MUST use a "snoozed" mailbox. 611 * Added registration of \Snoozed Special-Use Attribute. 613 * Added example of manipulating IMAP flags at both snooze time and 614 awaken time. 616 * Miscellaneous editorial changes. 618 Authors' Addresses 620 Kenneth Murchison 621 Fastmail US LLC 622 1429 Walnut Street - Suite 1201 623 Philadelphia, PA 19102 624 United States of America 625 Email: murch@fastmailteam.com 627 Ricardo Signes 628 Fastmail US LLC 629 1429 Walnut Street - Suite 1201 630 Philadelphia, PA 19102 631 United States of America 632 Email: rjbs@fastmailteam.com 634 Neil Jenkins 635 Fastmail Pty Ltd 636 Level 2, 114 William Street 637 Melbourne VIC 3000 638 Australia 639 Email: neilj@fastmailteam.com