Mail Archiver auf dem Synology NAS installieren: GoBD-konforme E-Mail-Archivierung
E-Mail-Archivierung nach GoBD auf der Synology: So installieren Sie Mail Archiver als Docker-Compose-Projekt, verbinden IMAP-Konten, durchsuchen Archive und exportieren Mails als MBOX oder EML-ZIP.
Geprüft am 14.10.2026 · für Mail Archiver 2610.1
WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Steuerprüfungen, Rechtsstreitigkeiten und DSGVO-Anfragen verlangen von KMU schnellen, lückenlosen Zugriff auf historische E-Mails. Mail Archiver ist eine Open-Source-Lösung, die Mails über IMAP oder Microsoft 365 (Graph-API) abholt, in einer PostgreSQL-Datenbank indexiert und als MBOX oder EML-ZIP exportiert. Sie richten das Tool als Compose-Projekt auf einer Synology mit DSM 7.2 ein und setzen die Stellschrauben für eine revisionssichere Archivierung.
Voraussetzungen
Bevor Sie starten, sollten diese Punkte erfüllt sein:
| Komponente | Empfehlung |
|---|---|
| Synology NAS / DSM | x86-64-Modell (Plus-Serie) mit DSM 7.2 und Container Manager, mindestens 2 CPU-Kerne und 4 GB RAM |
| Speicher | ausreichend Platz für Postgres-Daten und Anhänge (grob die Größe der archivierten Postfächer plus Reserve); 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 besteht aus zwei Containern: einer ASP.NET-Core-Anwendung und einer PostgreSQL-Datenbank. Der App-Container lauscht intern auf Port 5000, auf der Synology etwa auf 5065 gelegt. HTTPS bietet der Container laut Dokumentation nicht selbst, es kommt über einen Reverse Proxy.
Schritt 1: Ordnerstruktur und Volumes vorbereiten
Legen Sie in der File Station unter /volume1/docker/mail-archiver drei Unterordner an. Das verhindert den häufigsten Fehler bei diesem Image: Ohne dauerhaft gespeicherte DataProtection-Keys (die Schlüssel, mit denen ASP.NET Core Anmelde-Cookies verschlüsselt) werden nach jedem Neuerstellen des App-Containers alle Sitzungen ungültig.
data→ später eingebunden als/app/DataProtection-Keys(zwingend erforderlich)postgres→ später eingebunden als/var/lib/postgresql/dataimport(optional) → später eingebunden als/data/importfür lokale MBOX- oder EML-Importe
Der Container braucht Schreibrechte auf data und postgres; unter /volume1/docker mit dem Container Manager ist das in der Regel gegeben. Für strengere Trennung weisen Sie die Ordner einem eigenen Docker-Benutzer zu.
Verifizieren: Öffnen Sie die File Station, navigieren Sie zu /volume1/docker/mail-archiver und prüfen Sie, dass die Unterordner data, postgres und optional import existieren.
Schritt 2: Compose-Projekt anlegen
Erstellen Sie im Container Manager ein Projekt mit dem Pfad /volume1/docker/mail-archiver und fügen Sie folgende compose.yaml ein (Grundlagen: Container Manager mit Docker Compose auf dem Synology NAS). Ersetzen Sie DB_PASSWORT und ADMIN_PASSWORT durch starke, verschiedene Werte und archiv.example.de durch Ihre Subdomain.
services:
mailarchive-app:
image: s1t5/mailarchiver:2610.1
container_name: mail-archiver
restart: always
ports:
- "5065:5000"
environment:
- ConnectionStrings__DefaultConnection=Host=mail-archiver-db;Database=MailArchiver;Username=mailuser;Password=DB_PASSWORT;
- Authentication__Username=admin
- Authentication__Password=ADMIN_PASSWORT
- Authentication__CookieSameSite=Lax
- TimeZone__DisplayTimeZoneId=Europe/Berlin
- AllowedHosts=archiv.example.de;localhost
- ASPNETCORE_FORWARDEDHEADERS_ENABLED=true
- MailSync__IntervalMinutes=15
- Npgsql__CommandTimeout=900
- DeletionPolicy__DeletionAllowed=false
# optional, ab 2610.1: Schlüssel für verschlüsselte Kontozugangsdaten (openssl rand -base64 32)
# - Security__CredentialEncryptionKey=SCHLUESSEL_BASE64
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: DB_PASSWORT
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 endet mit einem Semikolon ohne folgende Leerzeichen; sein Hostname entspricht dem der Datenbank.
- Das Image ist auf eine feste Version geschrieben (Stand der Prüfung: 2610.1, Schema Jahr/Monat). Aktuelle Tags finden Sie auf Docker Hub unter
s1t5/mailarchiver. AllowedHostsbegrenzt die Hostnamen, unter denen die Anwendung antwortet; in Produktion laut Dokumentation kein Stern (*). Für den ersten Test über die IP-Adresse ergänzen Sie diese vorübergehend.Authentication__CookieSameSite=Laxempfiehlt die Dokumentation für den Betrieb hinter einem Reverse Proxy.DeletionPolicy__DeletionAllowed=falsesperrt das manuelle Löschen archivierter Mails auf Datenbankebene, sinnvoll für GoBD-orientierte Archivierung. Lokale Aufbewahrungsregeln (Retention) laufen weiter.- Die Variable
Authentication__Enabledsetzen Sie nicht. Die Anmeldung ist im aktuellen Quellcode immer aktiv, und der Wertfalseverhindert den Start.
Verifizieren: Klicken Sie im Container Manager auf „Erstellen“ bzw. „Bauen und Starten“. Beide Container müssen den Status „Wird ausgeführt“ zeigen. Die Datenbank meldet im Health-Check „healthy“, bevor die App startet.
Schritt 3: Erstzugang und Basis-Konfiguration
Nach dem Start erreichen Sie Mail Archiver vorübergehend über http://NAS-IP:5065 mit den Werten aus Authentication__Username und Authentication__Password. Nutzen Sie den HTTP-Zugang nur zur Ersteinrichtung und sperren Sie den Port nach Einrichtung des Reverse Proxy in der DSM-Firewall für externe Zugriffe.
TimeZone__DisplayTimeZoneId=Europe/Berlin sorgt für korrekte Zeitstempel. Optional blockieren View__DefaultToPlainText=true und View__BlockExternalResources=true extern geladene Bilder oder Styles in archivierten Mails und reduzieren Tracking-Risiken; die gespeicherten Mails bleiben laut Dokumentation unverändert.
Verifizieren: Rufen Sie http://NAS-IP:5065 auf, melden Sie sich an und prüfen Sie, ob das Dashboard ohne Fehler lädt. Im Menü ist der Bereich „E-Mail Accounts“ sichtbar.
Schritt 4: IMAP-Konto anbinden und synchronisieren
Legen Sie unter „E-Mail Accounts“ ein Konto an. Für die meisten KMU ist IMAP der schnellste Weg: Server, Port, Benutzername, Passwort und bei Bedarf eine eigene Synchronisationsfrequenz; MailSync__IntervalMinutes=15 holt standardmäßig alle 15 Minuten neue Nachrichten ab. Für Microsoft 365 steht die Graph-API zur Verfügung, mit App-Registrierung in Entra ID. Prüfen Sie dafür vorab die Authentifizierungs-Einträge, siehe Exchange Online: SPF, DKIM und DMARC für die eigene Domäne.
Entscheiden Sie bewusst über das serverseitige Löschen: Mail Archiver kann Mails nach einstellbaren Tagen auf dem Quellserver entfernen (Server-Retention) und getrennt davon eine lokale Aufbewahrungsregel anwenden. Die lokale Aufbewahrungsdauer darf für GoBD-Zwecke nie kürzer als die gesetzliche Frist sein. Behalten Sie die Originale auf dem Mailserver, bis ein funktionierendes Backup des Archivs nachgewiesen ist.
Verifizieren: Starten Sie beim Konto die Synchronisation über „Sync“ und warten Sie, bis der erste Durchlauf abgeschlossen ist. Wechseln Sie dann in den Bereich „Archiv“ und prüfen Sie, ob die erwartete Anzahl an E-Mails angezeigt wird. Unter „Jobs“ bzw. in den Container-Protokollen sehen Sie, ob Verbindungs- oder Anmeldefehler aufgetreten sind.
Schritt 5: Volltextsuche testen
Nach dem ersten Import sind Mails und typische Anhänge in der zentralen Datenbank indexiert. Suchen Sie einen konkreten Begriff, etwa eine Rechnungsnummer oder einen Absendernamen; die Suche berücksichtigt Betreff, Text und Filter wie Zeitraum oder Konto.
Anders als im Mailclient finden Sie Nachrichten über Postfächer und Jahre hinweg. Legen Sie die Datenbank auf ein schnelles Volume; viele große Anhänge verlangsamen die erste Indexierung spürbar.
Verifizieren: Geben Sie im Suchfeld einen bekannten Begriff ein und prüfen Sie, ob die erwartete E-Mail erscheint. Öffnen Sie eine gefundene Mail und kontrollieren Sie Absender, Datum und Text.
Schritt 6: Archive exportieren
Mail Archiver exportiert als MBOX oder EML-ZIP: Konto oder Mails im Interface wählen und Export starten. MBOX eignet sich für Thunderbird oder ältere Archivierungslösungen, EML-ZIP ist näher am Original und leicht in Drittsysteme importierbar.
Exporte belegen für die GoBD, dass Sie Daten jederzeit in einem gängigen Format herausholen können. Binden Sie Exportdateien in Ihr Backup- und Aufbewahrungskonzept ein, statt sie nur lokal auf dem NAS zu speichern.
Verifizieren: Starten Sie einen Test-Export mit wenigen Mails als EML-ZIP, laden Sie die Datei herunter und entpacken Sie sie auf einem Arbeitsplatzrechner. Öffnen Sie eine einzelne .eml-Datei mit einem Mailclient und prüfen Sie, ob Betreff, Text und Anhänge vollständig sind.
Schritt 7: HTTPS über Reverse Proxy aktivieren
Externe Zugriffe laufen über den DSM-Reverse-Proxy. Erstellen Sie unter Systemsteuerung → Anmeldeportal → Erweitert → Reverse Proxy einen neuen Eintrag:
- Quellprotokoll: HTTPS
- Hostname:
archiv.example.de - Port: 443
- Zielprotokoll: HTTP
- Zielhostname:
localhostoder die interne NAS-IP - Zielport: 5065
Mail Archiver wertet die Header X-Forwarded-Proto, X-Forwarded-Host und X-Forwarded-For aus und erkennt so die ursprüngliche HTTPS-Anfrage. Weisen Sie der Subdomain unter Sicherheit → Zertifikat ein gültiges Let's-Encrypt- oder eigenes Zertifikat zu. Blockieren Sie danach in der DSM-Firewall den direkten Zugriff auf Port 5065 aus dem Internet und entfernen Sie eine vorübergehend in AllowedHosts eingetragene IP-Adresse.
Verifizieren: Rufen Sie https://archiv.example.de aus einem externen Netz auf. Der Browser zeigt ein gültiges Zertifikat, und die Anmeldung funktioniert ohne Warnung.
Schritt 8: Backup und Aufbewahrung für GoBD-Prozesse
Technik allein macht keine GoBD-Konformität. Dokumentieren Sie die Prozesse (Verfahrensdokumentation): wer archivieren und suchen darf, welche Fristen gelten, wie Backups getestet werden. Mail Archiver liefert die Grundlagen: Löschsperre über DeletionPolicy__DeletionAllowed=false, Zugriffsprotokolle für Anmeldung, Suche, Öffnen, Export und Löschung sowie Aufbewahrungsregeln für Server und lokales Archiv.
Für das Backup sichern Sie mindestens drei Komponenten regelmäßig:
/volume1/docker/mail-archiver/postgres– die PostgreSQL-Datenbank/volume1/docker/mail-archiver/data– die DataProtection-Keyscompose.yaml– die Projektdefinition- falls gesetzt, der Wert von
Security__CredentialEncryptionKey, getrennt von der Datenbanksicherung aufbewahrt
Laut Projektdokumentation stoppen Sie für eine konsistente Sicherung vorher beide Container: Projekt im Container Manager stoppen, Sicherung mit Hyper Backup oder einem anderen 3-2-1-Verfahren, Projekt starten. Ergänzend eignet sich ein regelmäßiger pg_dump. Testen Sie die Wiederherstellung regelmäßig; ohne DataProtection-Keys verlieren Sie nach einem Restore nur die Sitzungen, den Wiederanlauf sollten Sie trotzdem üben.
Update von 2609.1 auf 2610.1
Für Bestandsinstallationen genügt der Tausch des Image-Tags: Stoppen Sie das Projekt, sichern Sie die Ordner postgres und data, ändern Sie in der Compose-Datei s1t5/mailarchiver:2609.1 auf 2610.1 und erstellen Sie das Projekt im Container Manager neu. Beim ersten Start legt 2610.1 die neue Tabelle DashboardStatsCache an; ein Dienst berechnet die Dashboard-Statistiken danach alle 15 Minuten im Hintergrund vor. Im Test blieben Admin-Konto, geändertes Passwort und ein zusätzlich angelegter Benutzer nach dem Update erhalten, die Anmeldung mit dem alten Startpasswort wurde weiterhin abgelehnt.
Neu ist die optionale Verschlüsselung der gespeicherten Zugangsdaten (IMAP-Passwörter, M365-Client-Secrets, OAuth-Token). Ohne Schlüssel bleibt alles wie bisher, das Protokoll meldet dann eine Warnung zu Security:CredentialEncryptionKey. Erzeugen Sie bei Bedarf einen Schlüssel mit openssl rand -base64 32 und tragen Sie ihn als Security__CredentialEncryptionKey ein; vorhandene Zugangsdaten verschlüsselt ein Hintergrunddienst einmalig. Ohne diesen Schlüssel sind verschlüsselte Zugangsdaten nach einem Restore nicht mehr lesbar und müssen neu eingegeben werden.
Verifizieren: Führen Sie eine manuelle Sicherung der Ordner data und postgres sowie der Compose-Datei durch. Prüfen Sie anschließend, ob die Sicherung im Ziel lesbar ist, und dokumentieren Sie den Zeitpunkt in Ihrem Archivierungsprotokoll.
Troubleshooting / Typische Fehler
- App startet nicht: Vermutlich ist
Authentication__Enabled=falsegesetzt; die Anwendung bricht dann mit Fehlermeldung ab. - „Invalid Session“ nach Neuerstellen des Containers: Der Ordner für
/app/DataProtection-Keysfehlt oder ist nicht eingebunden. Ordnerpfad und Mount müssen stimmen. - Datenbankverbindung schlägt fehl:
POSTGRES_PASSWORDund das Passwort im Connection String müssen identisch sein. Achten Sie auf das abschließende Semikolon im Connection String. - Seite liefert „Bad Request – Invalid Hostname“: Der aufgerufene Hostname fehlt in
AllowedHosts. Ergänzen Sie ihn und erstellen Sie das Projekt neu. - IMAP-Sync bleibt hängen: Erhöhen Sie
Npgsql__CommandTimeoutund prüfen Sie, ob das Quellpostfach sehr viele große Anhänge enthält. Ein erster Sync kann bei großen Postfächern Stunden dauern. - Login über HTTPS funktioniert nicht: Prüfen Sie, ob der Reverse-Proxy-Eintrag per HTTP auf Port 5065 zeigt und ob
Authentication__CookieSameSite=Laxgesetzt ist.
Häufige Fragen
Welches Docker-Image ist das richtige?
Das offizielle Image lautet s1t5/mailarchiver. Die in manchen älteren Referenzen genannten blogtrack/ma-srv-Quellen sind öffentlich nicht nachweisbar; verwenden Sie sie nicht.
Ist Mail Archiver automatisch GoBD-zertifiziert?
Nein. Die GoBD sind Grundsätze der deutschen Finanzverwaltung, keine Produktzertifizierung. Mail Archiver liefert technische Voraussetzungen (Löschsperre, Protokolle, Export, Aufbewahrungsregeln); die Prozesse dokumentieren, prüfen und Backups nachweisen müssen Sie selbst. Klären Sie Anforderungen im Zweifel mit Ihrer Steuerberatung.
Brauche ich Portainer?
Nein. Der Container Manager in DSM 7.2 reicht; Portainer ist nur für zentrale Verwaltung mehrerer Stacks eine Option.
Kann ich bestehende MBOX-Dateien importieren?
Ja. Kleinere Dateien laden Sie direkt über die Web-Oberfläche hoch. Für große Archive binden Sie den Ordner /volume1/docker/mail-archiver/import als /data/import ein, geben ihn mit LocalImport__AllowedPaths__0=/data/import frei und starten den Import per docker exec über die Kommandozeile. Details stehen im CLI-Import-Leitfaden der offiziellen Dokumentation.
Wie sichere ich das Archiv regelmäßig?
Sichern Sie bei gestopptem Projekt den Postgres-Ordner, den DataProtection-Keys-Ordner und die Compose-Datei. Ein Datenbank-Dump mit pg_dump ist eine gute Ergänzung, ersetzt aber nicht die Sicherung der übrigen Dateien.
Fazit
Mail Archiver auf der Synology ist eine pragmatische Wahl für KMU, die ihre E-Mail-Archivierung selbst betreiben wollen. App-Container mit PostgreSQL, dauerhafte DataProtection-Keys, aktive Löschsperre und HTTPS über den DSM-Reverse-Proxy schaffen die technischen Voraussetzungen; revisionssicher wird es erst mit dokumentierten Zugriffsrechten, Export-Tests und nachweisbarem Backup. Für digitale Signaturen ergänzt DocuSeal auf dem Synology NAS installieren: digitale Signaturen selbst hosten.
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
- Mail Archiver – Dokumentation
- Mail Archiver 2610.1 – Release Notes
- s1t5/mail-archiver – Setup-Dokumentation
- s1t5/mail-archiver – Backup und Restore
- s1t5/mail-archiver – Retention Policies
- s1t5/mail-archiver – Reverse Proxy Configuration
- Marius Hosting – How to install Mail Archiver on your Synology NAS


