Sieve (RFC 5228) is a small declarative language for mail filtering. Dovecot's Pigeonhole interpreter supports the full standard plus useful extensions.
Example: file by sender + tag urgent:
require ["fileinto", "imap4flags"];
if header :contains "from" "alerts@stripe.com" {
fileinto "INBOX/Finance";
setflag "\\Flagged";
stop;
}
if header :contains "subject" "[URGENT]" {
setflag "\\Flagged";
}
if address :is "to" "newsletter@example.com" {
fileinto "INBOX/Newsletters";
}
Useful Dovecot Sieve extensions:
| Extension | Purpose |
|---|---|
fileinto |
Move to specific folder |
imap4flags |
Set/unset flags |
vacation |
Auto-responder |
mailbox |
Auto-create destination folders |
spamtest / spamtestplus |
Read Rspamd score |
editheader |
Add/remove headers |
extprograms |
Pipe to external scripts |
Sign in to keep track of what you have read.