sysops 850290b5ef feat(PROJ-12): E-Mail Export EML/PDF/ZIP
- GET /api/export/pdf/{id}: PDF-Generierung (stdlib, kein ext. Paket)
- POST /api/export/zip: Streaming-ZIP mit manifest.csv, Anhänge optional
- Max. 500 Mails pro Export, Zugriffscheck per Rolle
- Audit-Log für jeden Export
- Frontend: PDF-Button in Mail-Ansicht
- Frontend: Checkboxen + ZIP-Export-Dialog in Suchergebnissen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 19:49:00 +01:00

archivmail

Selbst gehostetes Mail-Archiv-System für Unternehmen. E-Mails werden aus IMAP, SMTP und EML/MBOX-Quellen importiert, volltext-indexiert (Xapian) und verschlüsselt archiviert.

Features

  • Import via IMAP, SMTP-Journaling und EML/MBOX-Upload
  • Volltext-Suche über Xapian
  • AES-256-GCM-Verschlüsselung der archivierten Mails
  • Anhang-Deduplizierung
  • Rollenmodell: user, auditor, admin
  • Audit-Log (PostgreSQL + Append-only Logdatei)

Installation

# Systembenutzer anlegen
useradd -r -s /sbin/nologin archivmail

# Verzeichnisse anlegen
mkdir -p /etc/archivmail
mkdir -p /var/archivmail/store
mkdir -p /var/archivmail/astore
mkdir -p /var/lib/archivmail/xapian
mkdir -p /var/log/archivmail

# Berechtigungen setzen
chown -R archivmail:archivmail /var/archivmail /var/lib/archivmail /var/log/archivmail

# Encryption Key generieren
openssl rand -base64 32 > /etc/archivmail/keyfile
chmod 400 /etc/archivmail/keyfile
chown archivmail:archivmail /etc/archivmail/keyfile

# Konfiguration
cp config.example.yml /etc/archivmail/config.yml
# config.yml anpassen (Datenbank, SMTP-Port, etc.)

# Systemd-Service aktivieren
cp archivmail.service /lib/systemd/system/
systemctl daemon-reload
systemctl enable --now archivmail

Verzeichnisstruktur

/etc/archivmail/
├── config.yml              # Hauptkonfiguration
└── keyfile                 # AES-256-GCM Key (chmod 400)

/var/archivmail/
├── store/                  # Mailkörper (.m, verschlüsselt)
│   └── <server_id>/<customer_id>/<hash>/xxxxx.m
└── astore/                 # Anhänge dedupliziert (verschlüsselt)
    └── <hash>

/var/lib/archivmail/
└── xapian/                 # Volltext-Index

/var/log/archivmail/
└── audit.log               # Audit-Log (JSON Lines, append-only)

Standard-Zugangsdaten

Wichtig: Passwörter nach dem ersten Login ändern!

Benutzer Passwort Rolle
admin@archivmail archivmailrockz Admin (Konfiguration, Nutzerverwaltung)
auditor@archivmail archivmailrockz Auditor (alle E-Mails + Audit-Log)

Rollenübersicht

Rolle E-Mails (eigene) E-Mails (alle) Audit-Log Konfiguration
user
auditor
admin

Technologie

Komponente Technologie
Backend Go
Datenbank PostgreSQL
Volltext-Index Xapian
Verschlüsselung AES-256-GCM
Webserver eingebettet (Go net/http)

Lizenz

Proprietär

S
Description
No description provided
Readme 1.6 MiB
Languages
Go 54.6%
TypeScript 40.6%
Shell 3.8%
C++ 0.5%
CSS 0.2%
Other 0.2%