Mail-Archiver | Eine Alternative zu MailStore Server

Für gewerbliche Nutzer ist die E-Mail-Archivierung in Deutschland nicht optional, sondern eine gesetzliche Pflicht. Geschäftsrelevante E-Mails – etwa Rechnungen, Angebote, Auftragsbestätigungen oder steuerlich relevante Korrespondenz – gelten als Handels- bzw. Geschäftsbriefe und müssen gemäß GoBD sowie Handels- und Steuerrecht revisionssicher archiviert werden. Eine einfache Ablage im Postfach reicht dabei nicht aus, da E-Mails unveränderbar, vollständig und nachvollziehbar aufbewahrt werden müssen. Verstöße können bei Betriebsprüfungen zu erheblichen Problemen und im schlimmsten Fall zu steuerlichen Nachteilen führen.

Übersicht der Systeme

Es gibt eine Vielzahl kommerzieller Anbieter für die (rechtssichere) Archivierung von Mails, bspw.:

  • MailStore Server / SPE
  • Veritas Enterprise Vault
  • Barracuda Message Archiver

MailStore Server setzen wir auch bei unseren Kunden ein. Die Software arbeitet seit Jahren zuverlässig, hat aber auch ihren Preis. Zudem setzt diese Windows als System voraus.

Mail-Archiver - eine Alternative

Mail-Archiver kann als Docker Container betrieben werden. Das System verwendet .NET und PostgreSQL und ist relativ schlank. Somit kann es bspw. auch auf einer NAS mit Docker-Unterstützung mitlaufen. Die Bedienung erfolgt ausschließlich über den Browser (WebGUI) und ist zudem responsive.  

Screenshots

Die folgenden Screenshots stammen direkt von mail-archiver.org:

Dashboard

© mail-archiver.org

Archiv

© mail-archiver.org

Detailansicht

© mail-archiver.org

Was kann Mail-Archiver

Postfachprofile

Archiviert werden können:

  • IMAP-Postfächer
  • Microsoft 365 Postfächer (Graph-API)
  • manueller Import von Mails (aus alten Archiven, etc.)

User-Verwaltung

Verfügbare Nutzerrollen:

  • Admin
  • User (ohne Selbstverwaltung)
  • User (mit Selbstverwaltung)

Die Option Selbstverwaltung ermöglicht es Usern, selbst Postfächer zur Archivierung einzurichten. Andernfalls muss der Admin Archivierungsprofile einrichten und diese den Usern zur Verfügung stellen.

Der Admin hat grundsätzlich auf alle Postfächer und deren Inhalte Zugriff.

Protokollierung

Ein „K.O.-Faktor“ kommerzieller Archivierungslösungen ist die Auditierbarkeit von Vorgängen innerhalb des Archivs. Also wer hat wann was gemacht (Mail aus dem Archiv gelöscht, Logins, Zugriff auf das Archiv, usw.). Mail-Archiver protokolliert auch diese Zugriffe sehr exakt. 

Löschung von Mails (Postfach & Archiv)

Bei der Einrichtung zu archivierender Postfächer kann eingestellt werden, ob:

  • Mails aus dem Postfach älter X Tage nach der Archivierung gelöscht werden sollen
  • Mails aus dem lokalen Archiv selbst nach X Tagen gelöscht werden sollen

Bei der Löschung aus dem lokalen Archiv sollte man die gesetzlichen Fristen im Hinterkopf behalten. Für die Postfächer selbst bietet die automatische Löschung von Mails eine Möglichkeit, diese auf Dauer schlank zu halten.

Anbindung via OIDC-Implementierung

In Mail-Archiver ist OIDC implementiert, was bspw. die Anbindung via Microsoft Entra ID oder SSO ermöglicht.

Ressourcen & Setup

Für die reine Hintergrundarchivierung werden kaum Ressourcen benötigt. Die Suche nach Mails oder Anhängen lastet den Docker-Host dann schon eher aus. Möchte man größere Postfächer auf lange Zeit archivieren, sollte ausreichend Plattenplatz zur Verfügung stehen. 

docker-compose.yml

Innerhalb der compose sollten folgende Werte den eigenen Bedürfnissen angepasst werden:

  • admin Username & Passwort
  • Postgre DB User & Passwort
  • Timezone
  • MailSync_IntervalMinutes= X ;dieser Wert sollte bei gewissen Anbietern – bspw. T-Online oder GMX – nicht zu kurz bzw. knapp gesetzt werden, sondern können Verbindungen ggf. geblockt werden
  • Port des Containers

Es empfiehlt sich der Einsatz eines Proxy mit TLS-Terminierung. Wird OIDC/SSO verwendet, sollte man die Hinweise für den Proxy beachten.

📋
docker-compose.yml
services:
  mailarchive-app:
    image: s1t5/mailarchiver:latest
    restart: always
    environment:
      # Database Connection
      - ConnectionStrings__DefaultConnection=Host=postgres;Database=MailArchiver;Username=mailuser;Password=SuperSecurePostGRESPassword;

      # Authentication Settings
      - Authentication__Username=admin
      - Authentication__Password=TheSuperS3cureAdm1nPassword

      # TimeZone Settings
      - TimeZone__DisplayTimeZoneId=Europe/Berlin

      # MailSync
      - MailSync__IntervalMinutes=5
      - MailSync__TimeoutMinutes=60
      - MailSync__ConnectionTimeoutSeconds=180
      - MailSync__CommandTimeoutSeconds=300

      # Datenschutz
      - View__DefaultToPlainText=true
      - View__BlockExternalResources=true

      # Uploads
      - Upload__MaxFileSizeGB=10

      # DB
      - Npgsql__CommandTimeout=900

      # Timezone
      - TimeZone__DisplayTimeZoneId=Europe/Berlin

      # Logging
      - Logging__LogLevel__Default=Information
      - Logging__LogLevel__Microsoft_AspNetCore=Warning

      # Security
      - AllowedHosts=mailarchiv.peetzcom.cloud
    ports:
      - "5000:5000"
    networks:
      - postgres
    volumes:
      - /data/docker/mailarchiver/data-protection-keys:/app/DataProtection-Keys
    depends_on:
      postgres:
        condition: service_healthy

  postgres:
    image: postgres:17-alpine
    restart: always
    environment:
      POSTGRES_DB: MailArchiver
      POSTGRES_USER: mailuser
      POSTGRES_PASSWORD: SuperSecurePostGRESPassword
    volumes:
      - /data/docker/mailarchiver/postgres-data:/var/lib/postgresql/data
    networks:
      - postgres
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U mailuser -d MailArchiver"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 10s

networks:
  postgres:

Weiterführende Links

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen
WordPress Cookie Hinweis von Real Cookie Banner