Mailserver mit Docker: Postfix + Dovecot als Open-Source-Alternative zu GMail
Der harte Weg zur eigenen E-Mail: Wir bauen einen vollwertigen Mailserver aus Postfix (Versand) und Dovecot (Empfang) in Docker auf – mit SPF, DKIM und DMARC, damit deine Mails nicht im Spam landen. Ehrliche Warnung vorab: Das hier ist kein 30-Minuten-Projekt, aber es ist machbar – und es gehört dir.
Erst ehrlich: Wann sich ein eigener Mailserver lohnt
Bevor wir loslegen, die unbequeme Wahrheit: E-Mail ist das einzige Protokoll des Internets, bei dem dein Server erst beweisen muss, dass er kein Spam-Versender ist. Das bedeutet Arbeit bei der Einrichtung und Disziplin beim Betrieb. Ein eigener Mailserver lohnt sich, wenn du:
- volle Kontrolle über deine Korrespondenz willst (kein Scannen, keine Werbung)
- unbegrenzte Postfächer für Familie oder Team brauchst
- technisch lernen willst, wie E-Mail wirklich funktioniert
Wer dagegen einfach nur „weg von Google“ will und keine Lust auf Betrieb hat, ist mit einem Open-Source-Provider wie Mailbox.org oder Posteo besser beraten – das ist kein Eingeständnis, sondern gesundes Selbstmanagement.
Voraussetzungen: Domain, IP, Reverse DNS
Diese vier Dinge musst du vor der Installation klären – sie entscheiden über Zustellbarkeit:
- Eigene Domain – unverzichtbar. Die MX-Einträge musst du selbst verwalten können.
- Feste, öffentliche IP – dynamische Heim-IPs sind für Mailserver ungeeignet.
- Reverse DNS (PTR) – muss auf
mail.example.orgzeigen. Beim VPS-Anbieter im Panel einstellbar, bei Cloud-Anbietern oft ein Ticket. - Offener Port 25 – viele Heimanschlüsse und manche Clouds blockieren Port 25. Prüfen mit
nc -vz mail.example.org 25von außen.
⚠️ Wichtig: Eine IP mit schlechtem Ruf (z. B. aus einer Cloud, über die Massen-Spam läuft) kann bedeuten, dass deine Mails trotz korrekter Konfiguration abgelehnt werden. Vor dem Kauf die IP bei MXToolbox auf Blacklists prüfen.
Die Komponenten im Überblick
Wir setzen auf das bewährte Duo aus der Open-Source-Welt und ergänzen es um die Signatur-Komponente:
| Komponente | Aufgabe | Rolle |
|---|---|---|
| Postfix | SMTP-Server | Sendet ausgehende Mails, nimmt eingehende vom Internet entgegen |
| Dovecot | IMAP/POP3-Server | Hält Postfächer vor, Clients lesen hier ihre Mails |
| OpenDKIM | DKIM-Signatur | Signiert ausgehende Mails kryptografisch |
| Fail2ban | Schutz | Bannt Brute-Force-Angriffe auf SMTP/IMAP |
Fertige All-in-one-Images wie mailserver/docker-mailserver bündeln alle Komponenten
inklusive sanierter Standardkonfiguration. Für dieses Tutorial verwenden wir genau dieses Projekt –
es ist aktiv gepflegt, Open Source und erspart dir 400 Zeilen handgeschriebene Postfix-Magie.
# Beispiel-Struktur (stark vereinfacht, vollständige Anleitung im Repo):
# docker-mailserver + docker-compose.yml + mailserver.env
# Nach dem ersten Start Setup ausführen:
docker exec -ti mailserver setup email add postmaster@example.org
docker exec -ti mailserver setup config dkim
DNS-Einträge: SPF, DKIM, DMARC & MX
Jetzt kommt der Teil, über den 90 % der „meine Mails landen im Spam“-Probleme entschieden wird: vier DNS-Einträge, die deine Domain als legitimen Absender ausweisen.
| Typ | Name | Wert (Beispiel) | Zweck |
|---|---|---|---|
| A | 203.0.113.10 | Weist die Domain dem Server zu | |
| MX | @ | mail.example.org (Priorität 10) | Sagt anderen Servern, wohin mit eingehender Post |
| TXT | @ | v=spf1 mx a ip4:203.0.113.10 -all | SPF: welche Server dürfen für die Domain senden |
| TXT | dkim._domainkey | v=DKIM1; k=rsa; p=… | DKIM: öffentlicher Schlüssel zur Signatur-Prüfung |
| TXT | _dmarc | v=DMARC1; p=quarantine; rua=mailto:postmaster@example.org | DMARC: Anweisung, was bei Prüf-Fehlern passiert |
Den DKIM-Schlüssel generiert das docker-mailserver-Setup (setup config dkim) und gibt
dir den fertigen TXT-Wert aus. Wichtig: Nach dem Eintragen 24–48 Stunden warten,
bis sich die DNS-Änderungen verbreitet haben, bevor du testest.
💡 Tipp: Starte DMARC zunächst mit p=none und den
rua=-Report, schaue zwei Wochen in die Berichte und verschärfe dann erst auf
p=quarantine. So sperrst du dich nicht versehentlich selbst aus.
Testen & Fehlersuche
Wenn alles steht, testest du in dieser Reihenfolge:
- Port-Check:
mail-tester.comoder MXToolbox prüfen, ob Port 25, 465 und 993 von außen erreichbar sind. - Reverse DNS:
host 203.0.113.10mussmail.example.orgzurückgeben. - SPF/DKIM/DMARC: Eine Testmail an mail-tester.com schicken – das Tool zeigt dir Punkt für Punkt, welche Prüfung durchfällt und warum.
- Real-Test: Mails an GMail, Proton und Outlook schicken und prüfen, ob sie im Posteingang oder Spam landen.
Die wichtigsten Logs im Fehlerfall: docker logs mailserver zeigt SMTP-Dialoge,
Postfix schreibt nach /var/log/mail.log im Container. Ein typisches Problem gleich
vorweg: 550 5.7.1 … helo bedeutet meist, dass dein myhostname nicht dem
PTR-Eintrag entspricht.
Wartung: Updates, Blacklists, Sicherheit
Ein Mailserver ist ein 24/7-Dienst mit Außenwirkung – er braucht mehr Pflege als ein Homelab-Tool:
- Monatliche Updates – Postfix/Dovecot-Sicherheitslücken werden aktiv ausgenutzt. Das docker-mailserver-Image aktualisieren und neu starten.
- Blacklist-Monitoring – die eigene IP wöchentlich auf Blacklists prüfen (MXToolbox kann das automatisiert).
- Fail2ban aktiv halten – SMTP-Auth-Brute-Force ist Dauerzustand. Die Härtungs-Checkliste aus unserem Security-Artikel gilt hier doppelt.
- Backups – Postfächer sind oft unwiederbringliche Daten: tägliches Backup der Mail-Volumes + 3-2-1-Regel (siehe Nextcloud-Artikel).
✅ Zum Mitnehmen: Ein eigener Mailserver ist machbar, aber kein Wochenend-Projekt:
(1) PTR, Port 25 und saubere IP prüfen, (2) MX + SPF + DKIM + DMARC setzen, (3) mit
p=none starten und Reports lesen, (4) mail-tester bis 10/10 fahren, (5) monatlich
updaten. Wer das durchzieht, hat E-Mail-Infrastruktur, die 99 % der Nutzer nicht verwalten können –
für 0 € Softwarekosten.