Fetchmail
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Fetchmail 🇬🇧 ist ein Programm, das E-Mails von einem Mailserver abholen kann und diese dann an einen weiteren Mailserver oder ein lokales Zustellprogramm weiterleitet. Fetchmail wird z.B. benötigt, um einen lokalen Mailserver zu erstellen, wo Fetchmail automatisch E-Mails von verschiedenen Accounts bei E-Mail-Anbietern einsammelt und diese dann im Mailserver bereit gestellt werden. Dieser Einsatzzweck wird hier beschrieben.
Pakete installieren¶
Fetchmail besteht aus nur einem Paket, das aus den Quellen installiert werden kann [1]
fetchmail
Befehl zum Installieren der Pakete:
sudo apt-get install fetchmail
Oder mit apturl installieren, Link: apt://fetchmail
Optional besteht noch die Möglichkeit eine simple GUI zu nutzen, die Konfigurationen für Fetchmail erstellen kann
fetchmailconf (universe )
Befehl zum Installieren der Pakete:
sudo apt-get install fetchmailconf
Oder mit apturl installieren, Link: apt://fetchmailconf
Konfigurieren¶
Fetchmail wird über die Konfigurationsdatei /etc/fetchmailrc eingerichtet. Diese wird nicht automatisch erstellt, so dass man sie mit Root-Rechten selber anlegen muss [3]. Im folgenden Beispiel gibt es zwei lokale Benutzer otto
und paul
, wobei otto
der Betreuer des Mailservers sein soll. D.h. E-Mails, die z.B. nicht zugeordnet werden konnten, landen dann bei ihm.
## Allgemeine Einstellungen set postmaster "otto" set bouncemail set no spambounce set properties "" set syslog set daemon 300 ## Die Mails von diesem Account werden otto zugestellt poll imap.emailanbieter1.de with proto IMAP user 'USERNAME_AUF_EMAILSERVER' there with password 'GEHEIM1' is 'otto' here ssl ## Die Mails von diesem Account werden paul zugestellt und auf dem Server gelassen poll pop3.emailanbieter2.de with proto POP3 user 'USERNAME_AUF_EMAILSERVER' there with password 'GEHEIM2' is 'paul' here options keep ssl ## Die Mails nur alle 15 min abholen und auf dem Server lassen poll pop3.web.de with proto POP3 interval 3 user "user@web.de" there with password "xxxxxxxxxx" is "user@web.de" here keep ssl
Es gibt zahlreiche Optionen, die gesetzt werden können. Die üblichsten sind:
Option | Funktion |
ssl | Benutzt SSL-Verschlüsselung, um die Mail abzuholen. |
keep | Belässt abgerufene E-Mails auf dem Server. Setzt man diese Option nicht, werden sie gelöscht. |
fetchall | Ruft alle E-Mails ab, auch alle die schon geholt worden sind. |
limit <maxbytes> | E-Mails, die größer sind, als die Angabe, werden nicht heruntergeladen |
interval <n> | Wenn das Skript abgearbeitet wird, wird nach dem n-ten mal dieser Eintrag gültig |
Folgende sollten immer benutzt werden:
Option | Funktion |
poll <server> | Der Mailserver, von dem die Post abgeholt wird. |
proto imap|pop3 | Mailprotokoll |
user <name> | Benutzerkennung beim Server. Bei Bedarf (Sonderzeichen) in Anführungsstriche setzen. |
password <passwort> | Passwort. Bei Bedarf (Sonderzeichen) in Anführungsstriche setzen. |
is <name> | Lokales Postfach, wo die Post einsortiert wird. |
Die übrigen Wörter im obigen Beispiel sind Füllstoff zum besseren Verständnis und werden von Fetchmail ignoriert.
Das oben erwähnte Beispiel mit anderer Syntax (IMAP-Account):
## Allgemeine Einstellungen set postmaster "otto@meine_domain.de" ## ansonsten wie Beispiel oben ## Die Mails von diesem Account werden otto/ paul@meine_domain.de und anderen zugestellt, Mails werden auf dem Server belassen poll imap.emailserver.de localdomains meine_domain.de protocol IMAP envelope "X-Envelope-To:" user 'USERNAME_auf_EMAILSERVER' pass 'PASSWORT_auf_EMAILSERVER' to * here keep
GUI¶
Es gibt eine sehr einfache GUI, um Fetchmail-Konfigurationen zu erstellen, diese kann wie oben beschrieben installiert und dann mit
fetchmailconf
gestartet werden. Das Programm erstellt bei der Konfiguration eine Datei .fetchmailrc im Homeverzeichnis, die man nach der ersten Konfiguration direkt als Konfigurationsdatei für Fetchmail nutzen kann [2]:
sudo cp ~/.fetchmailrc /etc/fetchmailrc
Hat man Fetchmail jedoch schon konfiguriert, so sollte man die erzeugte .fetchmailrc nicht blind kopieren, sondern die Änderungen in der /etc/fetchmailrc ergänzen.
Fehlermeldung:
$ fetchmailconf /usr/bin/python: can't open file '/usr/lib/python2.6/site-packages/fetchmailconf.py': [Errno 2] No such file or directory
Lösung:
/usr/bin/fetchmailconf bearbeiten und die Zeile
exec /usr/bin/python /usr/lib/`pyversions -d`/site-packages/fetchmailconf.py "$@"
in
exec /usr/bin/python /usr/lib/`pyversions -d`/dist-packages/fetchmailconf.py "$@"
ändern.
Server starten¶
Möchte man, dass Fetchmail im Hintergrund als Dienst arbeitet, so muss man dieses noch in der Datei /etc/default/fetchmail
# Declare here if we want to start fetchmail. 'yes' or 'no' START_DAEMON=yes
aktivieren [3]. Nachdem der Dienst korrekt konfiguriert wurde, kann man ihn aus einem Terminal heraus [2] über den Befehl
sudo /etc/init.d/fetchmail start
starten. Mehr zu dem Thema Dienste findet man unter Dienste.
Links¶
flink, flexibel, fetchmail – Mailbox leeren via fetchmail 🇩🇪 - LinuxUser, 09/2001