The Sieve language is used to specify how e-mail needs to be processed. By writing Sieve scripts, users can customize how messages are delivered, e.g. whether they are forwarded or stored in special folders. Unwanted messages can be discarded or rejected, and, when the user is not available, the Sieve interpreter can send an automated reply. Above all, the Sieve language is meant to be simple, extensible and system independent. And, unlike most other mail filtering script languages, it does not allow users to execute arbitrary programs. This is particularly useful to prevent virtual users from having full access to the mail store. The intention of the language is to make it impossible for users to do anything more complex (and dangerous) than write simple mail filters.
Using the ManageSieve protocol, users can upload their Sieve scripts remotely, without needing direct filesystem access through FTP or SCP. Additionally, a ManageSieve server always makes sure that uploaded scripts are valid, preventing compile failures at mail delivery.
The Pigeonhole project provides the following items:
- The LDA Sieve plugin for Dovecot's Local Delivery Agent (LDA) (dovecot-lda(1)) that facilitates the actual Sieve filtering upon delivery.
- The ManageSieve service that implements the ManageSieve protocol through which users can remotely manage Sieve scripts on the server.
- A plugin for Dovecot's doveadm(1) command line tool that adds new the new doveadm-sieve(1) commands for management of Sieve filtering.
The functionality and configuration of the LDA Sieve plugin and the ManageSieve service is described in detail in the README and INSTALL files contained in the Pigeonhole package and in the Dovecot Wiki http://wiki2.dovecot.org/Pigeonhole.
The following command line tools are available outside of doveadm:
- Compiles Sieve scripts into a binary representation for later execution.
- The universal Sieve test tool for testing the effect of a Sieve script on a particular message.
- Filters all messages in a particular source mailbox through a Sieve script.
- Dumps the content of a Sieve binary file for (development) debugging purposes.
|2015-02-21||Pigeonhole for Dovecot v2.4|