Fetchmail mit Option keep dauerhaft konfigurieren

Gebloggt: Synology NAS mit Zarafa

| Autor / Redakteur: Thomas Drilling / Thomas Drilling

Drillings Open-Source-Eck
Drillings Open-Source-Eck (Bild: Thomas Drilling)

Installiert man Zarafa auf einer Synology-DiskStation und richtet Fetchmail für das Abholen von E-Mails von einem externen Mailserver ein, werden die Mails auf diesem beim Abholen automatisch gelöscht. Wer sie auf dem externen IMAP-Server belassen will, um Sie beispielsweise auch von anderen Clients aus abrufen zu können, kann folgenden Tipp anwenden.

Zarafas Groupware-Lösung lässt sich auf einen Synology-NAS problemlos aus der Paketverwaltung (Paketzentrum) der webbasierten DSM-Administrationsschnittstelle (Disk Station Manager) installieren. Die Synology-Entwickler legen sogar ein grafisches Einrichtungswerkzeug bei, mit dem sich auch die Mail-Abholung via fetchmail sehr einfach einrichten lässt.

Dies ist weitgehend selbsterklärend und benötigt nur die Angabe des betreffenden IMAP-Servers, sowie des zugehörigen IMAP-Kontos. Leider konfiguriert der Synology-Zarafa-Fetchmail-Assistent in Fetchmail bei jedem Account die Option flush, womit sämtliche Mails bei jeder Abholung automatisch vom IMAP-Server gelöscht werden. Im Prinzip ist das ja auch sinnvoll.

Fetchall oder nicht

Möchte man die Mails aber auf dem externen IMAP-Server erhalten, sollte man die Option flush durch keep ersetzen, was aber in der Konfiguration unter Synology-DSM offenbar keine Wirkung zeigt. Das liegt wiederum daran, dass der Parameter keep in der Fetchmail-Konfigurationsdatei nicht gesetzt sein darf, wenn Fetchmail selbst mit der Option  -a (für fetchall ) auf der Kommandozeile gestartet wurde. Dies ist leider bei der Synology-Konfiguration der Fall, wie man nach einigen Suchen herausfindet. Das zugehörige Startskript findet sich auf den Synology-NAS unter /usr/local/zarafa/etc/init.d/fetchmail.

Jetzt ist es problemlos möglich, sich per SSH auf dem NAS einzuloggen und die Option -a in Zeile 4 der Datei zu entfernen.

ARGS="-d 60 -t 60 -a -e 50 --auth password -f /etc/fetchmailrc -L /var/log/fetchmail"

Als Editor steht vi zur Verfügung.

vi /usr/local/zarafa/etc/init.d/fetchmail

Nacharbeiten

Hier ist auch zu erkennen, das Fetchmail im Daemon-Mode (-d) gestartet wird (es ist also kein cron-Eintrag erforderlich) und dass das Abrufintervall 60 Sekunden beträgt. Auch dies lässt sich bei der Gelegenheit den eigenen Bedürfnissen anpassen. Ferner ist hier der Verweis auf die zugehörige Passwortdatei zu finden. Sofern man diese nicht selbst, sondern über die grafische Assistenten von Synology erstellt, sollte man unbedingt vermeiden, den obligatorischen Neustart von Fetchmail über die angebotene Schaltfläche im Assistenten vorzunehmen. Die Erklärung dafür liefert dieser selbst:

„Please note that the Admin GUI uses an own configuration file for generating the /etc/fetchmailrc file. Therefore manual changes will be overwritten when using the Admin GUI. „

Wer dies tut, bekommt als also automatisch die Synology-Fetchmail-Default-Konfiguration mit flush zurück. Fetchmail selbst startet man daher an besten einfach via ssh (als root)  mittels

/usr/local/zarafa/etc/init.d/fetchmail restart

neu.

Das Datumsproblem

Wer möchte, kann auch beim ersten Einrichten von Fetchmail den fetchall-Paramater stehen zu lassen, um einmal den gesamten Erstbestand vom IMAP-Server zu holen. Dann sollte man aber das Abrufintervall je nach Füllstand des IMAP-Kontos möglichst lang lassen. Erst wenn der Erstbestand geholt wurde, schaltet man dann auf keep und ein kurzen Abrufintervall um. Leider lässt es sich dabei nicht verhindern, dass sämtliche E-Mails das aktuelle Datum bekommen. Wer das nicht will, also das Original-Datum jeder einzelnen Mail erhalten will, muss deutlich mehr Aufwand treiben, ein Thema für einen künftigen Blog-Eintrag.