IANA Registry for Sieve Actions
RFC 9122
Alexey Melnikov
Isode Ltd
14 Castle Mews
Hampton
TW12 2NP
United Kingdom
Alexey.Melnikov@isode.com
Kenneth Murchison
Fastmail US LLC
Suite 1201
1429 Walnut Street
Philadelphia
PA
19102
United States of America
murch@fastmailteam.com
June 2023
art
extra
Sieve
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.
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.
IANA Considerations
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.
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
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, including security aspects.
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).
References
Normative References
Informative References
[RFC5228]
[RFC6785]
[RFC8126]
[RFC5293]
[RFC5232]
[RFC5229]
[RFC6558]
[RFC5703]
[RFC5429]
[RFC3894]
[RFC5490]
[RFC9042]
[RFC8579]
[RFC5435]
[RFC8580]
[RFC6009]
[RFC6134]
[RFC5230]
[RFC6131]
Acknowledgements
Thank you to Barry Leiba, Donald Eastlake, Yoshiro Yoneya, and Murray Kucherawy for reviews and feedback on this document.