draft-ietf-extra-sieve-action-registry-01.txt | draft-ietf-extra-sieve-action-registry-02.txt | |||
---|---|---|---|---|
Network Working Group A. Melnikov | Network Working Group A. Melnikov | |||
Internet-Draft Isode Ltd | Internet-Draft Isode Ltd | |||
Updates: 5228 (if approved) 3 March 2022 | Updates: 5228 (if approved) K. Murchison | |||
Intended status: Standards Track | Intended status: Standards Track Fastmail | |||
Expires: 4 September 2022 | Expires: 8 September 2022 7 March 2022 | |||
IANA registry for Sieve actions | IANA registry for Sieve actions | |||
draft-ietf-extra-sieve-action-registry-01 | draft-ietf-extra-sieve-action-registry-02 | |||
Abstract | Abstract | |||
This document creates a registry of Sieve (RFC 5228) actions in order | This document creates a registry of Sieve (RFC 5228) actions in order | |||
to help developers and Sieve extension writers track interactions | to help developers and Sieve extension writers track interactions | |||
between different extensions. | between different extensions. | |||
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 | |||
skipping to change at page 1, line 33 ¶ | skipping to change at page 1, line 33 ¶ | |||
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 4 September 2022. | This Internet-Draft will expire on 8 September 2022. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2022 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 (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
extracted from this document must include Revised BSD License text as | extracted from this document must include Revised BSD License text as | |||
described in Section 4.e of the Trust Legal Provisions and are | described in Section 4.e of the Trust Legal Provisions and are | |||
provided without warranty as described in the Revised BSD License. | provided without warranty as described in the Revised 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. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 2 | 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 2 | |||
4. Security Considerations . . . . . . . . . . . . . . . . . . . 3 | 3.1. Sieve Actions Registration Template and Procedure . . . . 2 | |||
5. Normative References . . . . . . . . . . . . . . . . . . . . 3 | 3.2. Initial Sieve Action Registry . . . . . . . . . . . . . . 3 | |||
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 3 | 4. Security Considerations . . . . . . . . . . . . . . . . . . . 6 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 4 | 5. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
5.1. Normative References . . . . . . . . . . . . . . . . . . 6 | ||||
5.2. Informative References . . . . . . . . . . . . . . . . . 6 | ||||
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 8 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 | ||||
1. Introduction | 1. Introduction | |||
Sieve Email Filtering Language [RFC5228] is a popular email filtering | Sieve Email Filtering Language [RFC5228] is a popular email filtering | |||
language used upon final mail delivery. Popularity of Sieve resulted | language used upon final mail delivery. Popularity of Sieve resulted | |||
in a myriad of Sieve extensions that can interact with each other in | in a myriad of Sieve extensions that can interact with each other in | |||
wonderful and complex ways. There is currently no easy way to find | wonderful and complex ways. There is currently no easy way to find | |||
out all actions defined by Sieve extensions published in RFCs, which | out all actions defined by Sieve extensions published in RFCs, which | |||
make it quite difficult for Sieve extension writers and Sieve | make it quite difficult for Sieve extension writers and Sieve | |||
implementation developers to forsee interactions between Sieve | implementation developers to forsee interactions between Sieve | |||
skipping to change at page 2, line 40 ¶ | skipping to change at page 2, line 44 ¶ | |||
2. Conventions Used in This Document | 2. Conventions Used in This Document | |||
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 BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
3. IANA Considerations | 3. IANA Considerations | |||
3.1. Sieve Actions Registration Template and Procedure | ||||
IANA is requested to create a new registry for Sieve actions (see | IANA is requested to create a new registry for Sieve actions (see | |||
Section 2.9 of [RFC5228] for details on Sieve actions). Registration | Section 2.9 of [RFC5228] for details on Sieve actions). Registration | |||
of both actions specified in IETF Stream RFCs and vendor specific | of both actions specified in IETF Stream RFCs and vendor specific | |||
actions is allowed and encouraged. The registration template | actions is allowed and encouraged. The registration template | |||
contains 1) name of the action; 2) short description; 3) references: | contains: | |||
one or more documents describing the action and any significant | ||||
updates to its definition (this field is REQUIRED for actions | 1. name of the action; | |||
described in RFCs and OPTIONAL otherwise); 4) name(s) of Sieve | 2. short description; | |||
capabilit(ies) associated with the Sieve action being registered; 5) | ||||
interactions with other Sieve actions, if any; 6) flag specifying | 3. references: one or more documents describing the action and any | |||
whether the action cancels the implicit keep (see Section 2.10.2 of | significant updates to its definition (this field is REQUIRED for | |||
[RFC5228]); 7) whether or not this action can be used with IMAP | actions described in RFCs and OPTIONAL otherwise); | |||
events in Sieve ([RFC6785]), and 8) optional comment. | ||||
4. name(s) of Sieve capabilit(ies) associated with the Sieve action | ||||
being registered; | ||||
5. interactions with other Sieve actions, if any; | ||||
6. flag specifying whether the action cancels the implicit keep (see | ||||
Section 2.10.2 of [RFC5228]); | ||||
7. whether or not this action can be used with IMAP events in Sieve | ||||
([RFC6785]), and | ||||
8. optional comment. | ||||
Registration procedure for this registry is Expert Review. The | Registration procedure for this registry is Expert Review. The | |||
Designated Expert only checks that the name of the action being | Designated Expert only checks that the name of the action being | |||
registered matches documentation, that the description field is | registered matches documentation, that the description field is | |||
accurate, that the correct documents are referenced and that the list | accurate, that the correct documents are referenced and that the list | |||
of relevant documents is as complete as possible. The Designated | of relevant documents is as complete as possible. The Designated | |||
Expert can't reject a registration based on personal dislike of the | Expert can't reject a registration based on personal dislike of the | |||
document defining an action and should always err on the side of | document defining an action and should always err on the side of | |||
registering, even if documentation is not complete. | registering, even if documentation is not complete. | |||
Addition of a new reference to an existing registration or change to | Addition of a new reference to an existing registration or change to | |||
the description field goes through the same registration procedure as | the description field goes through the same registration procedure as | |||
a new registration. | a new registration. | |||
3.2. Initial Sieve Action Registry | ||||
The following table is used to initialize the actions registry. | ||||
+============+=============+==========+==============+============+========+=======+========+ | ||||
|Name |Description |References|Capabilities |Interactions|Cancels |Use |Comments| | ||||
| | | | | |Implicit|with | | | ||||
| | | | | |Keep? |IMAP | | | ||||
| | | | | | |Events?| | | ||||
+============+=============+==========+==============+============+========+=======+========+ | ||||
|addheader |Add a header |[RFC5293] |"editheader" |All |N | | | | ||||
| |field to the | | |subsequent | | | | | ||||
| |existing | | |tests and | | | | | ||||
| |message | | |actions | | | | | ||||
| |header | | |apply to the| | | | | ||||
| | | | |altered | | | | | ||||
| | | | |message | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|addflag |Add flags to |[RFC5232],|"imap4flags", | |N | | | | ||||
| |a list of |[RFC5229] |"variables" | | | | | | ||||
| |IMAP flags | | | | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|convert |Convert body |[RFC6558] |"convert" |All |N | | | | ||||
| |parts from | | |subsequent | | | | | ||||
| |one MIME type| | |tests and | | | | | ||||
| |to another | | |actions | | | | | ||||
| | | | |apply to the| | | | | ||||
| | | | |altered | | | | | ||||
| | | | |message | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|deleteheader|Remove a |[RFC5293] |"editheader" |All |N | | | | ||||
| |header field | | |subsequent | | | | | ||||
| |from the | | |tests and | | | | | ||||
| |existing | | |actions | | | | | ||||
| |message | | |apply to the| | | | | ||||
| |header | | |altered | | | | | ||||
| | | | |message | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|discard |Silently |[RFC5228] | |Compatible |Y | | | | ||||
| |throw away | | |with all | | | | | ||||
| |the message | | |other | | | | | ||||
| | | | |actions | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|enclose |Enclose a |[RFC5703] |"enclose" |All |N | | | | ||||
| |message as an| | |subsequent | | | | | ||||
| |attachment to| | |tests and | | | | | ||||
| |a new message| | |actions, | | | | | ||||
| | | | |except | | | | | ||||
| | | | |"redirect" | | | | | ||||
| | | | |apply to the| | | | | ||||
| | | | |altered | | | | | ||||
| | | | |message | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|ereject |Refuse |[RFC5429] |"ereject" | |Y |N | | | ||||
| |delivery of | | | | | | | | ||||
| |the message | | | | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|extracttext |Store text of|[RFC5703],|"extracttext",| |N | | | | ||||
| |a MIME part |[RFC5229] |"variables" | | | | | | ||||
| |into a | | | | | | | | ||||
| |variable | | | | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|fileinto |Deliver the |[RFC5228],|"fileinto", |Use of :copy|Y | | | | ||||
| |message into |[RFC3894],|"copy", |suppresses | | | | | ||||
| |the specified|[RFC5232],|"imap4flags", |cancelation | | | | | ||||
| |mailbox |[RFC5490],|"mailbox", |of implicit | | | | | ||||
| | |[RFC9042],|"mailboxid", |keep | | | | | ||||
| | |[RFC8579] |"special-use" | | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|keep |File message |[RFC5228],|"imap4flags" | |Y | | | | ||||
| |into the |[RFC5232] | | | | | | | ||||
| |user's main | | | | | | | | ||||
| |mailbox | | | | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|notify |Send a |[RFC5435],|"enotify", | |N | | | | ||||
| |notification |[RFC8580] |"fcc" | | | | | | ||||
| |to a user | | | | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|redirect |Send |[RFC5228],|"copy", |Use of :copy|Y | | | | ||||
| |(forward) the|[RFC3894],|"redirect- |suppresses | | | | | ||||
| |message to |[RFC6009],|dsn", |cancelation | | | | | ||||
| |another user |[RFC6134] |"redirect- |of implicit | | | | | ||||
| | | |deliverby", |keep | | | | | ||||
| | | |"extlists" | | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|reject |Refuse |[RFC5429] |"reject" | |Y |N | | | ||||
| |delivery of | | | | | | | | ||||
| |the message | | | | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|removeflag |Remove flags |[RFC5232],|"imap4flags", | |N | | | | ||||
| |from a list |[RFC5229] |"variables" | | | | | | ||||
| |of IMAP flags| | | | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|replace |Replace a |[RFC5703] |"replace" |All |N | | | | ||||
| |MIME part | | |subsequent | | | | | ||||
| | | | |tests and | | | | | ||||
| | | | |actions, | | | | | ||||
| | | | |except | | | | | ||||
| | | | |"redirect" | | | | | ||||
| | | | |apply to the| | | | | ||||
| | | | |altered | | | | | ||||
| | | | |message | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|set |Store a value|[RFC5229] |"variables" | |N | | | | ||||
| |in a variable| | | | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|setflag |Set IMAP |[RFC5232],|"imap4flags", | |N | | | | ||||
| |system flags |[RFC5229] |"variables" | | | | | | ||||
| |or keywords | | | | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
|vacation |Vacation |[RFC5230],|"vacation", | |N |N | | | ||||
| |autoresponder|[RFC6131],|"vacation- | | | | | | ||||
| | |[RFC8580] |seconds", | | | | | | ||||
| | | |"fcc" | | | | | | ||||
+------------+-------------+----------+--------------+------------+--------+-------+--------+ | ||||
Table 1 | ||||
4. Security Considerations | 4. Security Considerations | |||
The sole purpose of this document is to create a new IANA registry, | The sole purpose of this document is to create a new IANA registry, | |||
so it doesn't create new security considerations for Sieve | so it doesn't create new security considerations for Sieve | |||
implementations. | implementations. | |||
The new registry should help Sieve extension writers and Sieve | The new registry should help Sieve extension writers and Sieve | |||
implementors track interactions between different Sieve actions, so | implementors track interactions between different Sieve actions, so | |||
it might improve quality of specifications and implementations, | it might improve quality of specifications and implementations, | |||
including security aspects. | including security aspects. | |||
5. Normative References | 5. References | |||
5.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>. | |||
[RFC5228] Guenther, P., Ed. and T. Showalter, Ed., "Sieve: An Email | [RFC5228] Guenther, P., Ed. and T. Showalter, Ed., "Sieve: An Email | |||
Filtering Language", RFC 5228, DOI 10.17487/RFC5228, | Filtering Language", RFC 5228, DOI 10.17487/RFC5228, | |||
January 2008, <https://www.rfc-editor.org/info/rfc5228>. | January 2008, <https://www.rfc-editor.org/info/rfc5228>. | |||
[RFC6785] Leiba, B., "Support for Internet Message Access Protocol | [RFC6785] Leiba, B., "Support for Internet Message Access Protocol | |||
(IMAP) Events in Sieve", RFC 6785, DOI 10.17487/RFC6785, | (IMAP) Events in Sieve", RFC 6785, DOI 10.17487/RFC6785, | |||
November 2012, <https://www.rfc-editor.org/info/rfc6785>. | November 2012, <https://www.rfc-editor.org/info/rfc6785>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
5.2. Informative References | ||||
[RFC3894] Degener, J., "Sieve Extension: Copying Without Side | ||||
Effects", RFC 3894, DOI 10.17487/RFC3894, October 2004, | ||||
<https://www.rfc-editor.org/info/rfc3894>. | ||||
[RFC5229] Homme, K., "Sieve Email Filtering: Variables Extension", | ||||
RFC 5229, DOI 10.17487/RFC5229, January 2008, | ||||
<https://www.rfc-editor.org/info/rfc5229>. | ||||
[RFC5230] Showalter, T. and N. Freed, Ed., "Sieve Email Filtering: | ||||
Vacation Extension", RFC 5230, DOI 10.17487/RFC5230, | ||||
January 2008, <https://www.rfc-editor.org/info/rfc5230>. | ||||
[RFC5232] Melnikov, A., "Sieve Email Filtering: Imap4flags | ||||
Extension", RFC 5232, DOI 10.17487/RFC5232, January 2008, | ||||
<https://www.rfc-editor.org/info/rfc5232>. | ||||
[RFC5293] Degener, J. and P. Guenther, "Sieve Email Filtering: | ||||
Editheader Extension", RFC 5293, DOI 10.17487/RFC5293, | ||||
August 2008, <https://www.rfc-editor.org/info/rfc5293>. | ||||
[RFC5429] Stone, A., Ed., "Sieve Email Filtering: Reject and | ||||
Extended Reject Extensions", RFC 5429, | ||||
DOI 10.17487/RFC5429, March 2009, | ||||
<https://www.rfc-editor.org/info/rfc5429>. | ||||
[RFC5435] Melnikov, A., Ed., Leiba, B., Ed., Segmuller, W., and T. | ||||
Martin, "Sieve Email Filtering: Extension for | ||||
Notifications", RFC 5435, DOI 10.17487/RFC5435, January | ||||
2009, <https://www.rfc-editor.org/info/rfc5435>. | ||||
[RFC5490] Melnikov, A., "The Sieve Mail-Filtering Language -- | ||||
Extensions for Checking Mailbox Status and Accessing | ||||
Mailbox Metadata", RFC 5490, DOI 10.17487/RFC5490, March | ||||
2009, <https://www.rfc-editor.org/info/rfc5490>. | ||||
[RFC5703] Hansen, T. and C. Daboo, "Sieve Email Filtering: MIME Part | ||||
Tests, Iteration, Extraction, Replacement, and Enclosure", | ||||
RFC 5703, DOI 10.17487/RFC5703, October 2009, | ||||
<https://www.rfc-editor.org/info/rfc5703>. | ||||
[RFC6009] Freed, N., "Sieve Email Filtering: Delivery Status | ||||
Notifications and Deliver-By Extensions", RFC 6009, | ||||
DOI 10.17487/RFC6009, October 2010, | ||||
<https://www.rfc-editor.org/info/rfc6009>. | ||||
[RFC6131] George, R. and B. Leiba, "Sieve Vacation Extension: | ||||
"Seconds" Parameter", RFC 6131, DOI 10.17487/RFC6131, July | ||||
2011, <https://www.rfc-editor.org/info/rfc6131>. | ||||
[RFC6134] Melnikov, A. and B. Leiba, "Sieve Extension: Externally | ||||
Stored Lists", RFC 6134, DOI 10.17487/RFC6134, July 2011, | ||||
<https://www.rfc-editor.org/info/rfc6134>. | ||||
[RFC6558] Melnikov, A., Leiba, B., and K. Li, "Sieve Extension for | ||||
Converting Messages before Delivery", RFC 6558, | ||||
DOI 10.17487/RFC6558, March 2012, | ||||
<https://www.rfc-editor.org/info/rfc6558>. | ||||
[RFC8579] Bosch, S., "Sieve Email Filtering: Delivering to Special- | ||||
Use Mailboxes", RFC 8579, DOI 10.17487/RFC8579, May 2019, | ||||
<https://www.rfc-editor.org/info/rfc8579>. | ||||
[RFC8580] Murchison, K. and B. Gondwana, "Sieve Extension: File | ||||
Carbon Copy (FCC)", RFC 8580, DOI 10.17487/RFC8580, May | ||||
2019, <https://www.rfc-editor.org/info/rfc8580>. | ||||
[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>. | ||||
Appendix A. Acknowledgements | Appendix A. Acknowledgements | |||
TBD. | TBD. | |||
Author's Address | Authors' Addresses | |||
Alexey Melnikov | Alexey Melnikov | |||
Isode Ltd | Isode Ltd | |||
14 Castle Mews | 14 Castle Mews | |||
Hampton | Hampton | |||
TW12 2NP | TW12 2NP | |||
United Kingdom | United Kingdom | |||
Email: Alexey.Melnikov@isode.com | Email: Alexey.Melnikov@isode.com | |||
Kenneth Murchison | ||||
Fastmail US LLC | ||||
1429 Walnut Street - Suite 1201 | ||||
Philadelphia, PA 19102 | ||||
United States of America | ||||
Email: murch@fastmailteam.com | ||||
End of changes. 11 change blocks. | ||||
20 lines changed or deleted | 230 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/ |