5
5
sievec [\fB\-d\fR] [\fB\-x\fR "\fIextension extension ...\fR"] \fIscript\-file\fR [\fIout\-file\fR]
8
The \fBsievec\fP command is part of the Sieve implementation for the Dovecot secure
9
IMAP server. Sieve (RFC 5228) is a simple and highly extensible language for filtering
10
e\-mail messages. It can be implemented for any type of mail access protocol, mail
11
architecture and operating system. The language cannot execute external programs and in
12
its basic form it does not provide the means to cause infinite loops, making it suitable
8
The \fBsievec\fP command is part of the Sieve implementation for the Dovecot secure
9
IMAP server. Sieve (RFC 5228) is a simple and highly extensible language for filtering
10
e\-mail messages. It can be implemented for any type of mail access protocol, mail
11
architecture and operating system. The language cannot execute external programs and in
12
its basic form it does not provide the means to cause infinite loops, making it suitable
13
13
for running securely on mail servers where mail users have no permission run arbitrary programs.
15
Using the \fBsievec\fP command, Sieve scripts can be compiled into a binary representation.
16
The resulting binary can be used directly to process e\-mail messages during the delivery process.
17
The delivery of mail messages and therefore also the execution of Sieve scripts is
18
performed by Dovecot's local delivery agent (LDA) called \fBdeliver\fP. Usually, it is not
19
necessary to compile the Sieve script manually using \fBsievec\fP, because \fBdeliver\fP will do
20
this automatically if the binary is missing. However, in some cases \fBdeliver\fP does not have
21
permission to write the compiled binary to disk, forcing it to recompile the script every time it
22
is executed. Using the \fBsievec\fP tool, this can be performed manually by an authorized user to
15
Using the \fBsievec\fP command, Sieve scripts can be compiled into a binary representation.
16
The resulting binary can be used directly to process e\-mail messages during the delivery process.
17
The delivery of mail messages and therefore also the execution of Sieve scripts is
18
performed by Dovecot's local delivery agent (LDA) called \fBdeliver\fP. Usually, it is not
19
necessary to compile the Sieve script manually using \fBsievec\fP, because \fBdeliver\fP will do
20
this automatically if the binary is missing. However, in some cases \fBdeliver\fP does not have
21
permission to write the compiled binary to disk, forcing it to recompile the script every time it
22
is executed. Using the \fBsievec\fP tool, this can be performed manually by an authorized user to
23
23
increase performance.
25
The \fBsievec\fP command accepts two arguments: the \fIscript\-file\fP argument specifies the
25
The \fBsievec\fP command accepts two arguments: the \fIscript\-file\fP argument specifies the
26
26
script to be compiled and the \fIout\-file\fR argument specifies where the (binary) output is to
27
be written. This Sieve implementation reconizes files with a \fB.sieve\fP extension as Sieve
28
scripts and corresponding files with a \fB.svbin\fP extension as the associated compiled binary.
29
This means for example that Dovecot's deliver process will look for a binary file 'dovecot.svbin'
27
be written. This Sieve implementation reconizes files with a \fB.sieve\fP extension as Sieve
28
scripts and corresponding files with a \fB.svbin\fP extension as the associated compiled binary.
29
This means for example that Dovecot's deliver process will look for a binary file 'dovecot.svbin'
30
30
when it needs to execute 'dovecot.sieve'. Such filename is chosen automatically for the binary output
31
31
when the out\-file argument is missing.
33
If the \fIscript\-file\fP argument is a directory, all files in that directory with a \fI.sieve\fP
34
extension are compiled into a corresponding \fI.svbin\fP binary file. The compilation is not halted
35
upon errors; it attempts to compile as many scripts in the directory as possible. Note that the
36
\fB\-d\fP option and the \fIout\-file\fP argument are not allowed when the \fIscript\-file\fP argument
33
If the \fIscript\-file\fP argument is a directory, all files in that directory with a \fI.sieve\fP
34
extension are compiled into a corresponding \fI.svbin\fP binary file. The compilation is not halted
35
upon errors; it attempts to compile as many scripts in the directory as possible. Note that the
36
\fB\-d\fP option and the \fIout\-file\fP argument are not allowed when the \fIscript\-file\fP argument
39
The \fBsievec\fP command is also useful to verify Sieve scripts before using. Additionally, with
39
The \fBsievec\fP command is also useful to verify Sieve scripts before using. Additionally, with
40
40
the \fB\-d\fP option it can output a textual (and thus human\-readable) dump of the generated Sieve
41
41
code to the specified file. The output is then identical to what the \fBsieved\fP(1) command produces
42
for a stored binary file. This output is mainly useful to find bugs in the compiler that yield corrupt
42
for a stored binary file. This output is mainly useful to find bugs in the compiler that yield corrupt
47
Don't write the binary to \fIout\-file\fP, but write a textual dump of the binary in
48
stead. In this context, the \fIout\-file\fP value '\-' has special meaning: it causes the the textual
49
dump to be written to \fBstdout\fP. The \fIout\-file\fP argument may also be omitted, which has
50
the same effect as '\-'. The output is identical to what the \fBsieved\fP(1) command produces for
47
Don't write the binary to \fIout\-file\fP, but write a textual dump of the binary in
48
stead. In this context, the \fIout\-file\fP value '\-' has special meaning: it causes the the textual
49
dump to be written to \fBstdout\fP. The \fIout\-file\fP argument may also be omitted, which has
50
the same effect as '\-'. The output is identical to what the \fBsieved\fP(1) command produces for
51
51
a compiled Sieve binary file. Note that this option is not allowed when the \fIout\-file\fP argument
54
54
\fB\-x\fP "\fIextension extension ...\fP"
55
55
Set the available extensions. The parameter is a space\-separated list of the active extensions. By
56
prepending the extension identifiers with \fB+\fP or \fB\-\fP, extensions can be included or excluded
57
relative to the default set of extensions. If no extensions have a \fB+\fP or \fB\-\fP prefix, only
58
those extensions that are explicitly listed will be enabled. Unknown extensions are ignored
59
and a warning is produced. By default, all supported extensions are available, except for deprecated
60
extensions or those that are still under development.
56
prepending the extension identifiers with \fB+\fP or \fB\-\fP, extensions can be included or excluded
57
relative to the default set of extensions. If no extensions have a \fB+\fP or \fB\-\fP prefix, only
58
those extensions that are explicitly listed will be enabled. Unknown extensions are ignored
59
and a warning is produced. By default, all supported extensions are available, except for deprecated
60
extensions or those that are still under development.
62
For example \fB\-x\fP "+imapflags \-enotify" will enable the deprecated imapflags extension along with all
63
extensions that are available by default, except for the enotify extension.
62
For example \fB\-x\fP "+imapflags \-enotify" will enable the deprecated imapflags extension along with all
63
extensions that are available by default, except for the enotify extension.
66
66
The Sieve implementation for Dovecot was written by Stephan Bosch <stephan@rename\-it.nl>.