Dovecot und fetchmail ohne procmail

Ich habe vor kurzem ein IMAP-Mailserver auf Basis von Dovecot installiert. Dieser dient als Ersatz für mein vorheriges Setup auf Basis von Courier-IMAPd + Procmail. Der Hauptbewegrund war Sieve, eine modernes Mail-Sortier-und-Filter-System.

Bisher funktionierte mein Server so: fetchmail ruft die E-Mails ab, übergibt sie an den SMTP-Server postfix, der übergibt sie an procmail (der sie mit Hilfe der .procmailrc sortiert) und sie können dann über courier-imapd abgerufen werden. Das klingt nicht nur kompliziert, sondern ist es auch.

Jetzt funktioniert es einfacher: fetchmail ruft die E-Mails weiterhin ab, übergibt sie aber an dovecot (an den deliver LDA um genau zu sein) und wir sind fertig. Kürzer. Weniger fehleranfällig. Konfigurierbar über die managesieve-Erweiterung für Thunderbird (was der Hauptbeweggrund war, um von .procmailrc weg zu kommen).

Eigentlich sind dafür relativ wenig Konfigurationsoptionen notwendig:

  1. In der dovecot.conf im protocol lda as Sieve-Plugin aktivieren.

  2. In die /etc/fetchmailrc mda "HOME=/home/%T /usr/bin/sudo -u %T /usr/lib/dovecot/deliver" eintragen

  3. Mittels visudo folgenden Filter eingeben: fetchmail ALL=(ALL) NOPASSWD:/usr/lib/dovecot/deliver

Der einentliche Trick dabei ist es, dass fetchmail bei mir als globaler Service ausgeführt wird, und zwar als eigener Benutzer ‚fetchmail‘. Ein direkter Aufruf von deliver allerdings hat zur Folge, dass die E-Mails im Ordner des Fetchmail-Benutzers landen und nicht dem in der fetchmailrc konfigurierten(!). Diese kleine Information ist extrem entscheidend für das erfolgreiche Abrufen von E-Mails und hat mich ein paar Stunden des Grübelns gekostet. Jetzt funktioniert alles und ich kann endlich wieder E-Mails abrufen… und vor allem sortieren 🙂

Copyright © christophbrill.de, 2002-2018.