Pigeonhole Sieve Interpreter
The Pigeonhole project provides Sieve support as a plugin for Dovecot's Local Delivery Agent (LDA) and also for its LMTP service. The plugin implements a Sieve interpreter, which filters incoming messages using a script specified in the Sieve language (RFC 5228). The Sieve script is provided by the user and, using that Sieve script, the user can customize how incoming messages are handled. Messages can be delivered to specific folders, forwarded, rejected, discarded, etc.
Configuration and Use
Supported Features
Sieve language has various extensions. You can find more information about the extensions from the Sieve Mail Filtering Language Charter or the Sieve.info wiki page.
Note that Sieve doesn't support running external programs.
The Pigeonhole Sieve interpreter recognizes the following Sieve extensions:
Extension
Support Status
Purpose
supported
Allows storing messages in folders other than INBOX
supported
Allows evaluating envelope parts, i.e. sender and recipient
supported
Allows encoding special characters numerically
supported
Allows storing and forwarding messages without canceling the implicit keep
supported
Allows evaluating the body of a message
supported
Adds variables support to the language
supported
Provides auto-responder functionality, e.g. for when the user is on vacation
supported (0.2.3+)
Extends vacation extension with the ability to send vacation responses with intervals of seconds rather than days
supported
Provides relational match support
supported
Allows adding IMAP flags to stored messages
supported
Allows testing against delimited elements of the local part of addresses
supported
Allows rejecting messages with a rejection bounce message
supported
Provides the ability to send notifications by various means (currently only mailto)
supported
Provides a mailbox existence check and allows creating mailboxes upon fileinto
basic
Allows testing against various labeled values from the execution environment
supported
Adds the ability to test date and time values in various ways
supported
Provides regular expression match support
supported (v0.3.0+)
Adds the ability to add and remove message header fields
supported (v0.2.4+)
Adds the ability to test for support of Sieve extensions and dynamically invoke their use
experimental
Implements a uniform way to test against headers added by spam and virus scanners (requires configuration)
supported
Allows including other Sieve scripts
imapflags(obsolete draft)
supported
Old version of imap4flags (for backwards compatibility with CMU Sieve; disabled by default)
notify (obsolete draft)
supported
Old version of enotify (for backwards compatibility with CMU Sieve; disabled by default)
The following Dovecot-specific Sieve extensions are available for the Pigeonhole Sieve interpreter:
Extension
Support Status
Purpose
supported (v0.3.0+)
Allows logging debug messages
supported (v0.3.1+)
Allows detecting duplicate message deliveries based on message ID
Allows a Sieve script to lookup information from a datasource external to the script
Implements piping messages to a pre-defined set of external programs
plugin (v0.3+)
Implements filtering messages through a pre-defined set of external programs
plugin (v0.3+)
Implements executing a pre-defined set of external programs with the option to process string data through the external program
ManageSieve server
To give users the ability to upload their own Sieve scripts to your server, i.e. without the need for shell or FTP access, you can use the ManageSieve protocol. This is also provided by the Pigeonhole project. It is available as a separate Dovecot service. Its configuration and use is explained on the Pigeonhole ManageSieve page.
