Auf meinem Server läuft regelmäßig fetchmail, um die Post von meinen diversen E-Mail-Konten einzusammeln. Diese wird dann via procmail verarbeitet und auf IMAP-Ordner verteilt. Nun hat fetchmail jedoch zum wiederholten Male beim Abholen von E-Mails mit Anhang versagt, die auf meinem GMX-Konto gelandet sind. Hat beim ersten Auftreten des Fehlers noch ein Update von fetchmail geholfen, so hatte ich dieses Mal kein Verständnis mehr für das Fehlverhalten. Ein kurzes Google-Consulting lieferte mit getmail eine Alternative.
Wie immer ist die Installation auf meinem FreeBSD-System im Handumdrehen erledigt. :-)
Standardmäßig wird getmail mit der Datei ~/.getmail/getmailrc konfiguriert. Allerdings kann in dieser Datei nur genau ein Mail-Server für den Abruf konfiguriert werden. Hat man mehrere Konten, so muß für jedes eine eigene Konfigurationsdatei angelegt werden. Das hat natürlich zur Folge, daß abweichende Optionen jeweils neu konfiguriert werden müssen. Ich habe daher auch entschieden, die Spam- und Virenprüfung nicht an getmail zu übergeben, sondern dies weiterhin procmail zu überlassen.
Um nun alle Konten regelmäßig abzurufen, kann man ein kleines Shellskript schreiben, welches alle verfügbaren Konfigurationsdateien einliest und diese an einen Aufruf von getmail übergibt. Das folgende Beispiel zeigt ein solches Skript.

#!/bin/sh
 
dir=<konfigurationsverzeichnis>
cmd=/usr/local/bin/getmail
 
cd $dir
rcfiles=""
for file in getmailrc.* ; do
  rcfiles="$rcfiles --rcfile $file"
done
exec $cmd -q $rcfiles $@

Die Variable dir legt das Verzeichnis der Konfigurationen fest. In meinem Fall liegt dieses im Home-Verzeichnis und enthält mehrere Konfigurationen mit der Namenskonvention getmailrc.*. Das Skript erzeugt eine Liste dieser Dateien und übergibt sie als Parameterliste an getmail.
Per Cronjob ruft dieses Skript ab sofort regelmäßig meine E-Mails ab und übergibt sie an procmail zur weiteren Verarbeitung.

In diesem Sinne: Willkommen getmail!