E-Mails mit fetchmail abrufen

E-Mails mit fetchmail von Server abrufen und weiterleiten

fetchmail ist ein Dienstprogramm zum Abrufen und Weiterleiten von E-Mails; das Unix Urgestein holt E-Mails von Mailservern und leitet diese an das Zustellsystem weiter. Es können die Mails dann unter Verwendung normaler E-Mail-Benutzeragenten wie etwa mutt, elm oder Mail abgerufenen werden.

Was ist fetchmail ?

Das fetchmail-Dienstprogramm kann im Daemon-Modus laufen, um ein oder mehrere Systeme in einem bestimmten Intervall wiederholt abzufragen, es werden E-Mails von Servern gesammelt die alle gängigen E-Mail-Abrufdienste unterstützen, wie POP3 und IMAP, auch unterstützt werden die ESMTP-ETRN-Erweiterung und die ODMR Protokolle.

In diesem Beitrag wird beschrieben wie fetchmail auf einem Linux Smarthost mit Postfix eingesetzt werden kann. Die E-Mails von externen Mail-Dienstanbieter werden abgerufen und den Empfänger zum Postfach Server weitergeleitet dieser vom Smarthost E-Mails empfängt. Dabei sind bei den Mailkonten keine Weiterleitungen erforderlich, und die E-Mails werden durch den Smarthost ebenfalls auf Viren und SPAM untersucht, bevor diese dem Benutzer Postfach zugestellt werden.

fetchmail Installation

Für die Installation auf CentOS 7 wird das Extras repository benötigt, falls nicht schon vorhanden.

$ wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo rpm -Uvh epel-release-latest-7*.rpm

Das fetchmail-Dienstprogramm kann aus dem CentOS Extras repository installiert werden.

$ yum -y install fetchmail

Wir erstellen die Konfigurationsdatei fetchmail für den daemon unter /etc/sysconfig.

# This file will be used to declare some vars for fetchmail
#
# Uncomment the following if you dont want localized log messages
# export LC_ALL=C

# Declare here if we want to start fetchmail. 'yes' or 'no'
START_DAEMON=yes

 Copy Paste /etc/sysconfig/fetchmail

Es wird der Daemon Init-Script erstellt, hier für ein CentOS Host auf diesem der Postfix MTA bereits läuft. Als root mit vi /etc/rc.d/init.d/fetchmaild

#!/bin/sh
# chkconfig: 35 99 00
# description: Start and stop fetchmail

. /etc/init.d/functions

start() {
  echo "Starting fetchmaild..."
  su fetchmail -s /bin/sh -c "fetchmail -vv -d 900 -a -f /etc/fetchmailrc -L /var/log/fetchmail"
  }

stop() {
  echo "Shutting down fetchmaild..."
  su fetchmail -s /bin/sh -c "fetchmail --quit"
  }

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    ;;
esac

exit 0

 Copy Paste /etc/rc.d/init.d/fetchmaild
Den Init-Script ausführbar machen.

$ chmod 0755 /etc/rc.d/init.d/fetchmaild

Die globale fetchmailrc Recource Konfiguration für den Betrieb als Daemon erstellen in /etc/fetchmailrc.

set daemon 900
set no syslog
set logfile /var/log/fetchmail
set postmaster "postmaster"
set no bouncemail
set no spambounce
set properties ""

poll mail.foo.org with proto POP3
user 'joe@foo.org' there with password 'secret' is joe.office@foo.com here options fetchall nokeep ssl smtphost localhost

 Copy Paste /etc/fetchmailrc

Für jeden Mailserver von diesem E-Mails abgerufen werden, wird eine poll Zeile erstellt. Es soll das externe Postfach von joe@foo.org beim POP3 Server mail.foo.org abgerufen werden und mit smtphost über den localhost über Postfix zum Postfach Server dem Benutzer joe.office@foo.com zugestellt werden. Damit die Protokollierung nicht in maillog statt findet, werden anstelle diese in fetchmail geloggt.

Möglichkeiten mit fetchmail

fetchmail bietet eine Reihe von syntaktischen Feinheiten, um fetchmailrc das Lesen von Dateien zu erleichtern. Zum Beispiel werden die Worte andwithhaswants, und options von fetchmail ignoriert, wie auch Satzzeichen. Während es möglich ist, Anmeldeinformationen für einen Server in einer Zeile anzugeben, werden häufige Konfigurationen über eine Reihe von verschiedenen Zeilen angegeben. fetchmail ist unempfindlich gegenüber Whitespace, außer wenn das Argument in Anführungs- und Schlusszeichen erfolgt.

fetchmail optionen

Für die Poll-Anweisung gibt es mehrere Optionen (z.B. nofetchall (default), fetchall, keep, nokeep ). Die Bedeutungen ist wie folgt:

nofetchall: Nur neue Nachrichten abrufen (Standard). Wenn nichts anderes angegeben ist (z.B. fetchallkeep ), bedeutet dies nofetchall.
fetchall: Holt alle Nachrichten, ob gesehen oder nicht.
keep: Löscht keine Nachrichten auf dem Server.
nokeep: Löscht die gelesenen Nachrichten vom Server.

Die fetchmail Benutzer und Gruppe erstellen und die rechte setzen.

$ groupadd -r fetchmail
$ useradd -r -m -g fetchmail -s /sbin/nologin fetchmail
$ chown fetchmail /etc/fetchmailrc
$ chmod 0600 /etc/fetchmailrc
$ touch /var/log/fetchmail
$ chown fetchmail:fetchmail /var/log/fetchmail
$ chmod 0600 /var/log/fetchmail

Den fetchmail daemon wird nun gestartet.

$ /etc/rc.d/init.d/fetchmaild start

Nach jeder Änderung der fetchmailrc-Konfiguration wird der systemd daemon neugestartet.

$ systemctl daemon-reload

fetchmail Testen

Überprüfen lässt sich die fetchmail Konversation zum Server mit folgendem Befehl:

$ fetchmail -vv -N --ssl -p pop3 -P 995 -ujoe@foo.org mail.foo.org

Die Konfigurationsdatei fetchmailrc testen.

$ fetchmail -v -a -k -f /etc/fetchmailrc

Den fetchmail Prozess überprüfen.

$ ps -ef | grep -v grep | grep fetchmail

Die Ausgabe kann in etwa wie folgt aussehen:

fetchma+  4126     1  0 19:19 ?        00:00:00 fetchmail -vv -d 900 -a -f /etc/fetchmailrc -L /var/log/fetchmail
root      6488  3985  0 16:25 pts/0    00:00:00 su fetchmail

Die fetchmail Protokollierung findet nun in der Datei fetchmail statt.

$ tail -f /var/log/fetchmail

Die fetchmail man page gibt zahlreiche Informationen aus.

$ man fetchmail

Cookie-Hinweise Blockieren

Wer im Netz unterwegs ist, stößt derzeit ständig auf Cookie-Hinweise, die den Nutzer daran erinnern, dass sein Surfverhalten aufgezeichnet wird. Vor Jahren von der EU als nützliche Datenschutzinformation eingeführt, ist die jetzige Flut dieser Hinweise für viele Nutzer nur noch ein lästiges Hindernis.

Dieser Hinweis ist meiner Meinung nach relativ sinnlos, weil fast jede Website Cookies verwendet. Eine aktuelle Studie spricht etwa von 95 Prozent aller Websites, die das Surfverhalten der Nutzer mit Cookies und anderen ausgefeilten Methoden systematisch aufzeichnen.

Google löste Hinweiswelle aus

Eigentlich hat die EU bereits 2009 in der Cookie-Richtlinie festgelegt, dass eine Website das Onlineverhalten seiner Besucher nur dann speichern darf, wenn der einzelne User dem vorher zugestimmt hat. Die EU-Vorgaben wurden allerdings nie umgesetzt. Als gängige Praxis wurde bisher die Aufklärung mittels Datenschutzerklärung im Impressum als ausreichend angesehen.

Hinter der jetzigen Flut an Cookie-Hinweisen steckt ausgerechnet Google, der mit Abstand größte Datensammler im Internet. Im Herbst letzten Jahres verpflichtete Google all seine Werbepartner, die EU-Richtlinie zu befolgen und auf Cookies hinzuweisen. Das Ergebnis bekommen die Nutzer seit Monaten massenweise zu sehen.

Cookie weiß was Nutzer tun

Bei jedem Websitebesuch hinterlässt der Nutzer Spuren. Diese werden von den Betreibern der Websites gespeichert und ausgewertet. Das nennt man Tracking. Dabei kommen unter anderem Cookies zum Einsatz, kleine Textdateien, welche die personenbezogenen Informationen direkt auf dem Computer des Nutzers speichern. Ursprünglich wurden die Cookies eingeführt, um sich zu merken, was der Benutzer vorher auf der Seite gemacht hat. Auch Facebook nutzt die Technik rigoros um anhand des Surfverhalten der Nutzer die passenden Produkte platzieren zu können.

Cookies zeichnen klares Bild des Nutzers

Mit Hilfe der Cookies können die Websitebetreiber genau nachvollziehen, welche Videos wann angeschaut und welche Produkte wie oft aufgerufen wurden. Aus einer Fülle von Einzeldaten zeichnen sie so eine ausführliche Datenspur, die ein klares Bild des Nutzers ergeben.

Sollte man manche Cookies also besser nicht erlauben? Das gezielte Ausschalten einzelner Cookies ist technisch möglich, aber unrealistisch für den Endnutzer. Das Blockieren aller Cookies ist hingegen technisch einfach möglich, hat aber den Nachteil, dass dann viele Funktionen von Webseiten einfach nicht mehr funktionieren. Zum Beispiel das automatische Log-in und das Hinterlegen von Produkten im Warenkorb.

Im Browser Cache gespeicherten Cookies löschen

Die im Browser Cache gespeicherten Cookies können mit Plugins wieder gelöscht werden, wie mit dem Click&Clean, dieses beim beenden des Browsers alle Cookies und bei bedarf den Verlauf und weitere Daten aus dem Cache entfernt.

Cookie-Warnungsblocker bringen Ruhe

Ein Browser Plugin mit dem bezeichnenden Namen „I don’t care about Cookies“ existiert bereits. Einmal im Browser installiert, werden die Hinweise einfach ausgeblendet. Auch Adblock und uBlock (Fanboy’s Cookiemonster List) bieten Filter gegen die massenhaften Hinweise an. Andere Filter wie zum Beispiel „Ghostery“ und „Disconnect“ zeigen an, wie viele Cookies auf welcher Website im Einsatz sind, denn bei vielen Websites weiß man nicht was alles im Hintergrund noch sonst so läuft.

uBlock Origin: Dashboard – Vorgegebene Filter

 

Copy
Die mobile Version verlassen