Fetchmail

Diese Information basiert auf einem Hinweis von  Konrad Mattheis (konne@iname.com)

Neben dem Programm Pullmail für Windows hat sich im Unix-Umfeld das Programm "Fetchmail" als das Werkzeug zum abholen von Nachrichten aus POP3 und IMAP4-Konten einen Namen gemacht. Viele Windowsadministratoren wissen aber nicht, dass auch einige Unix-Programme sehr wohl unter Windows laufen und gar nicht mal so schwer zu installieren sind.

Mittels der Cygwin-Library können sehr viele Programme aus Unix auch unter Windows gestartet und genutzt werden. Dabei dient die "cygwin1.dll" zur Bereitstellung vieler Unix-Funktionen (vielleicht vergleichbar zu MFC42.DLL, VBRUN300.DLL etc.). Allerdings müssen die Programme für Cygwin kompiliert werden, d.h. es ist kein Weg native Anwendungen zu starten.

Natürlich können Sie Fetchmail auch auf einem Unix/Linux-System ablaufen lassen und die Mails per SMTP an Exchange zustellen lassen.

So funktioniert Fetchmail

Fetchmail holt die Nachricht über eine Online-Verbindung von dem angegebenen Postfachserver ab und sendet diese an den SMTP-Server weiter. Dabei nutzt Fetchmail keine Warteschlange, sondern erst wenn die Mail per SMTP erfolgreich zugestellt wurde, wird die Mail im Postfach gelöscht. Fetchmail "versteht" dabei folgende Meldungen:

  • 452 (insufficient system storage)
    Die Mail bleibt im Postfach für spätere Versuche
  • 552 (message exceeds fixed maximum message size)
    Die Mail wird auf dem Server gelöscht und eine unzustellbarkeit erzeugt
  • 553 (invalid sending domain)
    Wenn der Empfänger z.B. durch einen Spamschutz die Mail nicht annehmen will, dann löscht Fetchmail diese Mail, aber erstellt keine unzustellbarkeit. Sie würde vermutlich eh nur den "Falschen" erwischen. (Siehe auch NDR Spamming)
  • Sonstige Fehler
    Es wird eine unzustellbarkeit an den Absender generiert.

Sie sehen, dass auch hier die üblichen POP3 Probleme auftreten können, dass eine Mail aus Sicht des Absenders erfolgreich in ein Postfach zugestellt wurde, aber der Empfänger diese nicht erhält und keiner der beiden davon etwas erfährt.

Installation Cygwin mit Fetchmail

Die Installation ist sehr einfach, da Sie zuerst auf www.cygwin.com den 300 Kilobyte großen Installer (SETUP.EXE) herunterladen und starten müssen. Dieses Programm holt dann die eigentlich benötigten Komponenten herunter.

Hier die einzelnen Bilder, die Sie bei der Installation begleiten. Sie müssen z.B. angeben, wohin CygWin installiert werden soll, wie die Verbindung zum Internet hergestellt wird und von welcher Quelle die Installationsdateien dann geladen werden.

Wählen Sie dann in der Liste der Anwendungen einfach unter der Kategorie "Mail" die Komponente "Fetchmail" aus

Die eigentliche Installation dauert natürlich dann doch etwas länger, da für den Betrieb von Fetchmail einige Komponenten erforderlich sind, die in dem Zuge mit herunter geladen und installiert werden

Danach ist die Installation soweit erst einmal abgeschlossen und das Programm Fetchmail befindet sich auf ihrer Festplatte:

Konfiguration Fetchmail

Ehe Sie nun gleich FETCHMAIL.EXE starten, müssen Sie Fetchmail natürlich mitteilen, was er wie zu erledigen hat. Dazu gehören die Mailserver und Anmeldedaten der Postfächer, die Fetchmail abholen muss und der Server, an den Fetchmail diese Nachrichten per SMTP weiterleitet.

Dazu müssen Sie die Datei ".fetchmailrc" pflegen, die fetchmail bzw. Cygwin per Default im Homeverzeichnis des Benutzers (Bei Windows ist das Lw:/Dokumente und Einstellungen/%username%/) sucht. Sie können einen alternativen Pfad mit der Option "-f" angeben.

Da in der Konfigurationsdatei Benutzernamen und Kennworte stehen, sollten Sie diese in einem besonderen Verzeichnis mit entsprechenden Berechtigungen absichern.

Der Inhalt könnte wie folgt aussehen:

set postmaster "postmaster@domain.tld"
poll "server" proto pop3 user "user" pass "geheim" smtphost "localhost" smtpname "user@domain.tld"

Die zweite Zeile weist Fetchmail an, den Server "server" über das Protokoll POP3 anzusprechen und über den Benutzer "user" mit den Password "geheim" die Mails anzuholen und über den Server "localhost" an die Adresse "user@domain.tld" zu senden.

Sie können hier problemlos auch mehrere Postfächer in der Liste führen. Eine genaue Übersicht aller Optionen finden Sie z.B. auch auf http://fetchmail.berlios.de/fetchmail-man.html#27

Fetchmail prüft, ob der aufrufende Benutzer auch der Besitzer der Datei ist und meldet ansonsten ein "".fetchmailrc must be owned by you". Kontrollieren Sie daher die Eigenschaften der gerade angelegten Konfigurationsdatei.

Fetchmail Owner 

Der Besitzer MUSS der Benutzer sein, mit dem Fetchmail später gestartet wird. Es ist nicht ausreichend der primären Gruppe die Berechtigungen zu geben. Diese für Windows weniger bekannte Prüfung sichert, dass die Datei nicht von jemand anderem nachträglich geändert wird, so  dass Fetchmail die Nachrichten dann woanders hin sendet. Da in der Datei aber auch Zugangsdaten und Kennworte liegen, sollten Sie die NTFS-Berechtigungen sowieso sehr eng fassen.

Aufruf

Fetchmail können Sie nun auf zwei Arten starten.

  • Task Scheduler
    Sie können z.B. eine Batchdatei oder direkt den Fetchmail Aufruf aus dem Windows Taskplaner einbauen. Ich bevorzuge dazu ein Batch, welches gleich noch seine Tätigkeit protokolliert und bei Fehlern Alarm schlagen kann.

fetchmail -v

  • Daemon
    Sie können Fetchmail selbst aber auch als "Daemon" aufrufen, d.h. nach dem Start von Feetchmail wartet das Programm selbst eine vorgegebene Zeit und führt die Aktion dann wiederholt aus. Der Aufruf lautet dann

fetchmail -d 900

Welche Variante Sie verwenden, bleibt letztlich ihnen überlassen.

Beachten Sie bei der Angabe von Parametern, dass Groß/Kleinschreibung unterschieden wird. So liefert ein "-V" die Version, während "-v" den "Verbose"-Mode einschaltet

Community Content

Andreas Rehm arbeitet mit Fetchmail und hat mir folgendes Archiv bereit gestellt. Es Enthält ein Skript, welches eine Logdatei pro Tag mit Datums und Zeitwerten erstellt, sowie den Fetchmail Protokolldaten füllt. Die Logdateien werden ab 7 Tagen per bzip2 komprimiert und nach 365 Tagen löscht. Insofern können Sie so auch einige Zeit später nachschauen, warum etwas nicht wie gewohnt funktioniert haben könnte.

fetchmailunterwindows.rar
Archiv enthält Skript und eine kleine Anleitung von Andreas Rehm.

Weitere Links