Aufmacher

Mails abholen mit der Fetchmail-Alternative Mpop

Sammeldienst

Nichts ist so gut, dass es nicht noch besser ginge: Der POP3-Client Mpop besticht durch eine schlanke Architektur und einige Features, die ein flottes Arbeiten versprechen.

Fetchmail gehört zu den Klassikern unter den Unix-Tools. Es holt Nachrichten von einem oder mehreren POP3-Servern ab und leitet diese an einen lokalen Dienst zum Ausliefern der Nachrichten weiter. Angesichts eines so mächtigen und mittlerweile ausgereiften Tools stellt sich die Frage, warum es eine zweite Software mit ähnlichem Zweck braucht. Die Antwort ist einfach: Funktionalität. Autor Martin Lambers hielt einige Features von Fetchmail schlicht für unnütz und vermisste zu gleich andere.

So unterstützt Mpop über verschiedene Techniken den parallelen Mailabruf von verschiedenen Servern. Gerade bei zahlreichen Nachrichten erhöht das die Geschwindigkeit beim Herunterladen. Außerdem verändert Mpop so gut wie keine Informationen innerhalb einer Nachricht, außer den absolut notwendigen. Habe Sie jetzt Lust bekommen, den Client einmal auszuprobieren, lesen Sie im Kasten "Installation", wie Sie die Software auf Ihrem System aufsetzen.

Installation

Den POP3-Client bekommen Sie von der Heft-CD oder der Projektseite [1] des Entwicklers. Die Distribution Ubuntu 7.04 (»Feisty Fawn«) bringt das Tool bereits im Repository Universe mit. Sie installieren es mit mit dem Kommando sudo apt-get install mpop in einem Terminal. Um die Software aus dem Quellcode heraus zu übersetzen, entpacken Sie zunächst den Tarball und wechseln anschließend in das neue Verzeichnis:

$ tar xvjf mpop-1.0.10.tar.bz2
$ cd mpop-1.0.10/

Dort lesen Sie die Dateien README und INSTALL für nähere Details zur Installation. Wenn Sie dem Aufruf des Configure-Skriptes keine weiteren Optionen mitgeben und die Programmteile in den Pfad /usr/local/ kopieren möchten, folgt als letztes der übliche Befehls-Dreischritt:

$ ./configure
$ make
$ su
Password:
# make install

Jetzt ist der POP3-Client startbereit und braucht lediglich eine Handvoll Einstellungen.

Um Ihre Mails mit Mpop abzuholen, benötigt das Tool Angaben über den POP3-Server, die passenden Benutzerdaten und eine Angabe zum Ort, an dem es die Mails ablegen soll. Alternativ übergeben Sie die Nachrichten an ein weiteres Programm. Für einen schnellen Einsatz bringt Mpop die entsprechenden Kommandozeilenoption mit (Listing 1).

Listing 1
$ mpop --host=pop3.tux.tld --auth=apop --user=Tux --delivery=mbox,~/Mail/inbox
Passwort für tux auf pop3.tux.tld:
tux auf pop3.tux.tld:
neu: 3 Nachrichten in 8,08 KB, gesamt: 3 Nachrichten in 8,08 KB
empfange Nachricht 1 von 3 (1,79 KB): 100%
empfange Nachricht 2 von 3 (4,48 KB): 100%
empfange Nachricht 3 von 3 (1,81 KB): 100%

In Listing 1 hat sich Mpop über die Option --host beim Server pop3.tux.tld angemeldet. Als Authentifizierungsmethode kommt APOP zum Einsatz (Parameter --auth=apop). Der Benutzername lautet im Beispiel Tux (Option --user=Tux). Nach erfolgreichem Anmelden legt das Programm die drei abgeholten Nachrichten mit --delivery=mbox,~/Mail/inbox in der Datei ~/Mail/inbox auf dem heimischen PC ab.

Sind Sie nicht sicher, welche der zahlreichen Authentifizierungsarten Ihr Mailprovider anbietet, hilft Ihnen die Option -S (oder --serverinfo) weiter. Durch diese fragt Mpop beim Server verschiedene Interna ab, von der Vorhaltezeit der Nachrichten über die eindeutige Mail-Identifikation bis hin zum Authentifizieren (Listing 2).

Listing 2
$ mpop --host=pop3.tux.tld --serverinfo
[…]
UIDL:
   Unterstützung für UIDL (für eindeutige Mailidentifikation)
EXPIRE 240:
   Dieser POP3 Server hält Mails für 240 Tage vor
AUTH:
   Unterstützte Authentifizierungsmethoden:
   USER APOP
[…]

Freilich erscheint es etwas umständlich, Mpop bei jedem Aufruf einen Rattenschwanz an Argumenten zu übergeben. Wesentlich einfacher fällt es, wenn die gewünschten Optionen komplett an einer definierten Stelle stehen. Dies ermöglicht die Konfigurationsdatei ~/.mpoprc in Ihrem Homeverzeichnis.

Dort legen Sie zuerst den Namen eines Accounts an. Hier steht zwar Ihrer Kreativität kaum etwas entgegen. Es empfiehlt sich jedoch, hinter dem Schlüsselwort account einen Namen ohne Leer- oder Sonderzeichen zu wählen. Die erste Zeile in Listing 3 zeigt ein entsprechendes Beispiel. Als nächstes legen Sie den Server fest, auf dem Ihre elektronische Post liegt. Die Zeile leiten Sie mit dem Schlüsselwort host ein. Zeile 2 in Listing 3 zeigt auch hierfür ein Beispiel. Dann folgen der Benutzername und das Passwort, mit denen Sie sich am Server des Providers ausweisen (Zeile 3 und Zeile 4, Listing 3).

Das Verfahren, wie Sie sich authentifizieren, definiert die Zeile auth. In unserem Beispiel heißt das Verfahren APOP. Falls Sie den Werbekiller Spamassassin auf Ihr Postfach ansetzen möchten, hängen Sie ihn mit der Option filter in die Kette ein.

Listing 3
account mail1
host pop3.tux.tld
user tux
password geheim
auth apop
filter "/usr/bin/spamc -c > /dev/null"

Der eingebaute Filter arbeitet jedoch lediglich auf den Headern, also den Kopfzeilen der Nachrichten. Konfigurationseinträge des Spamkillers, die den Textkörper der Mails betreffen, bleiben daher unbeachtet. Neben Spamassassin steht es Ihnen frei, selbst die Kopfzeilen der Mails zu durchforsten und die Nachricht entsprechend dem Ergebnis zu behandeln. Manche Provider filtern die Mails für Ihre Kunden bereits vor und fügen passende Headerzeilen ein. Diese helfen Ihnen, Spam leichter zu identifizieren.

Linux bietet nun sehr einfach Möglichkeiten, um jede Nachricht zum Beispiel mit dem Programm Grep daraufhin zu testen, ob sie die Kopfzeile X-Spam-Status: Yes enthält. Trifft dies zu, löscht Mpop die gesamte Mail vor dem Download (then exit 1), ansonsten (else exit 0) stellt es die Nachricht zu:

filter if [ "`grep "^X-Spam-Status: Yes"`" ]; then exit 1; else exit 0; fi

Damit wären die Optionen für das Holen der Nachrichten abgeschlossen. Doch wie soll die Software mit den geholten Mails weiter verfahren? Dies definieren Sie über einen Eintrag namens delivery:

delivery mda "/usr/bin/procmail -f '%F' -d $USER"

In obigem Beispiel übergibt der Pop-Client die Nachrichten dem Mail Delivery Agent (MDA) Procmail [2]. Der verteilt sie dann nach bestimmten Kriterien auf die einzelnen Postfächer ([3], [4]). Mit delivery haben Sie jedoch noch weitere Möglichkeiten. Alternativ leiten Sie die Mails direkt an einen MTA weiter, der auf Ihrem Rechner arbeitet:

delivery mda "/usr/sbin/sendmail -oi -oem -f '%F' – $USER"

Auf die gleiche Weise integrieren Sie beispielsweise auch den SMTP-Client MSMTP [5]. Das Tool stammt ebenfalls aus der Schmiede vom Mpop-Entwickler Martin Lambers. In der Dokumentation der Software, die Sie mit den Befehlen man mpop und info mpop öffnen, finden Sie weitere Details dazu.

Möchten Sie kein externes Programm einbinden, sondern die Nachrichten direkt in eine Mailbox schreiben, bietet Mpop auch für diesen Fall die passenden Kommandos: Der oben beschriebene Parameter --delivery=mbox,~/Mail/inbox lautet delivery mbox ~/Mail/inbox in der Syntax der Konfigurationsdatei.

Viele Anwender besitzen mehr als einen Mailaccount. Für jedes weitere Konto verfahren Sie, wie bereits erläutert. Präsentiert Ihnen der Aufruf mpop beim Start die Ausgabe Account default nicht gefunden, haben Sie zwei Möglichkeiten: Entweder Sie fragen mit dem Parameter -a (synonym zu all: engl. alle) alle eingetragenen Mailkonten ab, oder Sie definieren eines der Konten als Defaultkonto. Das erreichen Sie mit der folgenden Zeile in der Konfigurationsdatei:

account default: Account

Den Eintrag Account ersetzen Sie einen der Accountnamen aus den Einzeldefinitionen. Beim Aufruf holt das Programm künftig nur die Post von diesem ab. Die Option -a für alle Postfächer steht Ihnen jedoch weiterhin zu Verfügung (Abbildung 1). Um zu sehen, ob Sie Mpop richtig eingestellt haben, eignet sich der Parameter -d (für "debug", engl. austesten) beim Aufruf des Programms. Jetzt zeigt Ihnen der POP3-Client zeilenweise die Kommunikation mit dem Mailserver. Als kleine Hilfe fasst die Tabelle "Kommandozeilenparameter" einige wichtigen Optionen für Sie zusammen.

Abbildung 1: Die Ausgabe des POP3-Client beim Abfragen der Postfächer.

Kommandozeilenparameter

Parameter Funktion
-d Kommunikation zwischen Client und Server zeigen
-S Information des Mailservers abfragen
--host=Hostname Name des Mailservers
--port=Nummer Spezieller Port der Servers
--auth=Methode Authentifizierungsart festlegen
--user=Benutzername Benutzernamen definieren
--delivery=Methode Transportmethode zum Rechner
-q Keine Ausgabe im Terminal
-a Alle Konten abfragen
-k Keine Nachricht löschen
--help Hilfe anzeigen

Dateien und Variablen

Neben der Konfigurationsdatei ~/.mpoprc liest das Tool noch weitere Dateien aus. Zum einen speichert es im Verzeichnis ~/.mpop_uidls jeweils einer Datei pro Mailhost die UIDL der bereits abgeholten Nachrichten ab. Damit verhindert es, dass eine Mail doppelt beim Empfänger landet. Bei Bedarf erstellt Mpop das Verzeichnis beim ersten Programmstart.

Falls in der Datei ~/.mpoprc ein Passwort fehlt, schaut das Programm in der Datei ~/.netrc nach. Normalerweise kommt diese Datei bei der FTP-Kommunikation zum Einsatz. Außerdem wertet der POP3-Client den Inhalt der Variablen $TMPDIR, $USER und $LOGNAME aus, um die Received-Header der Mails oder den Ort für temporäre Dateien zu bestimmen. Damit kommen Sie bei vernünftigen Systemeinstellungen jedoch kaum in Kontakt.

Fazit

Mit Mpop besitzen Sie ein schnell und einfach einzurichtendes Programm, das neben den genannten Features noch weitere besitzt, wie den IPv6-Support oder das verschlüsselte Übertragen via TSL/SSL. Hinzu kommt eine lobenswert umfangreiche Dokumentation in englischer Sprache und verschiedenen Formaten. All dies macht den POP3-Client zu einem Tool, das sowohl Anfänger als auch Gurus der Textkonsole schnell ins Herz schließen.

Glossar

MTA

Mail Transport Agent. Ein Programm, das den Weitertransport einer Mail übernimmt. Zu den bekannten MTAs gehören unter anderem Postfix, Sendmail oder Exim.

UIDL

Unique ID Listing. Eindeutiges Kennzeichen in Form einer ID für eine E-Mail.

Infos

[1] Mpop-Projektseite: http://mpop.sourceforge.net

[2] Procmail-Projektseite: http://www.procmail.org

[3] Procmail als Spam-Filter einsetzen: Mirko Dölle, "Aussortiert", LinuxUser 01.05, S. 30 ff, http://www.linux-user.de/ausgabe/2005/01/030-procmail/

[4] Mails bearbeiten mit Procmail: Andreas Kneib, "Der Meister der Rezepte", LinuxUser 04.02, S. 70 ff, http://www.linux-user.de/ausgabe/2002/04/070-procmail/proc.html

[5] MSMTP-Website: http://msmtp.sourceforge.net

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Angetestet
    Clipboard-Verwalter CopyQ 2.4.5, Datenbank-Manager LazSQLX 4.0.1.1232, schlanker Bildbetrachter Lumee 0.3, Konsolen-Mailclient Mpop 1.2.2
  • Neues auf den Heft-DVDs
    Linux Mint 17.1 "Rebecca" LinuxUser-Megapack (Cinnamon, Mate, XFCE, KDE), KaOS 2015.02, Neptune 4.3, SuperX 1.3.1, Tails 1.3.1
Kommentare

Infos zur Publikation

LU 07/2017: VIDEOSCHNITT

Digitale Ausgabe: Preis € 0,00
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

scannen mit LINUXMINT 18.0 - Brother DCP - 195 C
Christoph-J. Walter, 21.06.2017 08:47, 2 Antworten
Seit LM 18.0 kann ich nicht mehr direkt scannen. Obwohl ich die notwendigen Tools von der Brothe...
Anfänger Frage
Klaus Müller, 24.05.2017 14:25, 2 Antworten
Hallo erstmal. Habe von linux nicht so viel erfahrung müsste aber mal ne doofe frage stellen. A...
Knoppix-Live-CD (8.0 LU-Edition) im Uefiboot?
Thomas Weiss, 26.04.2017 20:38, 4 Antworten
Hallo, Da mein Rechner unter Windows 8.1/64Bit ein Soundproblem hat und ich abklären wollte, o...
Grub2 reparieren
Brain Stuff, 26.04.2017 02:04, 7 Antworten
Ein Windows Update hat mir Grub zerschossen ... der Computer startet nicht mehr mit Grub, sondern...
Linux open suse 2,8
Wolfgang Gerhard Zeidler, 18.04.2017 09:17, 2 Antworten
Hallo.bitte um Hilfe bei. Code fuer den Rescue-login open suse2.8 Mfg Yvo