Zu Befehl
Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen - wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, in denen es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.
Während sogenannte Mail Transfer Agents (MTA) wie z. B. Sendmail, Postfix oder Qmail Ihre Mails vom lokalen Rechner aus losschicken oder sie dort in Empfang nehmen, sorgt fetchmail dafür, dass die Post bei einem Server "draußen" im Netz abgeholt wird. Es kann dabei gleichzeitig von mehreren Accounts Mail herunterladen und lässt sich als Systemdienst automatisieren und in Skripte einbauen.
Konfiguration
Welche Mail-Server fetchmail kontaktieren soll, steht in der Konfigurationsdatei ~/.fetchmailrc. Diese können Sie von Hand im Lieblings-Editor bearbeiten oder aber das Programm fetchmailconf auf der Kommandozeile starten. Klicken Sie die Buttons Configure fetchmail und Novice Configuration an und tragen Sie bei New Server den Mail-Server ein, von dem Sie in Zukunft Post abholen wollen. Nach Bestätigen durch die [Return]-Taste öffnet sich ein Fenster, in dem Sie den Protokolltyp spezifizieren. In den meisten Fällen wird dies POP3oder IMAPsein. Im Feld New user tragen Sie das Benutzerkennzeichen ein und drücken [Return]. Ein weiteres Fenster öffnet sich, in dem Sie das Passwort für den Mail-Server-Account und den Namen des Benutzers auf dem lokalen Computer angeben (Feld Local names). In der Liste unter Local names steht nun neben dem richtigen lokalen User-Namen auch noch der vorher eingegebene Account auf dem Server. Diesen müssen Sie markieren und per Klick auf Delete löschen. Klicken Sie Ok und Save. Ihre Einstellungen können Sie nun in der ~/.fetchmailrc überprüfen:
# Configuration created Thu Aug 22 17:07:33 2002 by fetchmailconf
set postmaster "huhn"
set bouncemail
set no spambounce
set properties ""
poll pop.gmx.net with proto POP3
user 'hjurzik@gmx.de' there with password 'XXXXXX' is 'huhn' hereDas Passwort wird im Klartext abgelegt. Damit für andere Benutzer diese Information verschlossen bleibt, ändern Sie die Zugriffsrechte auf der Kommandozeile mit dem Befehl:
huhn@asteroid:~$ chmod 600 ~/.fetchmailrc
Im Hauptfenster von fetchmailconf bewirkt ein Klick auf den Button Test fetchmail das Gleiche wie der Aufruf fetchmail -d0 -v --nosyslog auf der Kommandozeile: Lokaler Rechner und POP-Server unterhalten sich, ohne dass ein Transfer stattfindet. Sollte eine Fehlermeldung, wie z. B.
fetchmail: SMTP connect to localhost failed fetchmail: SMTP transaction error while fetching from pop.gmx.net
auftauchen, ist der lokale MTA nicht richtig konfiguriert. Abhilfe schafft das Einrichten von Sendmail oder Postfix [1].
Hier geht die Post ab
Beim Start von fetchmail lassen sich auf der Kommandozeile einige Parameter zur Verfeinerung verwenden. Einige davon dürfen stattdessen auch in der Konfigurationsdatei stehen. In der Man Page werden diese Einstellungen als Keyword mit aufgeführt. Die Option -a (Kurzform für --all) bewirkt, dass alle alten und neuen Mails vom Server geholt werden. In der Datei ~/.fetchmailrc wird diese Einstellung dauerhaft durch den Eintrag fetchall eingerichtet. Ebenso lässt sich der Parameter -k (für --keep, d. h. Mails werden auf dem Server nicht gelöscht) in der Konfigurationsdatei fixieren:
user 'hjurzik@gmx.de' there with password 'XXXX' is 'huhn' here options keep
Das Gegenteil von -k bzw. --keep heißt -K (lange Form: --nokeep). Neue Mails werden auf diese Weise abgeholt und auf dem Server gelöscht. Der Eintrag in der ~/.fetchmailrc lautet entsprechend nokeep. Alte Mails lassen sich mit dem Aufruf fetchmail -F (für --flush) auf dem Server löschen - allerdings nur, wenn Sie über POP oder IMAP gehen. Vorsicht mit dieser Option: Hängt sich der eigene MTA einmal auf und wird fetchmail damit unterbrochen, wird beim nächsten Programmstart möglicherweise Mail auf dem Server gelöscht, die Ihnen nie zugestellt wurde. Mit der Option -d arbeitet fetchmail im Hintergrund als Daemonfür Sie. Sollte dies gewünscht sein, starten Sie das Programm mit diesem Parameter und der Zeitangabe in Sekunden:
huhn@asteroid:~$ fetchmail -d 180
Jetzt schaut das Tool alle drei Minuten nach, ob Post abzuholen ist. Mit fetchmail -q werden Sie diesen Prozess wieder los.
Mehrere Accounts lassen sich ebenfalls problemlos verwalten. In der ~/.fetchmailrc können Server einfach untereinander geschrieben werden:
poll provider.net with proto POP3
user 'hjurzik@gmx.de' there with password 'XXXXXX' is 'huhn' here
poll other.provider.net with proto imap
user 'jurzik' there with password 'YYYY' is 'huhn' here



