# 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.

## 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

Sieve doesn’t support running external programs.

The Pigeonhole Sieve interpreter recognizes the following Sieve extensions:

The following Dovecot-specific Sieve extensions are available for the Pigeonhole Sieve interpreter:

 Extension Support Status Default Enabled Purpose vnd.dovecot.debug supported (v0.3.0+) no Allows logging debug messages vnd.dovecot.environment supported (v0.4.14+) no Extends the standard “environment” extension with extra items and a variables namespace for direct access vnd.dovecot.execute Extprograms Plugin (v0.3+) no Implements executing a pre-defined set of external programs with the option to process string data through the external program vnd.dovecot.extdata Extdata Plugin no Allows a Sieve script to lookup information from a datasource external to the script vnd.dovecot.filter plugin (v0.3+) no Implements filtering messages through a pre-defined set of external programs vnd.dovecot.pipe Pipe Plugin (v0.2), Pigeonhole Sieve Extprograms Plugin (v0.3+) no Implements piping messages to a pre-defined set of external programs vnd.dovecot.report supported (v0.4.14+) no Implements sending Messaging Abuse Reporting Format (MARF) reports (RFC 5965

Note

Not all extensions are enabled by default, as shown in the table above. Deprecated extensions, extensions that add the ability to change messages, extensions that require explicit configuration and extensions that are still under development are not enabled without explicit configuration. This means that the sieve_extensions or sieve_global_extensions settings need to be adjusted accordingly. Also, for plugins it is not enough to add the plugin name to the sieve_plugins setting; the extensions introduced by the plugin also need to be enabled explicitly.

## 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.