Startseite>E-Mails von mehreren Geräten aus lesen
Aus Raspberry Pi Geek 04/2017

E-Mails von mehreren Geräten aus lesen

© Warawoot Nanta, 123RF

Sammelstelle

Bernhard Bablok

Ein IMAP-Server auf einem Raspberry Pi sammelt Mails an einer zentralen Stelle, damit alle Geräte aus dem LAN Zugriff darauf haben.

Dieses Projekt entstand aus dem Wunsch heraus, Mails mit dem Tablet vom Sofa aus zu lesen und zu versenden. Das war bislang die Aufgabe für den PC auf dem Schreibtisch: Dort ruft der Mailclient Thunderbird die Nachrichten ab und speichert sie lokal. Unterwegs erlaubt das Webinterface des Providers den schnellen Blick, und zur Not geht von dort auch einmal eine Mail raus.

Technisch heißt die Lösung für den parallelen Zugriff von mehreren Rechnern auf ein Konto sperrig Internet Message Access Protocol oder kurz IMAP. Es sorgt für die Synchronisation von Mails zwischen verschiedenen Geräten, quasi analog zu Dropbox. Da die Mails aber beim Provider verbleiben, ist die Lösung nicht optimal. Neben Bedenken hinsichtlich des Datenschutzes gibt es ganz praktische Grenzen, insbesondere den vom Provider bereitgestellten Plattenplatz für die Mails: Mehr als ein, zwei Gigabytes kosten oft Geld.

Grundsätzlich kann man ohne großen Aufwand einen IMAP-Server auf einem RasPi betreiben, und genau darum geht es in diesem Artikel. Da der entsprechende Server aber weder Mails verschickt noch empfängt, sondern nur synchronisiert, braucht es zusätzliche Komponenten. Ein früherer Artikel [1] hat im Detail die dazu notwendigen Schritte beschrieben. Der damals gewählte Ansatz fällt aber technisch aufwendig aus. Obendrein schafft er Probleme, die man ohne die “Lösung” gar nicht hätte.

Die eigene Spam-Schleuder

Der direkte Empfang von Mails sowie deren direkter Versand von einem eigenen Server auf dem RasPi machen keine Freude. Dass der Empfang klappt, setzt voraus, dass der eigene Mailserver via DNS für die Domain zuständig zeichnet. Nur so wissen Provider, wohin sie Mails an [email protected] senden sollen. Die Domain mein-name.de braucht also im DNS einen Eintrag, der sie mit der IP-Adresse des eigenen RasPi verknüpft. Außerdem sollte der Pi eine sehr hohe Verfügbarkeit haben, sonst gehen Mails verloren.

Die Sendeseite erweist sich als noch problematischer: Ein eigener Server auf einem RasPi stellt die Mails direkt an die Domains im Ziel zu. Doch diese blocken in aller Regel Mails von Servern, die über keinen festen DNS-Eintrag verfügen. Bei solchen handelt es sich meist um Spam-Schleudern – entweder, weil sie so schlecht konfiguriert sind, dass der Missbrauch Dritten leichtfällt, oder weil sie genau für diesen Zweck eingerichtet wurden.

Obwohl es für beide hier skizzierten Probleme Lösungen gibt, geht es auch einfacher. Die folgenden Abschnitte zeigen die Konfiguration einer Umgebung, die weder bei der Installation noch im täglichen Betrieb viel Arbeit macht.

Anforderungen und Architektur

Die Abbildung 1 zeigt ein Schema des Datenflusses im neuen Ansatz: Der Versand von Mails erfolgt mit dem SMTP-Protokoll direkt vom Client (PC oder Tablet) zum Server des Providers. Das läuft nicht anders als bisher. Die verschickten Mails landen in einem lokalen Ordner, der zu einem IMAP-Konto gehört. Das Protokoll synchronisiert die Mails zum Server auf dem Raspberry Pi und von dort wieder zu allen angeschlossenen Clients.

Abbildung 1: Im neuen Ansatz fließen die Daten zwischen den Clients, dem IMAP-Server auf dem Pi und dem Provider auf unabhängigen Wegen, laufen aber letztendlich auf dem Pi zusammen.

Abbildung 1: Im neuen Ansatz fließen die Daten zwischen den Clients, dem IMAP-Server auf dem Pi und dem Provider auf unabhängigen Wegen, laufen aber letztendlich auf dem Pi zusammen.

Auf dem RasPi läuft das Programm Fetchmail, das die Nachrichten per POP3-Protokoll beim Provider holt und sie an den lokalen IMAP-Server durchreicht. Beim nächsten Synchronisieren erhalten die Clients dann Zugriff auf die Mails. Der Umweg über Fetchmail ist der Tatsache geschuldet, dass die Clients in aller Regel für ein Konto entweder IMAP oder POP3 erlauben, nicht aber beides.

Das Anforderungsprofil umfasst neben einfacher Installation, ebenso simpler Konfiguration und unproblematischem Betrieb noch folgende Punkte: Für die Anwender und die Außenwelt ändert sich nichts, insbesondere bleiben die vorhandenen E-Mail-Adressen bestehen. Die Anwender dürfen ihren bevorzugten Client weiter verwenden – vorausgesetzt, er unterstützt IMAP. Damit Sie unterwegs neue Mails per Webinterface sehen, darf der RasPi die Mails nicht regelmäßig abholen, sondern nur auf Kommando.

Installation und Konfiguration

Die hier vorgestellte Lösung für ein lokales Netzwerk benötigt nur wenige Ressourcen. Hier tut es ein beliebiger Mini-Rechner, etwa ein RasPi 1 oder sogar ein noch kleinerer NanoPi Neo mit eingestecktem USB-Stick als Datenspeicher. Läuft sowieso ein Raspberry Pi in Ihrem Netz, bietet es sich an, ihn mitzuverwenden. Eine Festplatte eignet sich als Datenspeicher besser als ein USB-Datenstick, aber das ist letztlich nur abhängig vom Platzbedarf.

Als Distribution wählen Sie eine Server-Variante für den SoC, zum Beispiel Raspbian “Jessie” Lite für den RasPi oder Armbian für den Neo. Das folgende Beispiel setzt “Jessie” Lite voraus. Die grundlegenden Pakete lassen sich dort schnell installieren (Listing 1, Zeile 3 und 4). Hinter dovecot-imapd verbirgt sich der IMAP-Server, und fetchmail holt später die Mails vom Provider ab. Das Skript legt gleich einen Benutzer an, der dann als Besitzer aller Mailboxen agiert – aber das bleibt für alle Anwender transparent.

Listing 1

 

#!/bin/bash
apt-get update
apt-get -y install dovecot-imapd fetchmail
# Benutzer für Mailboxen
adduser --disabled-password --gecos "" vmail
touch /var/log/dovecot.log /var/log/dovecot-info.log
chown vmail:vmail /var/log/dovecot.log /var/log/dovecot-info.log
chown -R vmail:vmail /home/vmail
# Logfile für fetchmail
touch /var/log/fetchmail.log
chown vmail:vmail /var/log/fetchmail.log
# Service neu starten
systemctl restart dovecot.service

Für die Konfiguration des Servers erstellen Sie die Datei /etc/dovecot/local.conf (Listing 2). Der Server lädt diese Datei automatisch am Ende der Datei /etc/dovecot/dovecot.conf. Da der Mailserver im lokalen Netz steht, greifen die Clients im Beispiel ohne SSL auf ihn zu (dritte Zeile). Mit einem selbst signierten Zertifikat ließe sich das Verschlüsseln einschalten. Allerdings setzt das auf der Seite der Clients einige Klimmzüge voraus.

Listing 2

 

# /etc/dovecot/local.conf
protocols = imap
ssl = no
disable_plaintext_auth = no
mail_location = maildir:~/Maildir
pop3_uidl_format = %g
auth_verbose = yes
auth_mechanisms = plain
passdb {
  driver = passwd-file
  args = /etc/dovecot/passwd
}
userdb {
  driver = static
  args = uid=vmail gid=vmail home=/home/vmail/%u
}
postmaster_address = [email protected]

Als letzten Schritt benötigen Sie die Passwort-Datei für Dovecot (Listing 2, Zeile 13). Hier tragen Sie die Kombinationen aus Benutzername und Passwort ein, mit denen die Anwender später mit ihrem Mailclient auf die Postfächer zugreifen. Listing 3 zeigt das entsprechende Format.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland