Hier gibt es eine Kurzanleitung für fetchmail. Mit fetchmail können Mails z.B. von einem POP3-Server abgeholt werden.
Sämtliche Einstellungen werden in der Datei .fetchmailrc gespeichert. Diese Datei sollte dann im home-Verzeichnis des jeweiligen Benutzers liegen.
Der Aufbau der Datei ist recht simpel. Ein Beispiel:
poll pop.example.com
proto pop3
user "test@example.com"
pass "pass"
is test
mda "/usr/bin/procmail -t"
nokeep
fetchall
no ssl
poll pop.example.com
Hier wird eine Verbindung zu dem Posteingangsserver pop.example.com hergestellt.
proto pop3
Hier wird das entsprechende Protokoll festgelegt. Mögliche Werte sind: pop3, pop2, imap.
Unterschied:
Mit POP3 werden die E-Mails vom Server abgeholt/heruntergeladen.
Bei IMAP liegen die E-Mails immer auf dem Server. Die meisten Provider unterstützen POP3, einige zusätzlich IMAP.
user "test@example.com"
Hier muß die E-Mail-Adresse angegeben werden.
pass "pass"
Hier wird das Passwort im Klartext eingetragen. Es sollte also später darauf geachtet werden, dass nicht jeder Benutzer die Datei lesen darf!
is test
Hier wird der Benutzername eingetragen. In vielen Fällen ist das die E-Mail-Adresse bis vor dem @-Zeichen.
mda "/usr/bin/procmail -t"
Dieser Punkt ist WICHTIG!. Hier wird eingetragen, ob die E-Mails nach dem Herunterladen an ein Programm oder einen Mailserver weitergegeben oder z.B. einfach an einen lokalen Benutzer gesendet werden.
Dazu einige Beispiele:
#Die E-Mail wird an procmail übergeben, ein vielseitiger Filter
mda "/usr/bin/procmail -t"
#Wird ein CyrusIMAP-Server verwendet, ist das neben procmail eine Möglichkeit, die E-Mails direkt an den Server weiterzugeben.
mda "/usr/sbin/cyrdeliver"
#Die E-Mail wird lokal an den Benutzer test zugestellt
#Die E-Mail läßt sich dann z.B. über den Befehl mail auf der Konsole abrufen.
mda test
nokeep
Diese Option weist fetchmail an, die Nachrichten herunterladen und danach vom Server zu löschen. Mögliche Werte sind: nokeep, keep. Mit der Option keep wird die Mail heruntergeladen, aber nicht gelöscht.
fetchall
Standardmäßig ruft fetchmail nur neue E-Mails ab. Mit dieser Option wird fetchmail angewiesen, alle Mails herunterzuladen, auch wenn diese schon einmal heruntergeladen wurden.
no ssl
Hier kann man angeben, ob man die E-Mails verschlüsselt abrufen möchte (muß vom Provider unterstützt werden). Mögliche Werte sind: no ssl, ssl
Damit die Mails nun auch regelmäßig abgerufen werden, gibt es 2 Möglichkeiten:
1. Aufruf als Daemon
Ein Beispiel:
/usr/bin/fetchmail -v -d 300 -L /var/log/fetchmail
Hier wird fetchmail als Daemon aufgerufen, der alle 300s bzw. 5min die E-Mails abholt.
Die Option -v (verbose mode) bedeutet, dass alle Meldungen in die Log-Datei ausgegeben werden. Standardmäß werden nur Fehler und Warnungen ausgegeben.
Mit der Option -L gibt man eine Log-Datei an.
2. Aufruf per Cron-Job
Mit dem Befehl
crontab -e
kann die sogenannte crontab des jeweiligen Benutzers editiert werden.
Wer den Editor vi nicht kennt, wird sich vermutlich mit der Handhabung etwas schwer tun. Mit a wechselt man in den INSERT mode und kann die Crontab bearbeiten. Danach ESC, :wq und mit ENTER bestätigen.
Die crontab könnte etwa so aussehen:
SHELL=/bin/bash
PATH=/sbin:/bin/:/usr/sbin/:/usr/bin
MAILTO=root
HOME=/
05 * * * * test /usr/bin/fetchmail -L /var/log/fetchmail
Die E-Mails werden hier alle 5 Minuten abgerufen. Die letzte Zeile schlüsselt man folgendermaßen auf:
| Minute |
0-59 |
| Stunde |
0-23 |
| Tag-des-Monats |
1-31 |
| Monat |
1-12 (oder Namen, siehe unten) |
| Wochentag |
0-7 (0 oder 7 ist Sonntag oder Namen) |
Liegt die Datei .fetchmailrc nicht im home-Verzeichnis des Benutzers test, muß hier mit der Option -f die Datei angegeben werden, z.B.:
05 * * * * test /usr/bin/fetchmail -f /home/users/fetchmail -L /var/log/fetchmail
Um die E-Mail-Benachrichtigung des Cron-Dienstes zu deaktivieren, entfernt man einfach den Benutzernamen hinter MAILTO. Diese Mails können auf Dauer recht nervig sein.
Weitere Infos bekommt man in den Manpages: man fetchmail