docker-mailserver/docs/content/advanced/mail-sieve.md

1.5 KiB

User-defined sieve filters

Sieve allows to specify filtering rules for incoming emails that allow for example sorting mails into different folders depending on the title of an email.

To specify a user-defined Sieve filter place a .dovecot.sieve file into a virtual user's mail folder e.g. /var/mail/domain.com/user1/.dovecot.sieve. If this file exists dovecot will apply the filtering rules.

It's even possible to install a user provided Sieve filter at startup during users setup: simply include a Sieve file in the config path for each user login that need a filter. The file name provided should be in the form <user_login>.dovecot.sieve, so for example for user1@domain.tld you should provide a Sieve file named config/user1@domain.tld.dovecot.sieve.

An example of a sieve filter that moves mails to a folder INBOX/spam depending on the sender address:

require ["fileinto", "reject"];

if address :contains ["From"] "spam@spam.com" {
   fileinto "INBOX.spam";
} else {
     keep;
}

Note: that folders have to exist beforehand if sieve should move them.

Another example of a sieve filter that forward mails to a different address:

require ["copy"];

redirect :copy "user2@otherdomain.tld";

For more examples or a detailed description of the Sieve language have a look at the official site. Other resources are available on the internet where you can find several examples.