<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     ipr="trust200902"
     submissionType="IETF"
     category="std"
     consensus="true"
     docName="draft-ietf-extra-sieve-action-registry-06"
     number="9122"
     obsoletes=""
     updates=""
     xml:lang="en"
     tocInclude="true"
     symRefs="true"
     sortRefs="true"
     version="3">

  <!-- xml2rfc v2v3 conversion 3.17.0 -->
  <front>
    <title abbrev="IANA Registry for Sieve Actions">
      IANA Registry for Sieve Actions
    </title>
    <seriesInfo name="RFC" value="9122"/>
    <author initials="A." surname="Melnikov" fullname="Alexey Melnikov">
      <organization>Isode Ltd</organization>
      <address>
        <postal>
          <street>14 Castle Mews</street>
          <city>Hampton</city>
          <code>TW12 2NP</code>
          <country>United Kingdom</country>
        </postal>
        <email>Alexey.Melnikov@isode.com</email>
      </address>
    </author>
    <author initials="K." surname="Murchison" fullname="Kenneth Murchison">
      <organization abbrev="Fastmail">Fastmail US LLC</organization>
      <address>
        <postal>
          <extaddr>Suite 1201</extaddr>
          <street>1429 Walnut Street</street>
          <city>Philadelphia</city>
          <region>PA</region>
          <code>19102</code>
          <country>United States of America</country>
        </postal>
        <email>murch@fastmailteam.com</email>
      </address>
    </author>
    <date year="2023" month="June" />
    <area>art</area>
    <workgroup>extra</workgroup>
    <keyword>Sieve</keyword>
    <abstract>
      <t>
        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.
      </t>
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t>
      The Sieve Email Filtering Language <xref target="RFC5228" format="default"/> 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.
      </t>
      <t>
      This document creates a registry for Sieve <xref target="RFC5228" format="default"/> actions in order to help developers and
      Sieve extension writers track interactions between different extensions.
      </t>
    </section>
    <section numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section numbered="true" toc="default">
        <name>Sieve Actions Registration Template and Procedure</name>
        <t>
      IANA has created the "Sieve Actions" registry (see <xref target="RFC5228" section="2.9" sectionFormat="of"/>
      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: 
        </t>
      <dl spacing="compact">
        <dt>Name:</dt><dd>Name of the action</dd>
        <dt>Description:</dt><dd>Short description</dd>
        <dt>References:</dt><dd>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)</dd>
        <dt>Capabilities:</dt><dd>Name of one or more Sieve capabilities associated with the Sieve action being registered</dd>
        <dt>Action Interactions:</dt><dd>Interactions with other Sieve actions (as described in <xref target="RFC5228" sectionFormat="of" section="2.10.1"/>), if any</dd>
        <dt>Cancels Implicit Keep?</dt><dd>Flag specifying whether the action cancels the implicit keep (see <xref target="RFC5228" sectionFormat="of" section="2.10.2"/>)</dd>
        <dt>Can Use With IMAP Events?</dt><dd>Whether or not this action can be used with IMAP events in Sieve <xref target="RFC6785"/></dd>
        <dt>Comments:</dt><dd>Optional comment or comments</dd>
      </dl>
        <t>
      The registration procedure is Expert Review <xref target="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.
        </t>
      <t>The same registration procedure is used to add a new reference  
  or to change the description field of an existing registration.</t>
      </section>
      <section anchor="initial-regs" numbered="true" toc="default">
        <name>Initial Sieve Action Registry</name>
        <t>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.
        </t>
        <dl spacing="compact">
         <dt>Name:</dt><dd>addheader</dd>
         <dt>Description:</dt><dd>Add a header field to the existing message
header</dd>
         <dt>References:</dt><dd><xref target="RFC5293" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"editheader"</dd>
         <dt>Action Interactions:</dt><dd>All subsequent tests and actions apply to the altered message</dd>
         <dt>Cancels Implicit Keep?</dt><dd>No</dd>
         <dt>Can Use with IMAP Events?</dt><dd>Yes</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>addflag</dd>
         <dt>Description:</dt><dd>Add IMAP flags to a list of IMAP flags that would be set on the message if it gets delivered to a mailbox</dd>
         <dt>References:</dt><dd><xref target="RFC5232" format="default"/> <xref target="RFC5229" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"imap4flags", "variables"</dd>
         <dt>Action Interactions:</dt><dd>N/A</dd>
         <dt>Cancels Implicit Keep?</dt><dd>No</dd>
         <dt>Can Use with IMAP Events?</dt><dd>Yes</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>convert</dd>
         <dt>Description:</dt><dd>Convert body parts from one MIME type to another</dd>
         <dt>References:</dt><dd><xref target="RFC6558" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"convert"</dd>
         <dt>Action Interactions:</dt><dd>All subsequent tests and actions apply to the altered message</dd>
         <dt>Cancels Implicit Keep?</dt><dd>No</dd>
         <dt>Can Use with IMAP Events?</dt><dd>Yes</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>deleteheader</dd>
         <dt>Description:</dt><dd>Remove a header field from the existing message header</dd>
         <dt>References:</dt><dd><xref target="RFC5293" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"editheader"</dd>
         <dt>Action Interactions:</dt><dd>All subsequent tests and actions apply to the altered message</dd>
         <dt>Cancels Implicit Keep?</dt><dd>No</dd>
         <dt>Can Use with IMAP Events?</dt><dd>Yes</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>discard</dd>
         <dt>Description:</dt><dd>Silently throw away the message</dd>
         <dt>References:</dt><dd><xref target="RFC5228" format="default"/></dd>
         <dt>Capabilities:</dt><dd>N/A</dd>
         <dt>Action Interactions:</dt><dd>N/A</dd>
         <dt>Cancels Implicit Keep?</dt><dd>Yes</dd>
         <dt>Can Use with IMAP Events?</dt><dd>Yes</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>enclose</dd>
         <dt>Description:</dt><dd>Enclose a message as an attachment to a new message</dd>
         <dt>References:</dt><dd><xref target="RFC5703" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"enclose"</dd>
         <dt>Action Interactions:</dt><dd>All subsequent tests and actions except "redirect" apply to the altered message</dd>
         <dt>Cancels Implicit Keep?</dt><dd>No</dd>
         <dt>Can Use with IMAP Events?</dt><dd>Yes</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>ereject</dd>
         <dt>Description:</dt><dd>Refuse delivery of the message</dd>
         <dt>References:</dt><dd><xref target="RFC5429" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"ereject"</dd>
         <dt>Action Interactions:</dt><dd>This action is incompatible with the "vacation" action. Typically is not permitted with actions that cause mail delivery, such as "keep", "fileinto", and "redirect"</dd>
         <dt>Cancels Implicit Keep?</dt><dd>Yes</dd>
         <dt>Can Use with IMAP Events?</dt><dd>No</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>extracttext</dd>
         <dt>Description:</dt><dd>Store text of a MIME part into a variable</dd>
         <dt>References:</dt><dd><xref target="RFC5703" format="default"/> <xref target="RFC5229" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"extracttext", "variables"</dd>
         <dt>Action Interactions:</dt><dd>N/A</dd>
         <dt>Cancels Implicit Keep?</dt><dd>No</dd>
         <dt>Can Use with IMAP Events?</dt><dd>Yes</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>fileinto</dd>
         <dt>Description:</dt><dd>Deliver the message into the specified mailbox</dd>
         <dt>References:</dt><dd><xref target="RFC5228" format="default"/> <xref target="RFC3894" format="default"/> <xref target="RFC5232" format="default"/> <xref target="RFC5490" format="default"/> <xref target="RFC9042" format="default"/> <xref target="RFC8579" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"fileinto", "copy", "imap4flags", "mailbox", "mailboxid", "special-use"</dd>
         <dt>Action Interactions:</dt><dd>Use of :copy suppresses cancellation of implicit keep</dd>
         <dt>Cancels Implicit Keep?</dt><dd>Yes</dd>
         <dt>Can Use with IMAP Events?</dt><dd>Yes</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>keep</dd>
         <dt>Description:</dt><dd>File the message into the user's main mailbox</dd>
         <dt>References:</dt><dd><xref target="RFC5228" format="default"/> <xref target="RFC5232" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"imap4flags"</dd>
         <dt>Action Interactions:</dt><dd>N/A</dd>
         <dt>Cancels Implicit Keep?</dt><dd>Yes</dd>
         <dt>Can Use with IMAP Events?</dt><dd>Yes</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>notify</dd>
         <dt>Description:</dt><dd>Send a notification to a user</dd>
         <dt>References:</dt><dd><xref target="RFC5435" format="default"/> <xref target="RFC8580" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"enotify", "fcc"</dd>
         <dt>Action Interactions:</dt><dd>N/A</dd>
         <dt>Cancels Implicit Keep?</dt><dd>No</dd>
         <dt>Can Use with IMAP Events?</dt><dd>Yes</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>redirect</dd>
         <dt>Description:</dt><dd>Send (forward) the message to another user</dd>
         <dt>References:</dt><dd><xref target="RFC5228" format="default"/> <xref target="RFC3894" format="default"/> <xref target="RFC6009" format="default"/> <xref target="RFC6134" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"copy", "redirect-dsn", "redirect-deliverby", "extlists"</dd>
         <dt>Action Interactions:</dt><dd>Use of :copy suppresses cancellation of implicit keep</dd>
         <dt>Cancels Implicit Keep?</dt><dd>Yes</dd>
         <dt>Can Use with IMAP Events?</dt><dd>Yes</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>reject</dd>
         <dt>Description:</dt><dd>Refuse delivery of the message</dd>
         <dt>References:</dt><dd><xref target="RFC5429" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"reject"</dd>
         <dt>Action Interactions:</dt><dd>This action is incompatible with the "vacation" action. Typically is not permitted with actions that cause mail delivery, such as "keep", "fileinto", and "redirect"</dd>
         <dt>Cancels Implicit Keep?</dt><dd>Yes</dd>
         <dt>Can Use with IMAP Events?</dt><dd>No</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>removeflag</dd>
         <dt>Description:</dt><dd>Remove IMAP flags from a list of IMAP flags that would be set on the message if it gets delivered to a mailbox</dd>
         <dt>References:</dt><dd><xref target="RFC5232" format="default"/> <xref target="RFC5229" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"imap4flags", "variables"</dd>
         <dt>Action Interactions:</dt><dd>N/A</dd>
         <dt>Cancels Implicit Keep?</dt><dd>No</dd>
         <dt>Can Use with IMAP Events?</dt><dd>Yes</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>replace</dd>
         <dt>Description:</dt><dd>Replace a MIME part</dd>
         <dt>References:</dt><dd><xref target="RFC5703" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"replace"</dd>
         <dt>Action Interactions:</dt><dd>All subsequent tests and actions except "redirect" apply to the altered message</dd>
         <dt>Cancels Implicit Keep?</dt><dd>No</dd>
         <dt>Can Use with IMAP Events?</dt><dd>Yes</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>set</dd>
         <dt>Description:</dt><dd>Store a value in a variable</dd>
         <dt>References:</dt><dd><xref target="RFC5229" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"variables"</dd>
         <dt>Action Interactions:</dt><dd>N/A</dd>
         <dt>Cancels Implicit Keep?</dt><dd>No</dd>
         <dt>Can Use with IMAP Events?</dt><dd>Yes</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>setflag</dd>
         <dt>Description:</dt><dd>Set IMAP system flags or keywords that would be set on the message if it gets delivered to a mailbox</dd>
         <dt>References:</dt><dd><xref target="RFC5232" format="default"/> <xref target="RFC5229" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"imap4flags", "variables"</dd>
         <dt>Action Interactions:</dt><dd>N/A</dd>
         <dt>Cancels Implicit Keep?</dt><dd>No</dd>
         <dt>Can Use with IMAP Events?</dt><dd>Yes</dd>
        </dl>

        <dl spacing="compact">
         <dt>Name:</dt><dd>vacation</dd>
         <dt>Description:</dt><dd>Implement a vacation autoresponder</dd>
         <dt>References:</dt><dd><xref target="RFC5230" format="default"/> <xref target="RFC6131" format="default"/> <xref target="RFC8580" format="default"/></dd>
         <dt>Capabilities:</dt><dd>"vacation", "vacation-seconds", "fcc"</dd>
         <dt>Action Interactions:</dt><dd>This action is incompatible with "reject" and "ereject" actions</dd>
         <dt>Cancels Implicit Keep?</dt><dd>No</dd>
         <dt>Can Use with IMAP Events?</dt><dd>No</dd>
        </dl>

      </section>
    </section>
    <section anchor="seccons" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
      The sole purpose of this document is to create the "Sieve Actions" registry;
      therefore, it doesn't create new security considerations for Sieve implementations.
      </t>
      <t>
      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.
      </t>
      <t>
      For security considerations related to particular actions, see the one or more RFCs referenced
      for the action in question in the "Sieve Actions" registry (<xref target="initial-regs" format="default"/>).
      </t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5228.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6785.xml"/>
    </references>
      <references>
        <name>Informative References</name>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3894.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5229.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5230.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5232.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5293.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5429.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5435.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5490.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5703.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6009.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6131.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6134.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6558.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8579.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8580.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9042.xml"/>

    </references>
    </references>

    <section numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>
      Thank you to <contact fullname="Barry Leiba"/>, <contact fullname="Donald Eastlake"/>, <contact fullname="Yoshiro Yoneya"/>, and <contact fullname="Murray Kucherawy"/> for reviews and feedback on this document.
      </t>
    </section>
  </back>
</rfc>
