DOVEADM-SIEVE(1) Dovecot DOVEADM-SIEVE(1)
NAME
doveadm-sieve - Commands related to handling Sieve scripts
SYNOPSIS
doveadm [GLOBAL OPTIONS] sieve_cmd [options] [arguments]
DESCRIPTION
The doveadm sieve commands are part of Pigeonhole (pigeonhole(7)),
which adds Sieve (RFC 5228) and ManageSieve (RFC 5804) support to Dove-
cot (dovecot(1)).
The doveadm sieve commands can be used to manage Sieve filtering.
GLOBAL OPTIONS
Global doveadm(1) options:
-D
Enables verbosity and debug messages.
-O
Do not read any config file, just use defaults. The dovecot_stor-
age_version setting defaults to the latest version, but can be
overridden with -o.
-k
Preserve entire environment for doveadm, not just import_environ-
ment setting.
-v
Enables verbosity, including progress counter.
-i instance-name
If using multiple Dovecot instances, choose the config file based
on this instance name.
See instance_name setting for more information.
-c config-file
Read configuration from the given config-file. By default it first
reads config socket, and then falls back to /etc/dovecot/dove-
cot.conf. You can also point this to config socket of some instance
running compatible version.
-o setting=value
Overrides the configuration setting from /etc/dovecot/dovecot.conf
and from the userdb with the given value. In order to override mul-
tiple settings, the -o option may be specified multiple times.
-f formatter
Specifies the formatter for formatting the output. Supported for-
matters are:
flow
prints each line with key=value pairs.
json
prints a JSON array of JSON objects.
pager
prints each key: value pair on its own line and separates records
with form feed character (^L).
tab
prints a table header followed by tab separated value lines.
table
prints a table header followed by adjusted value lines.
OPTIONS
-A
If the -A option is present, the command will be performed for all
users. Using this option in combination with system users from
userdb { driver = passwd } is not recommended, because it contains
also users with a lower UID than the one configured with the
first_valid_uid setting.
When the SQL userdb module is used, make sure that the
userdb_sql_iterate_query setting setting matches your database lay-
out.
When using the LDAP userdb module, make sure that the userdb_fields
setting and userdb_ldap_iterate_fields setting settings match your
LDAP schema. Otherwise doveadm(1) will be unable to iterate over
all users.
-F file
Execute the command for all the users in the file. This is similar
to the -A option, but instead of getting the list of users from the
userdb, they are read from the given file. The file contains one
username per line.
--no-userdb-lookup
Do not perform userdb lookup. Use the USER environment variable to
specify the username.
-S socket_path
The option's argument is either an absolute path to a local UNIX
domain socket, or a hostname and port (hostname:port), in order to
connect a remote host via a TCP socket.
This allows an administrator to execute doveadm(1) mail commands
through the given socket.
-u user/mask
Run the command only for the given user. It's also possible to use
'*' and '?' wildcards (e.g. -u *@example.org).
ARGUMENTS
scriptname
Is the name of a Sieve script, as visible to ManageSieve clients.
For Sieve scripts that are stored on disk, this is the filename
without the ".sieve" extension.
COMMANDS
sieve put
doveadm [GLOBAL OPTIONS] sieve put [-A | -u user | -F file | --no-
userdb-lookup] [-S socket_path] [-a] scriptname
This command puts one new Sieve script in the script storage. The
script is read from standard input. If the script compiles success-
fully, it is stored under the provided scriptname . If the -a option is
present, the Sieve script is subsequently marked as the active script
for execution at delivery.
sieve get
doveadm [GLOBAL OPTIONS] sieve get [-A | -u user | -F file | --no-
userdb-lookup] [-S socket_path] scriptname
This command retrieves the Sieve script named scriptname.
sieve delete
doveadm [GLOBAL OPTIONS] sieve delete [-A | -u user | -F file | --no-
userdb-lookup] [-S socket_path] [-a] scriptname ...
This command deletes one or more Sieve scripts. The deleted script may
not be the active script, unless the -a option is present.
sieve list
doveadm [GLOBAL OPTIONS] sieve list [-A | -u user | -F file | --no-
userdb-lookup] [-S socket_path]
List existing Sieve scripts, and their active state.
sieve rename
doveadm [GLOBAL OPTIONS] sieve rename [-A | -u user | -F file | --no-
userdb-lookup] [-S socket_path] old_name new_name
The sieve rename command is used to rename the Sieve script old_name to
new_name.
sieve activate
doveadm [GLOBAL OPTIONS] sieve activate [-A | -u user | -F file | --no-
userdb-lookup] [-S socket_path] scriptname
This command marks the Sieve script named scriptname as the active
script for execution at delivery.
sieve deactivate
doveadm [GLOBAL OPTIONS] sieve deactivate [-A | -u user | -F file |
--no-userdb-lookup] [-S socket_path] scriptname
This command deactivates Sieve processing.
REPORTING BUGS
Report bugs, including doveconf -n output, to the Dovecot Mailing List
<dovecot AT dovecot.org>. Information about reporting bugs is available
at: <https://dovecot.org/bugreport.html>
SEE ALSO
doveadm(1), dovecot-lda(1), pigeonhole(7)
e5ac02a May 2026 DOVEADM-SIEVE(1)