E-Mails direkt auf dem Server filtern
Sieve[1] ist eine Script-Sprache zum Erstellen von Filterregeln zur Sortierung von E-Mails auf dem Server
Installation und Konfiguration
root@tutorial:~# apt install dovecot-sieve
Wir beginnen in
/etc/dovecot/conf.d/20-lmtp.conf
Hierzu entfernen wir an der folgenden Zeile das # und fügen am Ende ein sieve dazu.
Die Zeile sieht dann wie folgt aus
mail_plugins = $mail_plugins sieve
Als nächstes in
/etc/dovecot/conf.d/90-sieve.conf
an den nachfolgenden Stellen (mal wieder) die # entfernen und die entsprechenden Änderungen durchführen.
sieve = ~/.dovecot.sieve
sieve_global = /var/vmail/sieve
sieve_bevore = /var/vmail/sieve/global.sieve
Jetzt legen wir den oben schon eingetragenen Pfad noch mit den entsprechenden Rechten an und erstellen die ersten zwei Regeln fürs aussortieren von Spam- und Viren-Mails
root@tutorial:~# mkdir /var/vmail/sieve
root@tutorial:~# chown vmail:vmail /var/vmail/sieve
root@tutorial:~# vi /var/vmail/global.sieve
hier fügen wir nun unsere ersten zwei Regel ein
require {"fileinto"}
if allof (header :contains "X-Spam-Flag" "YES") {
fileinto "Junk";
stop;
}
if allof (header :contains "X-Virus-Status" "Infected") {
fileinto "Virus";
stop;
}
Jetzt wird jede E-Mail, die von Spamassassin mit X-Spam-Flag Yes bzw. von ClamAV mit X-Virus-Status Infected im Header markiert wird, ins jeweilige IMAP-Folder (Junk oder Virus) verschoben.
Damit Sieve die gerade erstellte global.sieve lesen kann muss sie erst noch übersetzt werden.
root@tutorial:~# sievec /var/vmail/sieve/global.sieve
Wenn ein Verzeichnis, in welches eine E-Mail in einem Sieve-Script verschoben werden soll, noch nicht existiert, soll dieses Verzeichnis automatisch erstellt werden und vom client auch abonniert werden.
Dies wird mit nachfolgenden Einstellungen in
/etc/dovecot/conf.d/15-lda.conf
erreicht. Hierfür einfach bei den 2 Punkten die # entfernen und das no durch ein yes ersetzen.
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes