Drucken
  • Deutsch
29. May 2007

Einrichtung von fetchmail mit ASAMnet Mail-Accounts

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.

Einleitung

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!

Einrichten für einzelnen Benutzer

Voraussetzung

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.

Benötigte Angaben

Sie brauchen folgende Daten:

TypBeispielQuelle
Lokaler Benutzerernstecho $LOGNAME
MailkontoeiswueerASAMnet Willkommensbrief
Passwort für Mailkonto12345Passwort-Brief von ASAMnet
Verzeichnis mit vertrauenswürdigen Zertifikaten/etc/ssl/certsBeispiel sollte fast überall passen

 

 

Konfiguration anlegen

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>.

Funktionstest und Anwenden

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.

Einrichten für eine Multidrop-Mailbox
(alle Benutzer einer Domain)

Nehmen wir als Domain doch mal eiswuerfel.name (beim Schreiben dieses Artikels war eine solche Domain noch nicht registriert).

Voraussetzung

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:

  • Aliase
    Wenn Ernst Eiswürfel den lokalen Account ernst hat und sowohl als ernst@eiswuerfel.name als auch ernst.eiswuerfel@eiswuerfel.name erreichbar sein soll, muss ein Mail-Alias von ernst.eiswuerfel auf ernst eingerichtet sein.
  • Postmaster
    Soll jemand alle Mails bekommen, die sonst niemandem zugeordnet werden können?
  • lokale Domain
    Das lokale Mailsystem soll sich für die verwaltete(n) Domain(s) auch zuständig fühlen und nicht Mails für ...@eiswuerfel.name gleich wieder an ASAMnet schicken!

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.

Benötigte Angaben

Sie brauchen folgende Daten:

TypBeispielQuelle
eiswuerfel.nameIhr Auftrag ;-)
MailkontoeiswueerASAMnet Willkommensbrief
Passwort für Mailkonto12345Passwort-Brief von ASAMnet
Verzeichnis mit vertrauenswürdigen Zertifikaten/etc/ssl/certsBeispiel sollte fast überall passen

 

Konfiguration anlegen

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

Funktionstest und Anwenden

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