Fetchmail ist ein Dienst der in regelmäßigen Abständen neue Nachrichten von externen Mailkonten abholt und die abgeholten Nachrichten in lokale Postfächer zustellt. Fetchmail ist für fast alle Linux-Distributionen verfügbar und kann sehr gut an die eigenen Bedürfnisse angepasst werden.
Wenn Fetchmail als Systemdienst ausgeführt wird, erfolgt die Konfiguration in der Datei /etc/fetchmailrc darin wird der/die Mailserver, die Konten auf dem externen Server und die lokalen Konten angegeben. Dadurch kann für jedes Konto auf einem externen Server definiert werden auf welches lokales Konto die Mails zugestellt werden.
Darüber hinaus können auch noch weitere Einstellungen durchgeführt werden. Dies kann z. B. eine ssl-Authentifizierung sein oder ob Mails am Server belassen werden sollen oder nicht.
Um die Einstellungen von Fetchmail ändern zu können muss man als Benutzer root am System angemeldet sein. Das kann z. B. mittels ssh über das Netzwerk erfolgen
$ ssh root@<servername>
Danach kann die Konfigurationsdatei mit dem Lieblingseditor geöffnet werden (in meinem Fall ist das joe):
$ joe /etc/fetchmailrc
In dieser Datei müssen die folgenden Informationen angegeben werden:
Die Zeile für den Mailserver hat dabei folgendes Format:
poll <mailserver-hostname> protocol <pop3|imap>
Danach werden die Konten aufgelistet die abgefragt werden sollen
user "<username>" with pass "<password>" is "<lolal-mailbox>" here [optionen]
Die Konfigurationsdatei könnte so ähnlich aussehen wie das folgende Beispiel:
poll mail.provider1.com protocol pop3 user "user1" with pass "secret1" is "user1@example.com" here keep user "user2" with pass "secret2" is "user2@example.com" here poll mail.provider2.com protocol imap user "user3" with pass "secret3" is "user3@example.com" here ssl
In diesem Beispiel werden drei Emailadressen von zwei verschiedenen Servern abgefragt.
Die Nachrichten des Benutzers user1 werden am Server belassen und nur jene Mails die neu angekommen sind werden von Fetchmail heruntergeladen. Die Nachrichten der beiden anderen Benutzer werden jedoch aus dem Postfach beim Provider gelöscht. Für das Konto beim zweiten Provider soll zusätzlich eine ssl-Verschlüsselung verwendet werden.
Wenn die Konfigurationsdatei angepasst wurde, kann die Datei gespeichert werden (joe speichert die Datei mit dem Tastenkürzel STRG-K + X). Abschließend muss der Dienst neu gestartet werden damit die Änderungen der Konfigurationsdatei übernommen werden.
$ /etc/init.d/fetchmail restart
Falls die Mails lokal nicht zugestellt werden können, werden alle abgerufenen Mails mit einer Fehlermeldung zurückgeschickt. Wenn das Postfach beim Provider bereits längere Zeit benutzt wurde, können dabei sehr viele Fehlermeldungen zusammenkommen.
Falls etwas nicht funktioniert kann in der Logdatei nach den Fehlern bzw. deren Ursachen gesucht werden. Standardmäßig werden alle Log-Informationen in die Datei /var/log/mail.log geschrieben.
Diskussion