2.6 KiB
2.6 KiB
Mail-Graveyard Review-Fixes
Stand: 2026-07-14
Richtung
Der Migrationskern soll auf emersion/go-imap/v2 umgestellt werden. Der aktuell handgeschriebene simpleIMAP-Parser ist zwar schlank, aber fuer ein Beweis-Archiv zu riskant: Ordnernamen, Flags, INTERNALDATE und FETCH-Varianten muessen korrekt und serverunabhaengig verarbeitet werden.
P0 - Migrationsintegritaet
-
simpleIMAPdurchemersion/go-imap/v2ersetzen.- Betrifft
backend/04-imap-source.goundbackend/05-imap-target.go. - Ziel: IMAP UTF-7 korrekt dekodieren,
FETCHrobust parsen, Flags korrekt normalisieren, APPEND RFC-konform senden. - Detailbrief:
go-imap-migration.md.
- Betrifft
-
IMAP UTF-7 Ordnernamen korrekt behandeln.
- Aktuelles Risiko: Rollen-Erkennung fuer Papierkorb/Geloescht/Gesendet scheitert bei Alt-Providern.
- Folge: Zielordner werden doppelt angelegt.
-
\Recentniemals per APPEND setzen.\Recentist serververwaltet und darf nicht vom Client appended werden.
-
INTERNALDATE robust parsen.
- Ein- und zweistellige Tage muessen funktionieren.
- Bei Parse-Fehlern nicht still auf
time.Now()fallen, sondern melden oder kontrolliert degradieren.
-
FETCH-Reihenfolge unabhaengig parsen.
- FLAGS, INTERNALDATE und BODY koennen serverseitig in anderer Reihenfolge kommen.
-
Ordnerweise Streaming statt kompletter Ordner im RAM.
- Ziel: grosse Postfaecher nicht in den Speicher laden.
-
POP3-Fallback verdrahten.
src_proto=pop3darf nicht weiter in IMAP laufen.
P1 - Sicherheit und Rollen
-
SMTP-Header-Injection verhindern.
- Erledigt: Betreff, From-Header und To-Header werden auf CR/LF geprueft.
-
Schreibende Viewer-Aktionen rollenbegrenzen.
- Erledigt:
/mail/sendund/view/manual-copysind vorerst nur fuer Verwalter/Admins erreichbar. - Offene Produktentscheidung: Wenn normale Benutzer weiterhin eingeschraenkt weiterleiten duerfen, braucht es einen separaten, begrenzten Forward-Endpunkt statt freiem Compose-SMTP.
- Erledigt:
P2 - Lose Enden
/view/forwardundForwardMessage()entfernen oder sauber in den neuen Forward-Flow integrieren.- Sync-Dropdowns entweder implementieren oder sichtbar als "noch nicht aktiv" kennzeichnen.
- Stale
TODO Codex-Kommentare an fertigen Handlern bereinigen. - Tote Render-/Helper-Funktionen entfernen, sobald die Transfer-Workbench stabil ist.
Verifikation pro Fix-Serie
go test ./...- Live-Test gegen einen kleinen IMAP-Account mit Umlautordnern.
- Live-Test gegen ein Alt-Provider-Postfach ohne SPECIAL-USE.
- Grossordner-Test mit Speicherbeobachtung.
- Rollen-Test: User darf nur Archiv lesen; Verwalter/Admin duerfen senden, kopieren und verwalten.