4f93b9667de8c587c6e37f2e622b1282cb082b8b
- archivmail import: EML + MBOX, --file/--dir/--recursive/--dry-run/--json - archivmail export: EML + MBOX, Filter --from/--to/--date-from/--date-to/--query/--force/--json - archivmail help / version - MBOX Parser (SplitMbox) in pkg/mailparser/mbox.go - Subcommand-Router in main.go ohne externe Abhängigkeit Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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
Description
Languages
Go
54.6%
TypeScript
40.6%
Shell
3.8%
C++
0.5%
CSS
0.2%
Other
0.2%