Mail Archiver auf dem Synology NAS installieren: GoBD-konforme E-Mail-Archivierung
E-Mail-Archivierung nach GoBD auf der Synology: So installierst du Mail Archiver als Docker-Compose-Projekt, verbindest IMAP-Konten, durchsuchst Archive und exportierst Mails als MBOX oder EML-ZIP.

E-Mail-Archivierung ist für viele KMU in Deutschland, Österreich und der Schweiz längst kein Luxus mehr: Steuerprüfer, Rechtsstreitigkeiten und DSGVO-Anfragen verlangen einen schnellen, lückenlosen Zugriff auf historische Nachrichten. Mit Mail Archiver bekommst du eine Open-Source-Lösung, die Mails über IMAP oder Microsoft 365 Graph abholt, in einer PostgreSQL-Datenbank indexiert und als MBOX oder EML-ZIP exportiert. In dieser Anleitung richtest du das Tool als Compose-Projekt auf einer Synology mit DSM 7.2 ein und achtest dabei auf die Stellschrauben, die für eine revisionssichere Archivierung wichtig sind.
Voraussetzungen
Bevor du startest, sollten diese Punkte erfüllt sein:
| Komponente | Empfehlung |
|---|---|
| Synology NAS / DSM | DSM 7.2, Container Manager (Docker / Compose) |
| Speicher | ausreichend Platz für Postgres-Daten und Attachments; SSD-Volume für die Datenbank bevorzugen |
| Mail-Quelle | IMAP-fähiges Postfach oder Microsoft 365 Tenant |
| Zugriff | Domain + SSL-Zertifikat für die Reverse-Proxy-Einrichtung |
| Wissen | Grundverständnis von Docker Compose und DSM-Dateiberechtigungen |
Mail Archiver arbeitet mit zwei Containern: einer ASP.NET-Core-Anwendung und einer PostgreSQL-Datenbank. Der App-Container lauscht intern auf Port 5000, den du auf der Synology beispielsweise auf 5065 mappen kannst. Die offizielle Dokumentation warnt ausdrücklich: HTTPS wird nicht vom Container selbst angeboten, sondern muss über einen Reverse Proxy ergänzt werden.
Schritt 1: Ordnerstruktur und Volumes vorbereiten
Lege über die File Station unter /volume1/docker/mail-archiver drei Unterordner an. Die Trennung ist nicht nur übersichtlich, sondern schützt dich vor dem häufigsten Fehler bei diesem Image: vergessene DataProtection-Keys führen dazu, dass nach jedem Neuerstellen des App-Containers alle Sessions ungültig werden.
data→ später gemountet auf/app/DataProtection-Keys(zwingend erforderlich)postgres→ später gemountet auf/var/lib/postgresql/dataimport(optional) → später gemountet auf/data/importfür lokale MBOX- oder EML-Importe
Stelle sicher, dass der Container später Schreibrechte auf data und postgres hat. Bei DSM geschieht das in der Regel automatisch, wenn die Ordner unter /volume1/docker liegen und du Container Manager nutzt. Wer strenger trennen möchte, legt die Ordner einem dedizierten Docker-Benutzer zu.
Verifizieren: Öffne die File Station, navigiere zu /volume1/docker/mail-archiver und prüfe, dass die Unterordner data, postgres und optional import existieren.
Schritt 2: Compose-Projekt anlegen
Erstelle im Container Manager ein neues Projekt und füge folgende compose.yaml ein. Falls du noch nie mit Compose auf der Synology gearbeitet hast, findest du in der Anleitung Container Manager mit Docker Compose auf dem Synology NAS den generellen Ablauf. Ersetze die Platzhalter für die Passwörter durch starke, eindeutige Werte und verwende für Datenbank- und Admin-Passwort unterschiedliche Zeichenketten.
version: "3.8"
services:
mailarchive-app:
image: s1t5/mailarchiver:latest
container_name: mail-archiver
restart: always
ports:
- "5065:5000"
environment:
- ConnectionStrings__DefaultConnection=Host=mail-archiver-db;Database=MailArchiver;Username=mailuser;Password=;
- Authentication__Username=admin
- Authentication__Password=
- TimeZone__DisplayTimeZoneId=Europe/Berlin
- ASPNETCORE_FORWARDEDHEADERS_ENABLED=true
- MailSync__IntervalMinutes=15
- Npgsql__CommandTimeout=900
volumes:
- /volume1/docker/mail-archiver/data:/app/DataProtection-Keys
depends_on:
mail-archiver-db:
condition: service_healthy
networks:
- mailarchiver-network
mail-archiver-db:
image: postgres:17-alpine
container_name: mail-archiver-db
hostname: mail-archiver-db
restart: always
environment:
POSTGRES_DB: MailArchiver
POSTGRES_USER: mailuser
POSTGRES_PASSWORD:
volumes:
- /volume1/docker/mail-archiver/postgres:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U mailuser -d MailArchiver"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
networks:
- mailarchiver-network
networks:
mailarchiver-network:
driver: bridgeWichtige Details: Der Connection String muss mit einem Semikolon abschließen und darf keine Leerzeichen am Ende enthalten. Der Hostname im Connection String entspricht dem Servicenamen der Datenbank. Die Variable Authentication__Enabled solltest du nicht setzen; im aktuellen Quellcode wird die Authentifizierung ohnehin erzwungen und false würde den Start blockieren.
Verifizieren: Klicke im Container Manager auf „Bauen und Starten“. Beide Container müssen den Status „Wird ausgeführt“ zeigen. Die Datenbank sollte den Health-Check „healthy“ melden, bevor die App startet.
Schritt 3: Erstzugang und Basis-Konfiguration
Nach dem Start erreichst du Mail Archiver vorübergehend über http://DEINE-NAS-IP:5065. Melde dich mit dem in der Compose-Datei festgelegten Authentication__Username und Authentication__Password an. Nutze diesen internen HTTP-Zugang nur für die Ersteinrichtung; sobald der Reverse Proxy mit HTTPS steht, sperrst du den unverschlüsselten Port besser in der DSM-Firewall für externe Zugriffe.
Im Web-Interface prüfst du zunächst die Zeitzone und die Darstellung. Durch TimeZone__DisplayTimeZoneId=Europe/Berlin werden Zeitstempel bereits korrekt für den DACH-Raum angezeigt. Du kannst optional die Variablen View__DefaultToPlainText=true und View__BlockExternalResources=true in der Compose-Datei ergänzen, um extern geladene Bilder oder Styles in archivierten Mails zu blockieren. Das reduziert Tracking-Risiken und beschleunigt die Anzeige.
Verifizieren: Rufe http://DEINE-NAS-IP:5065 auf, logge dich ein und prüfe, ob das Dashboard ohne Fehler lädt. Im Menü sollte der Bereich „Email Accounts“ sichtbar sein.
Schritt 4: IMAP-Konto anbinden und synchronisieren
Wechsle zu „Email Accounts“ und lege ein neues Konto an. Für die meisten KMU ist der IMAP-Import der schnellste Weg: du gibst Server, Port, Benutzername, Passwort und die gewünschte Synchronisationsfrequenz an. Über MailSync__IntervalMinutes=15 holt Mail Archiver automatisch im 15-Minuten-Takt neue Nachrichten ab. Wer Microsoft 365 nutzt, kann stattdessen die Graph-API-Anbindung konfigurieren. Für den reibungslosen Versand und Empfang im Zusammenspiel mit Microsoft 365 empfiehlt sich vorab die Prüfung der Authentifizierungs-Records, wie in der Anleitung Exchange Online: SPF, DKIM und DMARC für die eigene Domäne beschrieben.
Entscheide dich bewusst für das Verhalten beim serverseitigen Löschen. Mail Archiver kann Mails nach erfolgreichem Import auf dem Quellserver entfernen („Retention Days“ serverseitig) oder eine lokale Aufbewahrungsregel anwenden. Für GoBD-Zwecke solltest du die lokale Aufbewahrungsdauer niemals kürzer wählen als die serverseitige Löschfrist. Besser noch: behalte die Originale auf dem Mailserver, bis du ein etabliertes Backup des Archivs nachweisen kannst.
Verifizieren: Klicke auf „Sync starten“ und warte, bis der erste Durchlauf abgeschlossen ist. Wechsle dann in den „Archive“-Tab und prüfe, ob die erwartete Anzahl an E-Mails angezeigt wird. Ein Blick in die Logs zeigt, ob Verbindungsfehler oder Authentifizierungsprobleme aufgetreten sind.
Schritt 5: Volltextsuche testen
Die Stärke von Mail Archiver liegt in der durchsuchbaren zentralen Datenbank. Nach dem ersten Import werden Mails und typische Anhänge indexiert. Gib einen konkreten Begriff ein, den du in einer früheren Mail erwarten kannst, zum Beispiel eine Rechnungsnummer oder einen Absendernamen. Die Suche berücksichtigt Betreff, Body und viele Attachment-Typen.
Für KMU ist das ein großer Vorteil gegenüber der Suche im Mailclient: du findest Nachrichten über Postfächer und Jahre hinweg, ohne dich durch einzelne Ordner zu klicken. Achte darauf, dass die Datenbank auf einem schnellen Volume liegt; eine große Anzahl an Anhängen kann die erste Indexierung spürbar belasten.
Verifizieren: Gib im Suchfeld einen bekannten Begriff ein und prüfe, ob das Ergebnis die erwartete E-Mail anzeigt. Öffne eine gefundene Mail und kontrolliere Absender, Datum und Body.
Schritt 6: Archive exportieren
Mail Archiver unterstützt zwei gängige Exportformate: MBOX und EML-ZIP. Wähle im Interface das Postfach oder einen Suchfilter aus und starte den Export. MBOX eignet sich für die Weiterverarbeitung in Tools wie Thunderbird oder älteren Archivierungslösungen; EML-ZIP ist näher am Original und lässt sich leicht in Drittsysteme importieren.
Exporte sind ein zentrales Element einer GoBD-konformen Archivierung: sie zeigen, dass du Daten jederzeit in einem handelsüblichen Format aus dem System herausholen kannst. Speichere die Exportdateien nicht nur lokal auf dem NAS, sondern integriere sie in dein Backup- und Aufbewahrungskonzept.
Verifizieren: Starte einen Test-Export mit wenigen Mails als EML-ZIP, lade die Datei herunter und entpacke sie auf einem Arbeitsplatzrechner. Öffne eine einzelne .eml-Datei mit einem Mailclient und prüfe, ob Betreff, Body und Anhänge vollständig sind.
Schritt 7: HTTPS über Reverse Proxy aktivieren
Da Mail Archiver selbst kein HTTPS anbietet, leitest du externe Zugriffe über den DSM-Reverse-Proxy. Öffne die Systemsteuerung → Anmeldeportal → Reverse Proxy und erstelle einen neuen Eintrag:
- Quellprotokoll: HTTPS
- Hostname:
archiv.deine-domain.de - Port: 443
- Zielprotokoll: HTTP
- Zielhostname:
localhostoder die interne NAS-IP - Zielport: 5065
Weil die Variable ASPNETCORE_FORWARDEDHEADERS_ENABLED=true gesetzt ist, erkennt Mail Archiver die ursprüngliche HTTPS-Anfrage hinter dem Proxy korrekt. Vergib ein gültiges Let’s-Encrypt- oder ein eigenes Zertifikat für die Subdomain. Anschließend blockierst du in der DSM-Firewall den direkten Zugriff auf Port 5065 aus dem Internet, damit keine unverschlüsselte Verbindung möglich ist.
Verifizieren: Rufe https://archiv.deine-domain.de aus einem externen Netzwerk auf. Das Browser-Schloss muss geschlossen sein und der Login sollte ohne Zertifikatswarnung funktionieren.
Schritt 8: Backup und Aufbewahrung für GoBD-Prozesse
Technische Features allein machen noch keine GoBD-Konformität. Du musst die Prozesse dokumentieren: wer darf archivieren, wer suchen, wie lange Aufbewahrungsfristen gelten und wie Backups getestet werden. Mail Archiver liefert die technischen Grundlagen dafür: unveränderliche Speicherung, Zugriffs-Logs für Login, Suche, Öffnen, Download, Restore und Löschung sowie Retention Policies, die serverseitiges Löschen und lokale Aufbewahrung regeln.
Für das Backup sicherst du mindestens drei Komponenten regelmäßig:
/volume1/docker/mail-archiver/postgres– die PostgreSQL-Datenbank/volume1/docker/mail-archiver/data– die DataProtection-Keyscompose.yaml– die Projektdefinition
Nutze dafür Hyper Backup, rsync oder ein anderes 3-2-1-Backup-Verfahren. Teste den Restore zyklisch, denn ohne funktionierende DataProtection-Keys sind selbst vollständige Datenbank-Backups nutzlos, weil Sessions und verschlüsselte Inhalte nicht mehr entschlüsselt werden können.
Verifizieren: Starte eine manuelle Sicherung der Ordner data und postgres sowie der Compose-Datei. Prüfe anschließend, ob die Sicherung im Zielverzeichnis lesbar ist und dokumentiere den Zeitpunkt in deinem Archivierungsprotokoll.
Troubleshooting / Typische Fehler
- App startet nicht: Prüfe, ob du versehentlich
Authentication__Enabled=falsegesetzt hast. Diese Variable wird aktuell ignoriert bzw. führt beifalsezum Abbruch. - „Invalid Session“ nach Neuerstellen des Containers: Das Volume
/app/DataProtection-Keysfehlt oder wurde nicht persistiert. Ordnerpfad und Mount müssen stimmen. - Datenbankverbindung schlägt fehl:
POSTGRES_PASSWORDund das Passwort im Connection String müssen identisch sein. Achte auf das abschließende Semikolon im Connection String. - IMAP-Sync bleibt hängen: Erhöhe
Npgsql__CommandTimeoutund prüfe, ob das Quellpostfach sehr viele große Anhänge enthält. Ein initialer Sync kann bei großen Postfächern Stunden dauern. - Login über HTTPS funktioniert nicht: Vergewissere dich, dass
ASPNETCORE_FORWARDEDHEADERS_ENABLED=truegesetzt ist und der Reverse-Proxy-Eintrag auf HTTP zum Container zeigt.
Häufige Fragen
Welches Docker-Image ist das richtige?
Das offizielle Image lautet s1t5/mailarchiver:latest. Die in manchen älteren Referenzen genannten blogtrack/ma-srv-Quellen sind öffentlich nicht nachweisbar; verwende sie nicht.
Ist Mail Archiver automatisch GoBD-zertifiziert?
Nein. GoBD ist ein Verfahrens- und Dokumentationsstandard der deutschen Finanzverwaltung. Mail Archiver bietet die technischen Voraussetzungen (unveränderliche Speicherung, Logs, Export, Aufbewahrung), aber du musst die Prozesse im Unternehmen dokumentieren, regelmäßig prüfen und Backups nachweisen.
Brauche ich Portainer?
Nein. Der Container Manager in DSM 7.2 reicht vollkommen aus. Wer mehrere Stacks zentral verwalten möchte, kann Portainer ergänzen, aber es ist keine Voraussetzung.
Kann ich bestehende MBOX-Dateien importieren?
Ja, wenn du den optionalen Ordner /volume1/docker/mail-archiver/import anlegst und den Import-Pfad in der Konfiguration freigibst. Details dazu findest du in der offiziellen Dokumentation.
Wie sichere ich das Archiv regelmäßig?
Sichere den Postgres-Ordner, den DataProtection-Keys-Ordner und die Compose-Datei. Ein reiner Datenbank-Dump mit pg_dump ist eine gute Ergänzung, ersetzt aber nicht die Sicherung der Keys.
Fazit
Mail Archiver auf einer Synology NAS ist eine pragmatische Wahl für KMU, die ihre E-Mail-Archivierung selbst in der Hand behalten wollen. Mit dem zweiserviceigen Compose-Projekt aus App-Container und PostgreSQL, einem persistierten DataProtection-Keys-Volume und HTTPS über den DSM-Reverse-Proxy erfüllst du die wichtigsten technischen Voraussetzungen für eine revisionssichere Archivierung. Der Mehrwert entsteht aber erst durch die begleitenden Prozesse: dokumentierte Zugriffsrechte, regelmäßige Export-Tests und ein nachweisbares Backup. Wer auch Dokumente und Verträge digital signieren möchte, findet in der Anleitung DocuSeal auf dem Synology NAS installieren: digitale Signaturen selbst hosten eine passende Ergänzung für den papierlosen Bürobetrieb.
Weiterführende Anleitungen und Quellen
- Exchange Online: SPF, DKIM und DMARC für die eigene Domäne
- DocuSeal auf dem Synology NAS installieren: digitale Signaturen selbst hosten
- Container Manager mit Docker Compose auf dem Synology NAS
- s1t5/mail-archiver – GitHub-Repository
- s1t5/mail-archiver – Setup-Dokumentation
- s1t5/mail-archiver – Backup und Restore
- s1t5/mail-archiver – Retention Policies
- Marius Hosting – How to install Mail Archiver on your Synology NAS