Hello Dovecot users,
Finally, after little more than a year, I finished the first release of the new Sieve implementation for Dovecot.
The main reason for rewriting the Sieve engine is to provide more reliable script execution and to provide better error messages to users and system administrators. Also, since the Sieve language evolves quickly, with new language extensions published every year, the aim is to provide support for quickly extending the engine with new features.
This implementation aims to comply to RFC8225 and it provides support for the following Sieve language extensions:
- fileinto
- reject
- envelope
- encoded-character
- vacation
- subaddress
- relational
- regex
- imap4flags
- copy
- include
- body
- variables
In comparison to the old CMU Sieve plugin, I added support for the very useful variables extension. However, the notify extension is notably missing. This will be implemented for next major release (0.2.x).
Refer to the README file for a full list of its features:
http://hg.rename-it.nl/dovecot-libsieve/raw-file/0.1.0/README
Installation
The source package is available as follows:
http://www.rename-it.nl/dovecot/1.2/dovecot-1.2-sieve-0.1.0.tar.gz http://www.rename-it.nl/dovecot/1.2/dovecot-1.2-sieve-0.1.0.tar.gz.sig
Alternatively, it can be cloned from the mercurial repository:
hg clone http://hg.rename-it.nl/dovecot-libsieve
The compilation procedure is identical to the cmusieve plugin (http://wiki.dovecot.org/LDA/Sieve). Don't forget to execute ./autogen.sh first if you obtained the sources through mercurial. This release will not compile against Dovecot versions older than v1.2.alpha3.
The configuration is very similar to the original plugin as well. The most notable difference is the name of the plugin, which is simply 'sieve' in stead of 'cmusieve'.
After compilation, the Sieve engine can be verified before deployment
using the included test suite. This is done by executing make test
in
the top of the source tree. The test suite is known to finish flawlessly
on the i386 and amd64 platforms. The test suite is not very
comprehensive yet, as it only tests the evaluation of scripts and omits
testing the actual execution of actions.
As this release contains about 30k effective lines of fresh code, bugs will eventually surface. Make sure that you provide enough information to reproduce the problem if you report bugs, i.e. the script and the mail message that caused the problem and/or relevant log entries.
Have fun testing the new Sieve plugin. Don't hesitate to notify me when there are problems.
Regards,
-- Stephan Bosch stephan@rename-it.nl IRC: Freenode, #dovecot, S[r]us