Compiling ========= If you downloaded the sources using Mercurial, you will need to execute ./autogen.sh first to build the automake structure in your source tree. This process requires autotools and libtool to be installed. If you installed Dovecot from sources, Pigeonhole's configure script should be able to find the installed dovecot-config automatically: ./configure make sudo make install If your system uses a $prefix different than the default /usr/local, the configure script can still find the installed dovecot-config automatically when supplied with the proper --prefix argument: ./configure --prefix=/usr make sudo make install If this doesn't work, you can use --with-dovecot= configure option, where the path points to a directory containing dovecot-config file. This can point to an installed file: ./configure --with-dovecot=/usr/local/lib/dovecot make sudo make install or to a Dovecot source directory that is already compiled: ./configure --with-dovecot=../dovecot-2.1.0 make sudo make install The following additional parameters may be of interest for the configuration of the Pigeonhole build: --with-managesieve=yes Controls whether Pigeonhole ManageSieve is compiled and installed, which is the default. --with-unfinished-features=no Controls whether unfinished features and extensions are built. Enabling this will enable the compilation of code that is considered unfinished and highly experimental and may therefore introduce bugs and unexpected behavior. In fact, it may not compile at all. Enable this only when you are eager to test some of the new development functionality. --with-ldap=no Controls wether Sieve LDAP support is built. This allows retrieving Sieve scripts from an LDAP database. When set to `yes', support is built in. When set to `plugin', LDAP support is compiled into a Sieve plugin called `sieve_storage_ldap'. Configuration ============= The Pigeonhole package provides the following items: - The Sieve interpreter plugin for Dovecot's Local Delivery Agent (LDA): This facilitates the actual Sieve filtering upon delivery. - The ManageSieve Service: This implements the ManageSieve protocol through which users can remotely manage Sieve scripts on the server. The functionality of these items is described in more detail in the README file. In this file and in this section their configuration is described. Example configuration files are provided in the doc/example-config directory of this package. Sieve Interpreter - Script Locations ------------------------------------ The Sieve interpreter can retrieve Sieve scripts from several types of locations. The default `file' location type is a local filesystem path pointing to a Sieve script file or a directory containing multiple Sieve script files. More complex setups can use other location types such as `ldap' or `dict' to fetch Sieve scripts from remote databases. All settings that specify the location of one ore more Sieve scripts accept the following syntax: location = [:]path[;