docs: vollständige README, PROJ-2 Web-Upload, PROJ-19 Mailpiler-Migration
README.md:
- Vollständige Dokumentation aller implementierten Funktionen
- Konfigurationsreferenz, Installation, Systemd, REST-API-Übersicht
- In-Progress-Features klar gekennzeichnet
PROJ-2 (EML/MBOX Web-Upload):
- POST /api/admin/upload – Multipart-Upload mit Hintergrund-Job
- GET /api/admin/upload/{jobID}/progress – Polling
- Admin-Tab "Import" mit Drag-and-Drop, Fortschrittsbalken, Abschlussbericht
PROJ-19 (Mailpiler Migration):
- archivmail import-piler mit Methoden: pilerexport | direct | auto
- Direct: AES-256-CBC + zlib mit defensiven Fallbacks
- pilerexport: Wrapper um mailpilers Export-Tool
Status-Updates: PROJ-3, PROJ-4, PROJ-6, PROJ-7, PROJ-10, PROJ-11 → Deployed
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+8
-7
@@ -14,15 +14,15 @@
|
||||
|----|---------|--------|------|---------|
|
||||
| PROJ-1 | Nutzer-Authentifizierung & Rollen (User/Admin) | Deployed | [PROJ-1](PROJ-1-authentifizierung-und-rollen.md) | 2026-03-12 |
|
||||
| PROJ-2 | E-Mail-Import: EML/MBOX Upload | In Progress | [PROJ-2](PROJ-2-import-eml-mbox.md) | 2026-03-12 |
|
||||
| PROJ-3 | E-Mail-Import: IMAP-Verbindung | In Progress | [PROJ-3](PROJ-3-import-imap.md) | 2026-03-12 |
|
||||
| PROJ-4 | E-Mail-Import: SMTP-Eingang via BCC (primär) | In Progress | [PROJ-4](PROJ-4-import-smtp.md) | 2026-03-12 |
|
||||
| PROJ-3 | E-Mail-Import: IMAP-Verbindung | Deployed | [PROJ-3](PROJ-3-import-imap.md) | 2026-03-12 |
|
||||
| PROJ-4 | E-Mail-Import: SMTP-Eingang via BCC (primär) | Deployed | [PROJ-4](PROJ-4-import-smtp.md) | 2026-03-12 |
|
||||
| PROJ-5 | E-Mail-Speicherung & Volltext-Indexierung | Deployed | [PROJ-5](PROJ-5-speicherung-und-indexierung.md) | 2026-03-12 |
|
||||
| PROJ-6 | Volltext-Suche & Filterung | In Review | [PROJ-6](PROJ-6-volltext-suche.md) | 2026-03-12 |
|
||||
| PROJ-7 | E-Mail-Ansicht (Lesen & Anhänge) | In Progress | [PROJ-7](PROJ-7-email-ansicht.md) | 2026-03-12 |
|
||||
| PROJ-6 | Volltext-Suche & Filterung | Deployed | [PROJ-6](PROJ-6-volltext-suche.md) | 2026-03-12 |
|
||||
| PROJ-7 | E-Mail-Ansicht (Lesen & Anhänge) | Deployed | [PROJ-7](PROJ-7-email-ansicht.md) | 2026-03-12 |
|
||||
| PROJ-8 | Automatischer IMAP-Sync (Cron-Job) | Deployed | [PROJ-8](PROJ-8-imap-auto-sync.md) | 2026-03-12 |
|
||||
| PROJ-9 | Ordner- & Label-Verwaltung | In Progress | [PROJ-9](PROJ-9-ordner-und-labels.md) | 2026-03-12 |
|
||||
| PROJ-10 | Admin-Bereich: Nutzer- & Postfachverwaltung | In Progress | [PROJ-10](PROJ-10-admin-bereich.md) | 2026-03-12 |
|
||||
| PROJ-11 | Audit-Log & Compliance-Berichte | In Progress | [PROJ-11](PROJ-11-audit-log.md) | 2026-03-12 |
|
||||
| PROJ-10 | Admin-Bereich: Nutzer- & Postfachverwaltung | Deployed | [PROJ-10](PROJ-10-admin-bereich.md) | 2026-03-12 |
|
||||
| PROJ-11 | Audit-Log & Compliance-Berichte | Deployed | [PROJ-11](PROJ-11-audit-log.md) | 2026-03-12 |
|
||||
| PROJ-12 | E-Mail-Export (EML/PDF) | Deployed | [PROJ-12](PROJ-12-export.md) | 2026-03-12 |
|
||||
| PROJ-13 | REST API für externe CRM-Anbindung | In Progress | [PROJ-13](PROJ-13-rest-api-crm.md) | 2026-03-13 |
|
||||
| PROJ-14 | E-Mail-Import: POP3-Verbindung | In Progress | [PROJ-14](PROJ-14-import-pop3.md) | 2026-03-13 |
|
||||
@@ -31,7 +31,8 @@
|
||||
|
||||
| PROJ-17 | Admin Dashboard – Systemauslastung & Archiv-Übersicht | Deployed | [PROJ-17](PROJ-17-system-dashboard.md) | 2026-03-14 |
|
||||
| PROJ-18 | E-Mail Integritätsprüfung | Deployed | [PROJ-18](PROJ-18-integritaetspruefung.md) | 2026-03-14 |
|
||||
| PROJ-19 | Mailpiler → archivmail Migrationstool | Deployed | [PROJ-19](PROJ-19-import-piler.md) | 2026-03-17 |
|
||||
|
||||
<!-- Add features above this line -->
|
||||
|
||||
## Next Available ID: PROJ-19
|
||||
## Next Available ID: PROJ-20
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# PROJ-10: Admin-Bereich: Nutzer- & Postfachverwaltung
|
||||
|
||||
## Status: In Progress
|
||||
## Status: Deployed
|
||||
**Created:** 2026-03-12
|
||||
**Last Updated:** 2026-03-12
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# PROJ-11: Audit-Log & Compliance-Berichte
|
||||
|
||||
## Status: In Progress
|
||||
## Status: Deployed
|
||||
**Created:** 2026-03-12
|
||||
**Last Updated:** 2026-03-13
|
||||
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
# PROJ-19: Mailpiler → archivmail Migrationstool
|
||||
|
||||
## Status: Deployed
|
||||
**Created:** 2026-03-17
|
||||
**Last Updated:** 2026-03-17
|
||||
|
||||
## Dependencies
|
||||
- Requires: PROJ-5 (Speicherung & Indexierung)
|
||||
- Requires: PROJ-15 (CLI Import)
|
||||
|
||||
## User Stories
|
||||
- Als Admin möchte ich alle E-Mails aus einem bestehenden mailpiler-Archiv nach archivmail migrieren, damit ich die Plattform wechseln kann ohne E-Mails zu verlieren.
|
||||
- Als Admin möchte ich den Fortschritt der Migration in Echtzeit sehen.
|
||||
- Als Admin möchte ich Duplikate automatisch überspringen, damit bei Teil-Migrationen oder Wiederholungsläufen keine Daten doppelt archiviert werden.
|
||||
|
||||
## Acceptance Criteria
|
||||
- [x] Methode 1: `pilerexport`-Wrapper – ruft das mailpiler-eigene Export-Tool auf, importiert die EML-Dateien
|
||||
- [x] Methode 2: Direkt – liest `.m`-Dateien aus dem mailpiler Store-Verzeichnis, entschlüsselt (AES-256-CBC) und dekomprimiert (zlib)
|
||||
- [x] Automatische Methodenwahl (`--method auto`): pilerexport → direct
|
||||
- [x] Fortschrittsanzeige (importiert / übersprungen / Fehler)
|
||||
- [x] `--dry-run` Modus
|
||||
- [x] JSON-Ausgabe für Skripting
|
||||
- [x] Datums-Filter (`--date-from`, `--date-to`) für pilerexport-Methode
|
||||
|
||||
## Aufruf
|
||||
|
||||
```bash
|
||||
# Auf dem mailpiler-Server (pilerexport-Methode, empfohlen):
|
||||
archivmail import-piler \
|
||||
--config /etc/archivmail/config.yml \
|
||||
--method pilerexport
|
||||
|
||||
# Mit Datumsfilter:
|
||||
archivmail import-piler \
|
||||
--config /etc/archivmail/config.yml \
|
||||
--date-from 2020-01-01 \
|
||||
--date-to 2024-12-31
|
||||
|
||||
# Direkte Methode (kein mailpiler nötig, kein MySQL nötig):
|
||||
archivmail import-piler \
|
||||
--config /etc/archivmail/config.yml \
|
||||
--method direct \
|
||||
--store-dir /var/piler/store \
|
||||
--key-file /var/piler/store/piler.key
|
||||
|
||||
# Nur Simulation (kein Speichern):
|
||||
archivmail import-piler --dry-run
|
||||
|
||||
# JSON-Ausgabe für Skripte:
|
||||
archivmail import-piler --json
|
||||
```
|
||||
|
||||
## Technische Details
|
||||
|
||||
| Aspekt | Detail |
|
||||
|--------|--------|
|
||||
| pilerexport-Ausgabe | EML-Dateien im temp-Verzeichnis, jede `.eml` = eine E-Mail |
|
||||
| mailpiler-Dateiformat | `{storedir}/**/{piler_id}.m` – AES-256-CBC verschlüsselt, zlib komprimiert |
|
||||
| Entschlüsselung | Erste 16 Bytes = IV, Rest = CBC-Ciphertext, Key aus `piler.key` (32 Bytes) |
|
||||
| Dekomprimierung | zlib (ohne AES falls kein Key vorhanden) |
|
||||
| Duplikat-Erkennung | Storage.Save() + IsIndexed() – identische Inhalts-Hashes werden übersprungen |
|
||||
| Keine ext. Abhängigkeiten | Nur Go stdlib (compress/zlib, crypto/aes) + vorhandene archivmail-Pakete |
|
||||
@@ -1,8 +1,8 @@
|
||||
# PROJ-3: E-Mail-Import: IMAP-Verbindung
|
||||
|
||||
## Status: In Review
|
||||
## Status: Deployed
|
||||
**Created:** 2026-03-12
|
||||
**Last Updated:** 2026-03-14
|
||||
**Last Updated:** 2026-03-17
|
||||
|
||||
## Dependencies
|
||||
- Requires: PROJ-1 (Authentifizierung) – nur Admins verwalten IMAP-Verbindungen
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# PROJ-4: E-Mail-Import: SMTP-Eingang (primär via BCC)
|
||||
|
||||
## Status: In Progress
|
||||
## Status: Deployed
|
||||
**Created:** 2026-03-12
|
||||
**Last Updated:** 2026-03-12
|
||||
**Last Updated:** 2026-03-17
|
||||
|
||||
## Hinweis
|
||||
**Dies ist der primäre Eingangsweg.** archivmail enthält einen eingebetteten SMTP-Daemon, der **ausschließlich E-Mails empfängt** – kein Versand, keine Weiterleitung, kein MTA. Postfix (oder ein anderer Mailserver) wird per BCC-Mapping oder Always-BCC-Regel so konfiguriert, dass er eine Kopie jeder E-Mail an archivmails SMTP-Daemon zustellt.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# PROJ-6: Volltext-Suche & Filterung
|
||||
|
||||
## Status: In Review
|
||||
## Status: Deployed
|
||||
**Created:** 2026-03-12
|
||||
**Last Updated:** 2026-03-17
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# PROJ-7: E-Mail-Ansicht (Lesen & Anhänge)
|
||||
|
||||
## Status: In Progress
|
||||
## Status: Deployed
|
||||
**Created:** 2026-03-12
|
||||
**Last Updated:** 2026-03-12
|
||||
**Last Updated:** 2026-03-17
|
||||
|
||||
## Dependencies
|
||||
- Requires: PROJ-1 (Authentifizierung) – nur eingeloggte Nutzer mit Zugriffsrecht
|
||||
|
||||
Reference in New Issue
Block a user