Diese Anleitung beschreibt die Einrichtung Ihres ASAMnet-Mail-Kontos in fetchmail, dem Mail-Fetcher der den meisten Linux-Distributionen beiliegt. Sie bezieht sich auf die Version 6.2.5.4, sollte aber für alle halbwegs aktuellen Versionen gelten.
Fetchmail ist ein einfach zu konfigurierendes Tool, das Mails per POP oder IMAP von Servern abholt und einem lokalen Mailsystem zustellt. Es stellt also eine Brücke zwischen einer vorhandenen Mail-Infrastruktur auf Ihrem Server bzw. Ihrem Netzwerk und Ihrem ASAMnet-Mailkonto dar.
Die meisten Mail-Clients haben eingebaute Funktionalität, um Mails für einen Anwender von dessen Mailkonten abzuholen und zu verwalten. Der Einsatz von fetchmail ist daher besonders sinnvoll, wenn Sie bei ASAMnet eine Domain registriert haben und die dort einlaufenden Mails an verschiedene Benutzer in Ihrem Netzwerk verteilen müssen (sog. Multidrop-Mailbox). Darauf liegt hier der Schwerpunkt.
Aber es mag durchaus für den einzelnen Anwender Argumente geben, Abholen und Versenden von Mails vom Lesen, Schreiben und Verwalten zu trennen - mehrere spezialisierte Tools sind immer leistungsfähiger und übersichtlicher einzurichten als ein Programm, das versucht alles zu erschlagen...
Schützen Sie Ihre Privatsphäre! Um Ihre Zugangsinformationen geheim zu halten, empfehlen wir Ihnen dringend, die Verbindung zum Asamnet-Mailserver zu verschlüsseln. Sehr alte Distributionen enthalten möglicherweise eine Version von fetchmail, die kein SSL unterstützt - eine Zeitbombe! Diese Verschlüsselung schützt zwar Ihre Zugangsdaten, bietet jedoch keinerlei Schutz für den Inhalt Ihrer Mails, da diese zuvor (und anschließend bei Ihnen...) unverschlüsselt gespeichert und weiter übertragen werden! Geben Sie vertrauliche Informationen (insbesondere Kreditkarten-Details) grundsätzlich nur in PGP-verschlüsselten Mails weiter, oder verwenden Sie Formulare auf geschützten Web-Seiten.
Hinweis: fetchmail holt nur Mails ab. Für den Versand müssen Sie ein anderes Werkzeug konfigurieren, z.B. sendmail, qmail oder exim. Zur Zeit liegt nicht für alle diese Tools eine Konfigurationsanleitung vor, aber fragen Sie ruhig auf der Technik-Mailingliste!
Ihr lokales Mailsetup muss soweit eingerichtet sein, dass z.B. das Kommando
echo "Test"|mail $LOGNAME
dazu führt, dass Sie eine Mail mit Inhalt "Test" in Ihrer lokalen Mailbox vorfinden.
Sie brauchen folgende Daten:
| Typ | Beispiel | Quelle |
|---|---|---|
| Lokaler Benutzer | ernst | echo $LOGNAME |
| Mailkonto | eiswueer | ASAMnet Willkommensbrief |
| Passwort für Mailkonto | 12345 | Passwort-Brief von ASAMnet |
| Verzeichnis mit vertrauenswürdigen Zertifikaten | /etc/ssl/certs | Beispiel sollte fast überall passen |
Sie müssen nur eine Datei .fetchmailrc in Ihrem Home-Verzeichnis anlegen und mit Ihrem Lieblingseditor bearbeiten. Da Ihr Mail-Passwort im Klartext drin stehen wird, sollten Sie die Datei zuerst mit restriktiven Zugangsberechtigungen anlegen und dann bearbeiten, etwa so:
touch ~/.fetchmailrc
chmod 600 ~/.fetchmailrc
vi ~/.fetchmailrc
Wenn Sie die graphische Oberfläche KDE benutzen und die Kommandozeile nicht ihr bester Freund ist, können Sie in der letzten Zeile auch z.B. kwrite ~/.fetchmailrc schreiben, dann geht ein "gewöhnliches" Editor-Fenster auf (das gilt auch im Folgenden immer, wenn von vi die Rede ist).
Damit schreiben Sie folgendes in die Datei .fetchmailrc:
# Configuration created <date> by Ernst Eiswürfel
set postmaster "ernst"
set bouncemail
set properties ""
poll mail.asamnet.de with proto POP3
user 'eiswueer' there with password '12345'
is 'ernst' here
options fetchall batchlimit 100 ssl
sslcertck sslcertpath /etc/ssl/certs
</date>
Damit werden alle Mails im Postfach eiswueer auf dem ASAMnet Mailserver an den lokalen Benutzer ernst geschickt. Die Verbindung ist verschlüsselt, und das Zertifikat des Mailservers wird gegen allgemein akzeptierte Aussteller verifiziert.
Weitere Informationen erhalten Sie über <code>man fetchmail</code>.
Nun rufen Sie einfach <code>fetchmail</code> ohne irgendwelche Parameter auf. Es sollte die Mails vom ASAMnet-Konto abholen und in ihre lokale Mailbox abliefern.
Genauso können Sie immer Mails abholen. Ob Sie sich dafür ein Symbol auf dem Desktop erzeugen das sie nur anklicken müssen, das Kommando als prefetch command in Ihren Mailclient konfigurieren oder es in regelmäßigen Abständen über die crontab ausführen lassen, bleibt Ihren Vorlieben überlassen.
Nehmen wir als Domain doch mal eiswuerfel.name (beim Schreiben dieses Artikels war eine solche Domain noch nicht registriert).
Ihr lokales Mailsetup muss soweit eingerichtet sein, dass z.B. das Kommando
echo "Test"|mail mail.adresse
für alle von Ihnen angebotenen Mailadressen dazu führt, dass der richtige lokale User eine Mail mit Inhalt "Test" in seiner lokalen Mailbox vorfindet. Etwas konkreter - aber bei Weitem nicht vollständig:
Vertrauenswürdiger Administrator: Wer das ASAMnet Mailkonto samt Passwort kennt, könnte grundsätzlich die Mails aller verwalteten Benutzer lesen - und würde damit gegen deren verfassungsmäßigen Rechte verstoßen. Machen Sie sich bewusst, dass diese Zugangskennung nicht zu Ihren persönlichen Daten Zugang gewährt, sondern zu Daten aller Empfänger Ihrer Domain.
Sie brauchen folgende Daten:
| Typ | Beispiel | Quelle |
|---|---|---|
| eiswuerfel.name | Ihr Auftrag ;-) | |
| Mailkonto | eiswueer | ASAMnet Willkommensbrief |
| Passwort für Mailkonto | 12345 | Passwort-Brief von ASAMnet |
| Verzeichnis mit vertrauenswürdigen Zertifikaten | /etc/ssl/certs | Beispiel sollte fast überall passen |
Sie müssen nur (als root) die Datei /etc/fetchmailrc anlegen und mit Ihrem Lieblingseditor bearbeiten. Da das Mail-Passwort im Klartext drin stehen wird, müssen Sie die Datei zuerst mit restriktiven Zugangsberechtigungen anlegen und dann bearbeiten, etwa so:
su
touch /etc/fetchmailrc
chown fetchmail /etc/fetchmailrc
chmod 600 /etc/fetchmailrc
vi /etc/fetchmailrc
Hier haben wir angenommen, dass der Daemon später unter einem speziellen Account, fetchmail, laufen wird. Der Account kann auf verschiedenen Distributionen durchaus anders heißen.
Damit schreiben Sie folgendes in die Datei:
# Configuration created <date> by Ernst Eiswürfel
set syslog
set postmaster postmaster@eiswuerfel.name
set bouncemail
set no spambounce
set properties ""
# how often will fetchmail poll the accounts (secs):
set daemon 60
poll mail.asamnet.de with proto IMAP
localdomains eiswuerfel.name envelope 2 Received
user 'eiswueer' there with password '12345' to *
options no keep pass8bits fetchall batchlimit 100
ssl sslcertck sslcertpath /etc/ssl/certs
</date>
Damit werden alle Mails im Postfach eiswueer auf dem ASAMnet Mailserver an die lokalen Benutzer geschickt, die den Empfängernamen (vor dem @eiswuerfel.name) entsprechen. Die Verbindung ist verschlüsselt, und das Zertifikat des Mailservers wird gegen allgemein akzeptierte Aussteller verifiziert.
Die Zuordnung funktioniert auf Basis des dritten Received-Headers. Das ist eine ASAMnet-Besonderheit, weil jede Mail auf den ASAMnet-Mailservern wegen der Virenscanner zweimal lokal weitergeleitet wird.
Weitere Informationen erhält man natürlich über man fetchmail
Starten Sie den fetchmail-Daemon. Streng genommen ist das von Ihrer Distribution abhängig, aber auf jedem vernünftigen System sollte das Kommando so lauten:
/etc/init.d/fetchmail start
Fetchmail sollte im Daemon-Modus gestartet werden, die vorhandenen Mails auf dem ASAMnet-Konto abholen und den lokalen Benutzern zustellen. Da fetchmail als Daemon läuft, wird es sich nach dem ersten Satz Mails nicht beenden, sondern im konfigurierten Zeitintervall nach neuen Mails suchen.
Wie Sie in Zukunft den fetchmail-Daemon starten, hängt ganz von Ihrer Internetanbindung ab. Wenn Sie eine permanente Internetanbindung besitzen, sollte fetchmail beim System-Start gestartet werden - ob Sie das noch gesondert einrichten müssen, ist von Ihrer Distribution abhängig.
Falls Sie eine dynmaische Interneteinwahl haben, sollten Sie fetchmail starten wenn die Verbindung aufgebaut wurde, und stoppen sobald die Verbindung getrennt wurde. Letzteres ist wichtig, wenn Sie keine Flatrate haben und die Verbindung bei Bedarf automatisch aufgebaut wird!
Unter Debian können Sie dieses Verhalten bei PPP-basierten Verbindungen (Modem, ISDN oder DSL) durch Anlegen bzw. Anpassen von zwei Dateien erreichen - wobei wir im Beispiel annehmen, dass nur ppp0 eine Internetverbindung darstellt und ggf. andere ppp-Verbindungen aufgebaut werden können:
/etc/ppp/ip-up.d/03-fetchmail
#!/bin/sh
if [ "$PPP_IFACE" = ppp0 ]
then
if [ -x /etc/init.d/fetchmail -a ! -x /sbin/resolvconf ]; then
/etc/init.d/fetchmail start
fi
fi
/etc/ppp/ip-down.d/94-fetchmail
#!/bin/sh
if [ "$PPP_IFACE" = ppp0 ]
then
[ -x /etc/init.d/fetchmail ] || exit 0
/etc/init.d/fetchmail stop >/dev/null 2>&1 || killall fetchmail
fi