RFC 9122: IANA Registry for Sieve Actions
- A. Melnikov,
- K. Murchison
Abstract
The Sieve Email Filtering Language (RFC 5228) is a popular email filtering language used upon final mail delivery. This document creates a registry for Sieve actions to help developers and Sieve extension writers track interactions between different extensions.¶
Status of This Memo
This is an Internet Standards Track document.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://
1. Introduction
The Sieve Email Filtering Language [RFC5228] is a popular email filtering language used upon final mail delivery. The popularity of Sieve resulted in a myriad of Sieve extensions that can interact with each other in wonderful and complex ways. Currently, there is no easy way to find out all actions defined by Sieve extensions published in RFCs, which makes it quite difficult for Sieve extension writers and Sieve implementation developers to foresee interactions between Sieve actions.¶
This document creates a registry for Sieve [RFC5228] actions in order to help developers and Sieve extension writers track interactions between different extensions.¶
2. IANA Considerations
2.1. Sieve Actions Registration Template and Procedure
IANA has created the "Sieve Actions" registry (see Section 2.9 of [RFC5228] for details on Sieve actions). Registration of actions specified in both RFCs and vendor-specific documentation is allowed and encouraged. The registration template contains the following:¶
- Name:
- Name of the action¶
- Description:
- Short description¶
- References:
- One or more documents describing the action and any significant updates to its definition (this field is required for actions described in RFCs and is optional otherwise)¶
- Capabilities:
- Name of one or more Sieve capabilities associated with the Sieve action being registered¶
- Action Interactions:
- Interactions with other Sieve actions (as described in Section 2.10.1 of [RFC5228]), if any¶
- Cancels Implicit Keep?
- Flag specifying whether the action cancels the implicit keep (see Section 2.10.2 of [RFC5228])¶
- Can Use With IMAP Events?
- Whether or not this action can be used with IMAP events in Sieve [RFC6785]¶
- Comments:
- Optional comment or comments¶
The registration procedure is Expert Review [RFC8126]. The designated expert only checks that the name of the action being registered matches documentation, the description field is accurate, the correct documents are referenced, and the list of relevant documents is as complete as possible. The designated expert can't reject a registration because of a personal dislike for the document defining an action and should always err on the side of approving the registration, even if documentation is not complete.¶
The same registration procedure is used to add a new reference or to change the description field of an existing registration.¶
2.2. Initial Sieve Action Registry
The following registrations are used to initialize the "Sieve Actions" registry. Note that when the relevant "Action Interactions" entry is marked "N/A", it means that there is no restriction on use of the corresponding action with any other action; however, implementors still need to read the one or more corresponding specifications to determine if there are any surprising behaviors. Also note that the "Comments" field of the IANA registration template is omitted from these registrations, as none of them currently have any comments.¶
- Name:
- addheader¶
- Description:
- Add a header field to the existing message header¶
- References:
- [RFC5293]¶
- Capabilities:
- "editheader"¶
- Action Interactions:
- All subsequent tests and actions apply to the altered message¶
- Cancels Implicit Keep?
- No¶
- Can Use with IMAP Events?
- Yes¶
- Name:
- addflag¶
- Description:
- Add IMAP flags to a list of IMAP flags that would be set on the message if it gets delivered to a mailbox¶
- References:
- [RFC5232] [RFC5229]¶
- Capabilities:
- "imap4flags", "variables"¶
- Action Interactions:
- N/A¶
- Cancels Implicit Keep?
- No¶
- Can Use with IMAP Events?
- Yes¶
- Name:
- convert¶
- Description:
- Convert body parts from one MIME type to another¶
- References:
- [RFC6558]¶
- Capabilities:
- "convert"¶
- Action Interactions:
- All subsequent tests and actions apply to the altered message¶
- Cancels Implicit Keep?
- No¶
- Can Use with IMAP Events?
- Yes¶
- Name:
- deleteheader¶
- Description:
- Remove a header field from the existing message header¶
- References:
- [RFC5293]¶
- Capabilities:
- "editheader"¶
- Action Interactions:
- All subsequent tests and actions apply to the altered message¶
- Cancels Implicit Keep?
- No¶
- Can Use with IMAP Events?
- Yes¶
- Name:
- discard¶
- Description:
- Silently throw away the message¶
- References:
- [RFC5228]¶
- Capabilities:
- N/A¶
- Action Interactions:
- N/A¶
- Cancels Implicit Keep?
- Yes¶
- Can Use with IMAP Events?
- Yes¶
- Name:
- enclose¶
- Description:
- Enclose a message as an attachment to a new message¶
- References:
- [RFC5703]¶
- Capabilities:
- "enclose"¶
- Action Interactions:
- All subsequent tests and actions except "redirect" apply to the altered message¶
- Cancels Implicit Keep?
- No¶
- Can Use with IMAP Events?
- Yes¶
- Name:
- ereject¶
- Description:
- Refuse delivery of the message¶
- References:
- [RFC5429]¶
- Capabilities:
- "ereject"¶
- Action Interactions:
- This action is incompatible with the "vacation" action. Typically is not permitted with actions that cause mail delivery, such as "keep", "fileinto", and "redirect"¶
- Cancels Implicit Keep?
- Yes¶
- Can Use with IMAP Events?
- No¶
- Name:
- extracttext¶
- Description:
- Store text of a MIME part into a variable¶
- References:
- [RFC5703] [RFC5229]¶
- Capabilities:
- "extracttext", "variables"¶
- Action Interactions:
- N/A¶
- Cancels Implicit Keep?
- No¶
- Can Use with IMAP Events?
- Yes¶
- Name:
- fileinto¶
- Description:
- Deliver the message into the specified mailbox¶
- References:
- [RFC5228] [RFC3894] [RFC5232] [RFC5490] [RFC9042] [RFC8579]¶
- Capabilities:
- "fileinto", "copy", "imap4flags", "mailbox", "mailboxid", "special-use"¶
- Action Interactions:
- Use of :copy suppresses cancellation of implicit keep¶
- Cancels Implicit Keep?
- Yes¶
- Can Use with IMAP Events?
- Yes¶
- Name:
- keep¶
- Description:
- File the message into the user's main mailbox¶
- References:
- [RFC5228] [RFC5232]¶
- Capabilities:
- "imap4flags"¶
- Action Interactions:
- N/A¶
- Cancels Implicit Keep?
- Yes¶
- Can Use with IMAP Events?
- Yes¶
- Name:
- notify¶
- Description:
- Send a notification to a user¶
- References:
- [RFC5435] [RFC8580]¶
- Capabilities:
- "enotify", "fcc"¶
- Action Interactions:
- N/A¶
- Cancels Implicit Keep?
- No¶
- Can Use with IMAP Events?
- Yes¶
- Name:
- redirect¶
- Description:
- Send (forward) the message to another user¶
- References:
- [RFC5228] [RFC3894] [RFC6009] [RFC6134]¶
- Capabilities:
- "copy", "redirect-dsn", "redirect
-deliverby", "extlists"¶ - Action Interactions:
- Use of :copy suppresses cancellation of implicit keep¶
- Cancels Implicit Keep?
- Yes¶
- Can Use with IMAP Events?
- Yes¶
- Name:
- reject¶
- Description:
- Refuse delivery of the message¶
- References:
- [RFC5429]¶
- Capabilities:
- "reject"¶
- Action Interactions:
- This action is incompatible with the "vacation" action. Typically is not permitted with actions that cause mail delivery, such as "keep", "fileinto", and "redirect"¶
- Cancels Implicit Keep?
- Yes¶
- Can Use with IMAP Events?
- No¶
- Name:
- removeflag¶
- Description:
- Remove IMAP flags from a list of IMAP flags that would be set on the message if it gets delivered to a mailbox¶
- References:
- [RFC5232] [RFC5229]¶
- Capabilities:
- "imap4flags", "variables"¶
- Action Interactions:
- N/A¶
- Cancels Implicit Keep?
- No¶
- Can Use with IMAP Events?
- Yes¶
- Name:
- replace¶
- Description:
- Replace a MIME part¶
- References:
- [RFC5703]¶
- Capabilities:
- "replace"¶
- Action Interactions:
- All subsequent tests and actions except "redirect" apply to the altered message¶
- Cancels Implicit Keep?
- No¶
- Can Use with IMAP Events?
- Yes¶
- Name:
- set¶
- Description:
- Store a value in a variable¶
- References:
- [RFC5229]¶
- Capabilities:
- "variables"¶
- Action Interactions:
- N/A¶
- Cancels Implicit Keep?
- No¶
- Can Use with IMAP Events?
- Yes¶
- Name:
- setflag¶
- Description:
- Set IMAP system flags or keywords that would be set on the message if it gets delivered to a mailbox¶
- References:
- [RFC5232] [RFC5229]¶
- Capabilities:
- "imap4flags", "variables"¶
- Action Interactions:
- N/A¶
- Cancels Implicit Keep?
- No¶
- Can Use with IMAP Events?
- Yes¶
- Name:
- vacation¶
- Description:
- Implement a vacation autoresponder¶
- References:
- [RFC5230] [RFC6131] [RFC8580]¶
- Capabilities:
- "vacation", "vacation
-seconds", "fcc"¶ - Action Interactions:
- This action is incompatible with "reject" and "ereject" actions¶
- Cancels Implicit Keep?
- No¶
- Can Use with IMAP Events?
- No¶
3. Security Considerations
The sole purpose of this document is to create the "Sieve Actions" registry;
therefore, it doesn't create new security considerations for Sieve implementations
The new registry should help Sieve extension writers and Sieve implementors
track interactions between different Sieve actions; therefore, it might improve the quality
of specifications and implementations
For security considerations related to particular actions, see the one or more RFCs referenced for the action in question in the "Sieve Actions" registry (Section 2.2).¶
4. References
4.1. Normative References
- [RFC5228]
-
Guenther, P., Ed. and T. Showalter, Ed., "Sieve: An Email Filtering Language", RFC 5228, DOI 10
.17487 , , <https:///RFC5228 www >..rfc -editor .org /info /rfc5228 - [RFC6785]
-
Leiba, B., "Support for Internet Message Access Protocol (IMAP) Events in Sieve", RFC 6785, DOI 10
.17487 , , <https:///RFC6785 www >..rfc -editor .org /info /rfc6785
4.2. Informative References
- [RFC3894]
-
Degener, J., "Sieve Extension: Copying Without Side Effects", RFC 3894, DOI 10
.17487 , , <https:///RFC3894 www >..rfc -editor .org /info /rfc3894 - [RFC5229]
-
Homme, K., "Sieve Email Filtering: Variables Extension", RFC 5229, DOI 10
.17487 , , <https:///RFC5229 www >..rfc -editor .org /info /rfc5229 - [RFC5230]
-
Showalter, T. and N. Freed, Ed., "Sieve Email Filtering: Vacation Extension", RFC 5230, DOI 10
.17487 , , <https:///RFC5230 www >..rfc -editor .org /info /rfc5230 - [RFC5232]
-
Melnikov, A., "Sieve Email Filtering: Imap4flags Extension", RFC 5232, DOI 10
.17487 , , <https:///RFC5232 www >..rfc -editor .org /info /rfc5232 - [RFC5293]
-
Degener, J. and P. Guenther, "Sieve Email Filtering: Editheader Extension", RFC 5293, DOI 10
.17487 , , <https:///RFC5293 www >..rfc -editor .org /info /rfc5293 - [RFC5429]
-
Stone, A., Ed., "Sieve Email Filtering: Reject and Extended Reject Extensions", RFC 5429, DOI 10
.17487 , , <https:///RFC5429 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 , , <https:///RFC5435 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 , , <https:///RFC5490 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 , , <https:///RFC5703 www >..rfc -editor .org /info /rfc5703 - [RFC6009]
-
Freed, N., "Sieve Email Filtering: Delivery Status Notifications and Deliver-By Extensions", RFC 6009, DOI 10
.17487 , , <https:///RFC6009 www >..rfc -editor .org /info /rfc6009 - [RFC6131]
-
George, R. and B. Leiba, "Sieve Vacation Extension: "Seconds" Parameter", RFC 6131, DOI 10
.17487 , , <https:///RFC6131 www >..rfc -editor .org /info /rfc6131 - [RFC6134]
-
Melnikov, A. and B. Leiba, "Sieve Extension: Externally Stored Lists", RFC 6134, DOI 10
.17487 , , <https:///RFC6134 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 , , <https:///RFC6558 www >..rfc -editor .org /info /rfc6558 - [RFC8126]
-
Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10
.17487 , , <https:///RFC8126 www >..rfc -editor .org /info /rfc8126 - [RFC8579]
-
Bosch, S., "Sieve Email Filtering: Delivering to Special-Use Mailboxes", RFC 8579, DOI 10
.17487 , , <https:///RFC8579 www >..rfc -editor .org /info /rfc8579 - [RFC8580]
-
Murchison, K. and B. Gondwana, "Sieve Extension: File Carbon Copy (FCC)", RFC 8580, DOI 10
.17487 , , <https:///RFC8580 www >..rfc -editor .org /info /rfc8580 - [RFC9042]
-
Gondwana, B., Ed., "Sieve Email Filtering: Delivery by MAILBOXID", RFC 9042, DOI 10
.17487 , , <https:///RFC9042 www >..rfc -editor .org /info /rfc9042
Appendix A. Acknowledgements
Thank you to Barry Leiba, Donald Eastlake, Yoshiro Yoneya, and Murray Kucherawy for reviews and feedback on this document.¶