NAME
sievec - Sieve script compiler for the Dovecot secure IMAP server
SYNOPSIS
sievec [-d] [-x "extension extension ..."] script-file [out-file]
DESCRIPTION
The sievec command is part of the Sieve implementation for the Dovecot
secure IMAP server. Sieve (RFC 5228) is a simple and highly extensible
language for filtering e-mail messages. It can be implemented for any
type of mail access protocol, mail architecture and operating system.
The language cannot execute external programs and in its basic form it
does not provide the means to cause infinite loops, making it suitable
for running securely on mail servers where mail users have no
permission run arbitrary programs.
Using the sievec command, Sieve scripts can be compiled into a binary
representation. The resulting binary can be used directly to process
e-mail messages during the delivery process. The delivery of mail
messages and therefore also the execution of Sieve scripts is performed
by Dovecot’s local delivery agent (LDA) called deliver. Usually, it is
not necessary to compile the Sieve script manually using sievec,
because deliver will do this automatically if the binary is missing.
However, in some cases deliver does not have permission to write the
compiled binary to disk, forcing it to recompile the script every time
it is executed. Using the sievec tool, this can be performed manually
by an authorized user to increase performance.
The sievec command accepts two arguments: the script-file argument
specifies the script to be compiled and the out-file argument specifies
where the (binary) output is to be written. This Sieve implementation
reconizes files with a .sieve extension as Sieve scripts and
corresponding files with a .svbin extension as the associated compiled
binary. This means for example that Dovecot’s deliver process will
look for a binary file ’dovecot.svbin’ when it needs to execute
’dovecot.sieve’. Such filename is chosen automatically for the binary
output when the out-file argument is missing.
If the script-file argument is a directory, all files in that
directory with a .sieve extension are compiled into a corresponding
.svbin binary file. The compilation is not halted upon errors; it
attempts to compile as many scripts in the directory as possible. Note
that the -d option and the out-file argument are not allowed when the
script-file argument is a directory.
The sievec command is also useful to verify Sieve scripts before using.
Additionally, with the -d option it can output a textual (and thus
human-readable) dump of the generated Sieve code to the specified file.
The output is then identical to what the sieved(1) command produces for
a stored binary file. This output is mainly useful to find bugs in the
compiler that yield corrupt binaries.
OPTIONS
-d Don’t write the binary to out-file, but write a textual dump of
the binary in stead. In this context, the out-file value ’-’ has
special meaning: it causes the the textual dump to be written to
stdout. The out-file argument may also be omitted, which has the
same effect as ’-’. The output is identical to what the
sieved(1) command produces for a compiled Sieve binary file.
Note that this option is not allowed when the out-file argument
is a directory.
-x "extension extension ..."
Set the available extensions. The parameter is a space-separated
list of the active extensions. By prepending the extension
identifiers with + or -, extensions can be included or excluded
relative to the default set of extensions. If no extensions have
a + or - prefix, only those extensions that are explicitly
listed will be enabled. Unknown extensions are ignored and a
warning is produced. By default, all supported extensions are
available, except for deprecated extensions or those that are
still under development.
For example -x "+imapflags -enotify" will enable the deprecated
imapflags extension along with all extensions that are available
by default, except for the enotify extension.
AUTHOR
The Sieve implementation for Dovecot was written by Stephan Bosch
<stephan@rename-it.nl>.
Dovecot was written by Timo Sirainen <tss@iki.fi>.
SEE ALSO
sieved(1), sieve-test(1)
4 July 2009