Email-Server: Emails abholen mit fetchmail
Im ersten Teil des Email-Servers [1] erfährst wie du die Emails aller Benutzer abholst und verteilst.
Dazu dient uns fetchmail.
fetchmail
fetchmail [2]
ist ein Linux Konsolenprogramm, es dient zum Abholen der Emails von einem Emailserver.
Es holt die Emails ab und übergibt sie dem lokalen Emailsystem. fetchmail
wird meistens genutzt um mehrere Emailserver hintereinander abzufragen, die empfangenen
Emails werden dann an einen Emailverteiler (zum Beispiel: procmail) oder
direkt in die Inbox der Benutzer weitergeleitet.
fetchmail kann die Emails von folgenden Servern abholen: POP2, POP3, IMAP4, MS Exchange
Server (NTLM) , Kerberos POP,…
Man kann fetchmail direkt mit allen Parametern aufrufen, aber normalerweise
legt man im home
Verzeichnis die Datei .fetchmailrc an und schreibt dort alle Parameter rein.
Installation von fetchmail
Am einfachsten ist es fetchmail mit den Hilfsmittel deiner Distribution
zu installieren (SuSE: Yast; Mandrake: Software-Manager; Debian: apt-get).
Solltest du es dort nicht finden oder eine zu alte Version haben, kannst
du es aus den Quellen installieren.
Sollte dein Provider dir anbieten die Emails sicher via SSL abzuholen, lies bitte diesen Tuxhausen-Artikel: fetchmail und SSL [3], dort steht auch drin wie du fetchmail aus den Quellen kompilierst.
fetchmail Konfigurationsdatei
fetchmail erwartet seine Konfigurationsdatei im Homeverzeichnis des Benutzers
unter dem Namen “.fetchmailrc” .
Die Emails bitte NICHT als root abholen, am besten einen extra Benutzer dafür erstellen !!
Der Aufbau der Datei ist sehr einfach:
In dem folgendem Beispiel werden die Emails von Angela und Bert bei Puretec
abgeholt.
Die Emails von Angela und Bert werden in die INBOX (meist /var/spool/mail/Benutzername)
abgelegt.
Als kleinen Zusatz zu den Fähigkeiten fetchmails werden noch die privaten Emails von markus
(m.u@gmx.net) abgeholt und diese mit procmail sortiert.
Auf procmail gehe ich zunächst nicht weiter ein, vielleicht kommt mal ein
Artikel (bei Interesse bitte mailden):
#.fetchmailrc #Server Puretec server pop.puretec.de proto pop3 #Benutzer und Password user hdv45 pass geheim #Optionen to angela #Weiterer User auf Server Puretec #Benutzer und Password user hdv46 pass geheim2 #Optionen to bert #---------------- #Server GMX server pop.gmx.de proto pop3 #Benutzer und Password user m.u@gmx.net pass geheim #Optionen keep mda /usr/bin/procmail |
Die einzelnen Zeilen haben die folgende Bedeutung:
server | Der Name des Servers von dem du die Emails abholst |
proto | Das Protokoll des Servers. Meist wird POP3 benutzt |
user | Der Benutzername von dem du die Emails abholen willst |
pass | Das Passwort des Benutzers |
to | Emails direkt in die INBOX vom lokalen Benutzer gespeichert |
keep | Zum Testen kann keep verwendet werden, dann werden die Emails auf dem Server nicht gelöscht |
mda | Emails werden an das Programm (hier /usr/bin/procmail )weitergeleitet |
(procmail ist ein Mailfilter-Programm)
Die Optionen to und mda möchte ich noch etwas erläutern:
Normalerweise hat man bei seinem Provider einen anderen Benutzernamen als
auf dem privaten Arbeitsplatz-Rechner. Deswegen muß man fetchmail sagen
was er mit der Email machen soll. Sagt du das nicht, landen alle Emails
in der INBOX des Benutzers der die Emails abholt. Wenn du die Emails für
mehrere Leute abholst, geht das natürlich nicht.
Mit der Option to werden die Emails dem angegebenen Benutzer zugeordnet und in /var/spool/mail/ abgelegt.
Im ersten Teil des Beispiels werden also alle Emails des Users hdv45 dem
lokalen Benutzer angela zugeteilt. Die Emails landen dann in /var/spool/mail/angela.
Mit der Option mda können die Emails an ein anderes Programm weitergegeben werden. Sinnvoll
wäre der Filter procmail oder ein Virenscanner-Programm (das aber nach
dem Scan die Email weiterleitet !). Auf diese Optionen möchte ich hier
nicht weiter eingehen.
Noch ein Tipp:
Holst du die Emails verschiedener User von dem selben Server ab, kannst du server und proto ab dem zweiten User-Eintrag sparen. Die Einstellung gilt für alle folgenden
user; bis zum nächsten server.
Im obigen Beispiel trifft das auf hdv46 (Bert) zu.
Abholen der Emails
So, nachdem du deine .fetchmailrc geschrieben hast, probieren wir Sie aus.
Am Besten schreibst du erstmal ein keep als Option, dann kann nichts mit deinen nichtabgeholten Emails passieren.
Nun logst du dich als der Benutzer ein, bei dem die .fetchmailrc im Homeverzeichnis
liegt:
[tux ] $ fetchmail #Emails abholen |
1 message for hdv45 at pop.puretec.de (1244 octets).
reading message 1 of 1 (1244 octets) . flushed
fetchmail: No mail for hdv46 at pop.puretec.de
fetchmail: No mail for m.u@gmx.net at pop.gmx.de
Du siehst nun folgendes:
- Angela (user hdv45) hat eine Email mit der Größe von 1244 octets (1000
octets ~ 1KB) erhalten - Bert (user hdv46) und Markus privat (user m.u@gmx.net) haben leider keine
neue Emails
Das wars, die Emails wurden angeholt und einsortiert.
Denk daran die Option keep wieder aus der .fetchmailrc zu entfernen, sonst wurden sich einige Benutzer
warum die Email immer wieder ankommt.
Daemon-Modus
Eine Sache solltest du aber noch ändern:
fetchmail sollte als Daemon laufen und selbstständig periodisch die Emails
abholen, sonst müßtet du immer selber fetchmail eintippen.
Das ist auch aber auch nicht schwer:
Für den Daemon-Modus schreibt du folgendes:
[tux] $ fetchmail –daemon 500 #fetchmail holt die Emails automatisch alle 500 sec ab [tux] $ fetchmail –quit #Beendet den im Daemon-Modus laufenden fetchmail |
Mit dem Parameter –daemon 500 startest du den Daemon-Betrieb, und zwar
holt fetchmail dann alle 500 Sekunden die Emails ab.
Und mit dem Parameter –quit beendest du den im Daemon-Modus laufenden
fetchmail, sehr schön für Skripte.
Damit das Ganze auch noch nach dem nächsten Booten funktioniert solltest
du dir ein Init-Skript schreiben, oder jeden Morgen um 6h fetchmail per
cron-Job starten und abends wieder beenden.
Auf gehts zum nächsten Teil des Email-Servers: Emails vom Server abholen mit IMAP [4]
Tipps zum Betrieb von fetchmail
- Startest du fetchmail mit der Option -v sieht du eine erweiterte Ausgabe
(verbose) . Je mehr -v ( -vv -vvv) du einsetzt desto mehr siehst du. Diese
Option ist gut zur Fehlersuche geeignet
Quellen und weitere Dokumentation
Eigentlich nur die man-Pages und die zu fetchmail Dokumentation.
Auf der fetchmail-Homepage
[1] gibt es eine FAQ und die man-Pages als HTML
Im Text genannte Links
[1] | Tuxhausen – Email-Server: | http://www.tuxhausen.de/email-server.html |
[2] | Fetchmail Homepage: | http://fetchmail.berlios.de/ |
[3] | Tuxhausen – fetchmail und SSL : | http://www.tuxhausen.de/software_fetchmail_ssl.html |
[4] | Tuxhausen – Emails vom Server abholen mit IMAP: | http://www.tuxhausen.de/imapd.html |
Erstellt am: 2002-04-13 | Autor: Markus Ungermann |
Last Update: 2006-08-14 |