Skip to main content


Sieve (RFC5228) is a scripting language for filtering email messages at or around the time of final delivery. It is suitable for running on a mail server where users may not be allowed to execute arbitrary programs as it has no user-controlled loops or the ability to run external programs. Sieve is a data-driven programming language, similar to earlier email filtering languages such as procmail and maildrop, and earlier line-oriented languages such as sed and AWK: it specifies conditions to match and actions to take on matching.

Stalwart IMAP includes support for ManageSieve which allows users to upload and manage their Sieve scripts.

Enabling ManageSieve

In order to enable ManageSieve, a listener has to be created with the protocol attribute set to managesieve.

For example:

bind = ["[::]:4190"]
protocol = "managesieve"
tls.implicit = true


To configure the Sieve compiler and interpreter please refer to the Sieve script section.