Aus Raspberry Pi Geek 04/2017

E-Mails von mehreren Geräten aus lesen (Seite 3)

Automatisches Abholen

Das manuelle Abholen per Kommandozeile ist freilich keine Lösung auf Dauer. Eine Option wäre die Konfiguration von Fetchmail als Daemon. In diesem Fall würde die Software die Mails in einem festgelegten Intervall abholen – die Dokumentation beschreibt, wie das geht.

Der Nachteil dieser Lösung: Die Mails verbleiben dabei nie lange auf dem Mailserver des Providers, ein Zugriff von unterwegs per Webinterface scheitert also meist. Deshalb installieren Sie als Nächstes ein Plugin für Dovecot. Es fängt die Anfragen der Clients zum Synchronisieren innerhalb von Dovecot ab und holt die aktuellen Mails vom Provider. Die Clients erhalten auf diese Weise immer die neuesten Nachrichten zugestellt.

Das Plugin liegt sowohl als Quelltext wie auch vorkompiliert für den RasPi (Verzeichnis contrib/release-raspbian) vor [3]. Falls Sie es selbst bauen möchten, benötigen Sie noch das Paket dovecot-dev. Das Bauen mit einem simplen make dauert auf einem RasPi der dritten Generation weniger als eine Sekunde. Die Installation erledigen Sie mit dem folgenden Befehl:

$ sudo make install_plugin

Dadurch landet die Datei lib_fetchmail_wakeup_plugin.so im Verzeichnis /usr/lib/dovecot/modules/. Falls Sie nicht selbst kompilieren, kopieren Sie die Datei aus dem oben angegebenen Verzeichnis dorthin. Die dazugehörige Konfigurationsdatei 90-fetchmail_wakeup.conf kopieren Sie aus example-config/conf.d ins Verzeichnis /etc/dovecot/conf.d. Listing 5 zeigt eine reduzierte Version des Files.

Listing 5

 

plugin {
  fetchmail_interval = 60
  fetchmail_interval_NOOP = 600
  fetchmail_helper = /usr/bin/fetchmail
}

Die Zeilen 2 und 3 legen fest, wie oft Fetchmail zum Einsatz kommt. Zeile 2 setzt die globale Vorgabe für alle relevanten IMAP-Kommandos (NOOP, STATUS, IDLE) auf 60 Sekunden, Zeile 3 überschreibt für NOOP den Wert auf 10 Minuten.

Die Wahl der Intervalle hängt etwas von den Mailclients ab. Claws-Mail beispielsweise fragt jede Minute per NOOP, deshalb ist der Wert hier etwas hoch gesetzt. Ein expliziter Abruf erfolgt bei Claws-Mail per STATUS, deshalb funktioniert die obige Konfiguration ohne Probleme.

Verwenden Sie einen anderen Client, sollten Sie die Werte entsprechend anpassen. In /var/log/fetchmail.log sehen Sie die protokollierten Aufrufe. Zeile 4 enthält den eigentlichen Aufruf von Fetchmail. Die Software läuft unter dem Benutzerkonto vmail und verwendet die eigene .fetchmailrc aus Listing 4.

Der Nachteil dieses Ansatzes liegt darin, dass die Passwörter sowohl in der /etc/dovecot/passwd als auch in .fetchmailrc im Home-Verzeichnis von vmail stehen. Aus diesem Grund setzen Sie im Parameter fetchmail_helper das kleine Skript fm_wrapper ein (Listing 6), das in der Fetchmail-Konfiguration zur Laufzeit die Passwörter austauscht.

Listing 6

 

#!/bin/bash
# Temporäre Konfig-Datei aus .fetchmailrc erstellen
cfg=$(mktemp --tmpdir fm_XXXXXX.cfg)
cp /home/vmail/.fetchmailrc "$cfg"
# Lese /etc/dovecot/passwd and tausche Passwörter
while read line; do
  id="${line%%:*}"
  pw="${line##*\}}"
  sed -i -e "/$id/s/password [^ ]*/password \"$pw\"/" "$cfg"
done < /etc/dovecot/passwd
# Sonderbehandlung, für letzte Zeile aus /etc/dovecot/passwd
if [ -n "$line" ]; then
  id="${line%%:*}"
  pw="${line##*\}}"
  sed -i -e "/$id/s/password [^ ]*/password \"$pw\"/" "$cfg"
fi
/usr/bin/fetchmail -f "$cfg"   # Eigentlicher Aufruf von Fetchmail
rm -f "$cfg"                   # Aufräumen

Fazit

Zwei Software-Pakete, ein paar Konfigurationsdateien – fertig ist die eigene Drehscheibe für E-Mails. Ein paar Wünsche bleiben noch offen, wie etwa ein kleines Webinterface, das Benutzern das Setzen des IMAP-Passworts erlaubt, oder das Einrichten von SSL im lokalen Netz.

Prinzipiell würde es sich anbieten, von unterwegs auf den eigenen Mailserver zuzugreifen. Das setzt aber eine Port-Weiterleitung im Router, eine dynamische DNS-Adresse und ein passendes SSL-Zertifikat für Dovecot voraus. All das kostet nichts – außer Sicherheit. Angesichts der Kreativität der Hacker empfehlen wir diese Lösung jedoch nur Experten. Sind Sie also viel mit dem Laptop unterwegs, beißen Sie lieber in den sauren Apfel und verwalten Sie Ihre Mails weiter beim Provider. 

Der Autor

Bernhard Bablok arbeitet bei der Allianz Managed&Operations Services SE als SAP-HR-Entwickler. Wenn er nicht Musik hört oder mit dem Rad beziehungsweise zu Fuß unterwegs ist, beschäftigt er sich mit Themen rund um Linux, Programmierung und seit Neuestem Mini-PCs. Sie erreichen ihn unter mailto:[email protected] .

Infos

  1. RasPi als Web/Mail-Server: Bernhard Bablok, “Postfach im Griff”, RPG 03/2015, S. 56, http://www.raspi-geek.de/34103
  2. Dovecot-Setup mit verschlüsselten Passwörtern: http://wiki.dovecot.org/HowTo/SimpleVirtualInstall
  3. Fetchmail-Plugin (Fork): https://github.com/bablokb/fetchmail_wakeup
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben