Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Synology / NAS 14.06.2026 · 9 min Lesezeit

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.

Mail Archiver Installation auf Synology NAS mit Docker für GoBD-konforme E-Mail-Archivierung, revisionssichere Ablage und zentrale Verwaltung geschäftlicher E-Mails

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:

KomponenteEmpfehlung
Synology NAS / DSMDSM 7.2, Container Manager (Docker / Compose)
Speicherausreichend Platz für Postgres-Daten und Attachments; SSD-Volume für die Datenbank bevorzugen
Mail-QuelleIMAP-fähiges Postfach oder Microsoft 365 Tenant
ZugriffDomain + SSL-Zertifikat für die Reverse-Proxy-Einrichtung
WissenGrundverstä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.

  1. data → später gemountet auf /app/DataProtection-Keys (zwingend erforderlich)
  2. postgres → später gemountet auf /var/lib/postgresql/data
  3. import (optional) → später gemountet auf /data/import fü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: bridge

Wichtige 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:

  1. Quellprotokoll: HTTPS
  2. Hostname: archiv.deine-domain.de
  3. Port: 443
  4. Zielprotokoll: HTTP
  5. Zielhostname: localhost oder die interne NAS-IP
  6. 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:

  1. /volume1/docker/mail-archiver/postgres – die PostgreSQL-Datenbank
  2. /volume1/docker/mail-archiver/data – die DataProtection-Keys
  3. compose.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

  1. App startet nicht: Prüfe, ob du versehentlich Authentication__Enabled=false gesetzt hast. Diese Variable wird aktuell ignoriert bzw. führt bei false zum Abbruch.
  2. „Invalid Session“ nach Neuerstellen des Containers: Das Volume /app/DataProtection-Keys fehlt oder wurde nicht persistiert. Ordnerpfad und Mount müssen stimmen.
  3. Datenbankverbindung schlägt fehl: POSTGRES_PASSWORD und das Passwort im Connection String müssen identisch sein. Achte auf das abschließende Semikolon im Connection String.
  4. IMAP-Sync bleibt hängen: Erhöhe Npgsql__CommandTimeout und prüfe, ob das Quellpostfach sehr viele große Anhänge enthält. Ein initialer Sync kann bei großen Postfächern Stunden dauern.
  5. Login über HTTPS funktioniert nicht: Vergewissere dich, dass ASPNETCORE_FORWARDEDHEADERS_ENABLED=true gesetzt 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

  1. Exchange Online: SPF, DKIM und DMARC für die eigene Domäne
  2. DocuSeal auf dem Synology NAS installieren: digitale Signaturen selbst hosten
  3. Container Manager mit Docker Compose auf dem Synology NAS
  4. s1t5/mail-archiver – GitHub-Repository
  5. s1t5/mail-archiver – Setup-Dokumentation
  6. s1t5/mail-archiver – Backup und Restore
  7. s1t5/mail-archiver – Retention Policies
  8. Marius Hosting – How to install Mail Archiver on your Synology NAS