# 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 1. `simpleIMAP` durch `emersion/go-imap/v2` ersetzen. - Betrifft `backend/04-imap-source.go` und `backend/05-imap-target.go`. - Ziel: IMAP UTF-7 korrekt dekodieren, `FETCH` robust parsen, Flags korrekt normalisieren, APPEND RFC-konform senden. - Detailbrief: `go-imap-migration.md`. 2. IMAP UTF-7 Ordnernamen korrekt behandeln. - Aktuelles Risiko: Rollen-Erkennung fuer Papierkorb/Geloescht/Gesendet scheitert bei Alt-Providern. - Folge: Zielordner werden doppelt angelegt. 3. `\Recent` niemals per APPEND setzen. - `\Recent` ist serververwaltet und darf nicht vom Client appended werden. 4. INTERNALDATE robust parsen. - Ein- und zweistellige Tage muessen funktionieren. - Bei Parse-Fehlern nicht still auf `time.Now()` fallen, sondern melden oder kontrolliert degradieren. 5. FETCH-Reihenfolge unabhaengig parsen. - FLAGS, INTERNALDATE und BODY koennen serverseitig in anderer Reihenfolge kommen. 6. Ordnerweise Streaming statt kompletter Ordner im RAM. - Ziel: grosse Postfaecher nicht in den Speicher laden. 7. POP3-Fallback verdrahten. - `src_proto=pop3` darf nicht weiter in IMAP laufen. ## P1 - Sicherheit und Rollen 1. SMTP-Header-Injection verhindern. - Erledigt: Betreff, From-Header und To-Header werden auf CR/LF geprueft. 2. Schreibende Viewer-Aktionen rollenbegrenzen. - Erledigt: `/mail/send` und `/view/manual-copy` sind 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. ## P2 - Lose Enden 1. `/view/forward` und `ForwardMessage()` entfernen oder sauber in den neuen Forward-Flow integrieren. 2. Sync-Dropdowns entweder implementieren oder sichtbar als "noch nicht aktiv" kennzeichnen. 3. Stale `TODO Codex`-Kommentare an fertigen Handlern bereinigen. 4. 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.