Internet Engineering Task Force (IETF)                       A. Melnikov
Request for Comments: 9122                                     Isode Ltd
Category: Standards Track                                   K. Murchison
ISSN: 2070-1721                                                 Fastmail
                                                              June 2023


                   IANA Registry for Sieve Actions

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://www.rfc-editor.org/info/rfc9122.

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://trustee.ietf.org/license-info) in effect on the date of
  publication of this document.  Please review these documents
  carefully, as they describe your rights and restrictions with respect
  to this document.  Code Components extracted from this document must
  include Revised BSD License text as described in Section 4.e of the
  Trust Legal Provisions and are provided without warranty as described
  in the Revised BSD License.

Table of Contents

  1.  Introduction
  2.  IANA Considerations
    2.1.  Sieve Actions Registration Template and Procedure
    2.2.  Initial Sieve Action Registry
  3.  Security Considerations
  4.  References
    4.1.  Normative References
    4.2.  Informative References
  Appendix A.  Acknowledgements
  Authors' Addresses

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, 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).

4.  References

4.1.  Normative References

  [RFC5228]  Guenther, P., Ed. and T. Showalter, Ed., "Sieve: An Email
             Filtering Language", RFC 5228, DOI 10.17487/RFC5228,
             January 2008, <https://www.rfc-editor.org/info/rfc5228>.

  [RFC6785]  Leiba, B., "Support for Internet Message Access Protocol
             (IMAP) Events in Sieve", RFC 6785, DOI 10.17487/RFC6785,
             November 2012, <https://www.rfc-editor.org/info/rfc6785>.

4.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>.

  [RFC8126]  Cotton, M., Leiba, B., and T. Narten, "Guidelines for
             Writing an IANA Considerations Section in RFCs", BCP 26,
             RFC 8126, DOI 10.17487/RFC8126, June 2017,
             <https://www.rfc-editor.org/info/rfc8126>.

  [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

  Thank you to Barry Leiba, Donald Eastlake, Yoshiro Yoneya, and Murray
  Kucherawy for reviews and feedback on this document.

Authors' Addresses

  Alexey Melnikov
  Isode Ltd
  14 Castle Mews
  Hampton
  TW12 2NP
  United Kingdom
  Email: [email protected]


  Kenneth Murchison
  Fastmail US LLC
  Suite 1201
  1429 Walnut Street
  Philadelphia, PA 19102
  United States of America
  Email: [email protected]