Mailbox leeren via fetchmail

Aus LinuxUser 09/2001

Mailbox leeren via fetchmail

flink, flexibel, fetchmail

Ein Mailserver wie Postfix befördert E-Mails, ein Mailreader wie mutt verwaltet sie, aber mit welchem Programm können Sie komfortabel Ihre Mails abholen? Mit fetchmail.

Während der Netscape-Messenger eine magere Funktion bereitstellt, um Ihr Mail-Postfach auf einem Server zu leeren, bietet das Programm fetchmail ungleich mehr Möglichkeiten: Optionen für eine sichere Übertragung mit ssl sind ebenso gegeben wie das Einbinden von Filterprogrammen, das Bearbeiten von unterschiedlichen Postfächern, oder das Abholen von Mails für mehrere Benutzer. Natürlich kann fetchmail auch im Hintergrund als Daemon über Ihren Mail-Eingang wachen und bei jeder Einwahl ins Netz seine Arbeit automatisch verrichten.

Die Datei ~/.fetchmailrc ist die Konfigurationsdatei des Programmes fetchmail. Durch diese Datei sagen Sie fetchmail beispielsweise, von welchen Mailservern die Post zu holen, und welche weiteren Programme wie ssh, procmail oder mailfilter dabei auszuführen sind. Mit dem grafischen Frontend fetchmailconf, das in Ihrer Distribution enthalten sein sollte, ist das Erstellen der Konfigurationsdatei denkbar einfach.

fetchmailconf

Nachdem Sie ein xterm oder eine andere Konsole geöffnet haben, starten Sie das Programm fetchmailconf mit seinen Namen und können gleich loslegen. Wenn Sie noch recht unbeleckt im Umgang mit fetchmail sind, dann drücken Sie den Button Configure fetchmail und wählen die Option Novice Configuration.

Abbildung 1: Der Eintrag des Mailservers in fetchmailconf

Abbildung 1: Der Eintrag des Mailservers in fetchmailconf

In der Eingabemaske New Server: vermerken Sie den Mailserver, von dem fetchmail in Zukunft Ihre E-Mails beziehen soll, und quittieren Ihren Eintrag mit der [Return]-Taste.

Vor dem Fenster mit dem Titel Fetchmail host, das sich nun öffnet, brauchen Sie nicht zu erschrecken. Die Voreinstellung des Übertragungsprotokolls steht auf auto und braucht nur bedingt von Ihnen geändert zu werden. In dem Bereich New user tragen Sie bitte Ihre Benutzerkennung am Mailserver ein und beenden Ihre Eingabe erneut mit [Return].

Das nächste Fenster, das nun auf Ihrem Desktop erscheint, fordert Sie auf, Ihr Passwort im Feld Password: anzugeben und zum Abschluss im Bereich New name den Namen des Benutzers einzutragen, für den fetchmail die Post abholen soll. In der Regel ist das der Name, unter dem Sie sich im System einloggen, und der Ihr Home-Verzeichnis benennt. Sollte sich hier bereits der Eintrag finden, den Sie im vorherigen Fenster als Benutzerkennung angegeben haben, löschen Sie ihn mit dem Button Delete. Auch hier bedarf es der [Return]-Taste, bevor Sie alle Fenster mit OK schließen und durch Save die neue Konfigurationsdatei ~/.fetchmailrc erstellen. An dieser Stelle bietet Ihnen fetchmailconf einen Test an, um die Konfiguration zu prüfen. Freilich müssen Sie zuerst eine Verbindung zu Ihrem Provider aufbauen, bevor Sie diese Option wählen.

Vermutlich fragen Sie sich jetzt, warum viele Einstellungen und Buttons, die Sie entdeckt haben, in dieser Anleitung bisher ignoriert wurden. Der Grund liegt in der größtmöglichen Einfachheit, mit dem die Datei ~/.fetchmailrc gestaltet sein sollte. Alle Einträge in der Konfigurationsdatei können beim Aufruf von fetchmail in der Kommandozeile als Optionen angefügt werden. Ein Beispiel: Wenn Sie fetchmail durch die Angabe options fetchall in der Datei ~/.fetchmailrc anweisen, ausnahmslos alle Mails zu holen und auf dem Server zu löschen, dann entspricht das der Befehlsoption fetchmail -a in der Kommandozeile. Auf den ersten Blick erscheint es sinnvoller, alle benötigten Optionen direkt in die Konfigurationsdatei zu schreiben, die Sache hat jedoch einen Haken: Im Einzelfall sind Sie mit den Befehlsoptionen der Kommandozeile schneller, als wenn Sie zuerst die Datei ~/.fetchmailrc editieren müssen, um die gewünschten Ergebnisse zu bekommen.

Abbildung 2: Eintrag der Benutzerkennung am Mailserver

Abbildung 2: Eintrag der Benutzerkennung am Mailserver

Feinheiten

Öffnen Sie nach dem Beenden des Programmes fetchmailconf die Datei ~/.fetchmailrc in Ihrem Lieblings-Editor oder betrachten Sie sie in einem xterm mit dem Befehl less .fetchmailrc. Es bietet sich Ihnen folgendes Bild:

# Configuration created [ DATUM ] by fetchmailconf
 set postmaster "[ USER ]"
 set bouncemail
 set no spambounce
 set properties ""
 poll [ POP.SERVER.DE ]
        user '[ BENUTZERNAME ]' there with password '[ GEHEIM ]' is [ USER ] here

Die Einträge zwischen poll und here, die Ihnen fetchmailconf in zwei Zeilen erstellt hat, können Sie nach Belieben auch untereinander oder in eine Zeile schreiben, fetchmail sieht darin keinen Unterschied:

# Der Server, von dem abgeholt wird
 poll [ POP.SERVER.DE ]
 # Ihre Benutzerkennung am Server
 user '[ BENUTZERNAME ]'
 # Ihr Passwort
 password '[ GEHEIM ]'
 # Für wen wird abgeholt?
 is [ USER ]

Nach einem gelungenen Verbindungsaufbau und dem Start von fetchmail mit der Option -a, holt das Programm nun alle Mails vom angegebenen Server und liefert sie über Port 25 an Ihren lokalen Mailserver, der für das interne Verteilen der Nachrichten zuständig ist. Unter anderem sind das Programme wie sendmail, exim oder postfix, die Ihre E-Mails ebenfalls in die weite Welt hinaus zustellen.

Zwischen der Ablieferung Ihrer Post durch fetchmail und deren Empfang durch Ihren Mailserver, ist das Einschalten eines Filterprogrammes als Alternative denkbar. Hier bietet sich der mächtige Mail Delivery Agent (MDA) procmail an, der die eingehenden Mails nach einem (nicht ganz einfachen) Regelwerk in Dateien einsortiert, löscht oder sogar, wenn die entsprechenden Tools installiert wurden, via SMS an Ihr Handy schickt. Zumeist arbeitet procmail mit Ihrem Mailserver Hand in Hand und bedarf keiner Erwähnung, in Einzelfällen jedoch müssen Sie procmail am Ende der Datei ~/.fetchmailrc mit folgender Zeile einbinden:

# Sortieren mit Procmail
 mda "/usr/bin/procmail -d [ USER ]"

Selbstverständlich funktioniert auch dieser Eintrag auf der Kommandozeile mit der Option -m oder --mda.

Weiter oben haben Sie schon von die Einstellung des Übertragungsprotokolls auf auto für automatische Erkennung gelesen. Sie können die Art des Protokolls auch explizit festlegen, um den Ablauf von fetchmail reibungsloser zu gestalten und Fehlermeldungen vorzubeugen. Die Festlegung des Protokolls fügen Sie nach der Nennung des Servers ein. In unserem Beispiel wählen wir das geläufige POP3-Verfahren:

# Welches Protokoll:
 # auto, pop2, pop3, sdps, imap, apop, kpop?
 protocol pop3

Sicherheit

Auch in punkto Sicherheit läßt fetchmail Sie nicht allein. Wenn Sie die Verbindung durch einen sogenannten ssl-Tunnel (Secure Socket Layer) laufen lassen, um die Übertragung Ihres Passwortes zu sichern, schreiben Sie einfach ssl als letzten Eintrag in die Datei ~/.fetchmailrc. Das setzt natürlich voraus, dass der Mailserver, mit dem Sie sich verbinden, eine ssl-Verbindung unterstützt. Einige Provider verlangen zusätzlich noch einen ssl-Schlüssel oder ein ssl-Zertifikat, das Sie bei Bedarf mit sslcert und sslkey in die Konfigurationsdatei einfügen.

Alternativ dazu können Sie nochmals die Angabe protocol pop3 editieren und in protocol apop ändern. Mit APOP wird Ihr Passwort ebenfalls verschlüsselt und auf der Basis von POP3 übertragen. Allerdings sollten Sie zuvor bei Ihrem Anbieter nachfragen, ob dessen Mailserver auf den APOP-Authentifizierungstyp anspricht.

Etwas schwieriger ist das Einbinden der Secure Shell ssh, mit der Sie Ihre Daten kodiert auf den Weg zu einem entfernten Rechner schicken. Die Schwierigkeit liegt hierbei jedoch im richtigen Gebrauch des ssh-Kommandos und weniger auf Seiten fetchmails. Leider können wir dem komplexen Thema ssh an dieser Stelle kaum Rechnung tragen und nur ein kurzes Beispiel anführen. Weitere Details zur Secure Shell haben wir in Heft 07/2001, S. 92 für Sie zusammengefasst.

Zunächst editieren Sie die Zeile poll [ POP.SERVER.DE] noch einmal, da die Verbindung jetzt durch Ihren Rechner läuft:

# Umbiegen der Verbindung
 poll [ POP.SERVER.DE ] via localhost port 1234

Mit dem Eintrag preconnect weisen Sie fetchmail an, ein Kommando auszuführen, bevor es eine Verbindung zum Server aufbaut. In diesem Falle startet fetchmail die Secure Shell:

# Aufruf der Secure Shell (ssh)
 preconnect "ssh -f -l [ BENUTZERNAME ] -L 1234:[ POP.SERVER.DE ]:110 [ POP.SERVER.DE ]"

Doch der Eintrag preconnect zeigt sich Ihnen auch bei der Bekämpfung des Werbemülls von Vorteil. Bevor fetchmail die unnützen Mails herunterlädt, sorgt, mit Hilfe der preconnect-Option, der SPAM-Killer mailfilter in Ihrem Postfach für Ruhe. Eine ausführliche Anleitung zu Konfiguration und Einsatz des Programmes mailfilter finden Sie übrigens in diesem Heft.

# Aufruf von mailfilter
 preconnect "/usr/bin/mailfilter"

Der beste Schutz durch einen kodierten Datentransfer ist sinnlos, wenn die Datei ~/.fetchmailrc mit den empfindlichen Zugangsnamen und Passwörtern für jeden User lesbar ist. Nachdem Sie die Konfiguration beendet und die Datei gesichert haben, sollten Sie deshalb dafür sorgen, dass nur Sie allein die Konfigurationsdatei einsehen können. Dies gelingt Ihnen durch ein entsprechendes Setzen der Dateirechte mit dem Befehl

chmod 600 .fetchmailrc
Abbildung 3: fetchmail bei der Arbeit

Abbildung 3: fetchmail bei der Arbeit

Optionen der Kommandozeile

Das Programm fetchmail läßt sich von Ihnen mit vielen Optionen in der Shell aufrufen, und die wichtigste Option ist zweifellos --help, die Ihnen eine Liste aller möglichen Befehlsvarianten liefert. Aus diesem Grunde folgt hier nur ein kurzer Abriss aus der Kommandopalette:

Fetchmail-Optionen

Mit dieser Option überprüft fetchmail das Postfach, ohne Mails zu holen:

-c, --check

Hier startet fetchmail als Daemon im Hintergrund nach Sekundenangabe (z. B. kontrolliert fetchmail -d 60 jede Minute Ihr Postfach):

-d, --daemon

Folgende Option beendet den Hintergrundjob als Daemon:

-q, --quit

fetchmail holt alte und neue Mails vom Server:

-a, --all

Neue Mails werden geholt und auf dem Server gelöscht:

-K, --nokeep

Nach dem Holen bleibt eine Kopie der Mail auf dem Server:

-k, --keep

Alte Mails werden auf dem Server gelöscht:

-F, --flush

fetchmail sagt Ihnen genau, was es gerade tut:

-v, --verbose

Automatischer Mail-Abruf

Ein Ort, an dem sich der Aufruf von fetchmail besonders gut macht, ist die Datei /etc/ppp/ip-up oder /etc/ppp/ip-up.local. Jedes Programm, das Sie als Root in dieser Datei vermerken, wird automatisch bei der Verbindung zu Ihrem Provider gestartet. Ein fetchmail-Eintrag in /etc/ppp/ip-up sieht beispielsweise so aus:

/usr/bin/fetchmail -a -v >> /var/log/fetchlog

Auf diese Weise werden die Meldungen von fetchmail, die Sie sonst im xterm oder einer Konsole sehen, in die Datei /var/log/fetchlog geschrieben, wenn fetchmail für Sie die Mails abholt.

LinuxUser 09/2001 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben