Skip to content

Latest commit

 

History

History
48 lines (33 loc) · 2.06 KB

postfixdovecottips.mdwn

File metadata and controls

48 lines (33 loc) · 2.06 KB

[[!img notmuch-logo.png alt="Notmuch logo" class="left"]]

Postfix can be used for delivering mail and Dovecot for making your maildir available using IMAP.

Dovecot Pigeonhole Sieve can be used for filtering incoming mail and index it using notmuch.

[[!toc levels=2]]

Configuration

Configure Postfix to use Dovecot Sieve

Set mailbox_command to dovecot deliver:

    postconf -e 'mailbox_command=/usr/libexec/dovecot/deliver -f "$SENDER" -a "$RECIPIENT"'

Configure Dovecot Sieve to allow running notmuch

  • Add mail_plugins = sieve to /etc/dovecot/conf.d/15-lda.conf to enable Sieve
  • Add sieve_plugins = sieve_extprograms to /etc/dovecot/conf.d/90-sieve.conf to allow running external programs
  • Add sieve_extensions = +vnd.dovecot.pipe to /etc/dovecot/conf.d/90-sieve.conf to allow pipe to external programs
  • Add sieve_pipe_bin_dir = /usr/libexec/dovecot/sieve-pipe to /etc/dovecot/conf.d/90-sieve-extprograms.conf to configure directory with allowed programs
  • Add mail_location = maildir:~/Maildir to /etc/dovecot/conf.d/10-mail.conf to use Maildir
  • Run mkdir /usr/libexec/dovecot/sieve-pipe to create the directory with allowed programs
  • Run ln -s /usr/bin/notmuch /usr/libexec/dovecot/sieve-pipe/notmuch to add a link to notmuch to the directory with allowed programs

Example Sieve configuration

Create ~/.dovecot.sieve with the following contents:

    require ["fileinto", "vnd.dovecot.pipe"];
    if header :contains "X-Spam-Flag" "YES" {
        pipe "notmuch" [ "insert", "--folder=.spam", "--create-folder", "+spam" ];
    } elsif anyof (header :matches "From" "notmuch@notmuchmail.org") {
        pipe "notmuch" [ "insert", "--folder=.mailinglist", "--create-folder", "+mailinglist" ];
    } else {
        pipe "notmuch" [ "insert", "+notmuch-insert", "+inbox" ];
    }

Notes

Postfix file size limit

Postfix sets a file size ulimit before executing the mailbox_command. This also affects the notmuch index. Make sure mailbox_size_limit is at least the size of your largest notmuch index files.