diff --git a/features/PROJ-70-imap-rueckholung-self-service.md b/features/PROJ-70-imap-rueckholung-self-service.md index 556beed..593c04e 100644 --- a/features/PROJ-70-imap-rueckholung-self-service.md +++ b/features/PROJ-70-imap-rueckholung-self-service.md @@ -68,6 +68,15 @@ Mail- und IMAP-Handler dupliziert): - [ ] Tenant-Isolation-Test: User A kann Mail von User B nicht in sein (A's) Postfach zurückholen, auch nicht bei manipulierter Mail-ID im Request. +- [x] **Message-ID bleibt erhalten.** Die zurückgeholte Mail muss exakt + dieselbe `Message-ID` (und alle anderen Header) wie die archivierte + Mail behalten — wichtig für Duplikatserkennung (PROJ-32) und damit die + Mail im Postfach als "dieselbe" erkennbar bleibt, nicht als neue Mail + mit neuer ID. Umgesetzt durch 1:1-Weitergabe der rohen RFC-2822-Bytes + aus `storage.Load()` an `AppendToMailbox()` — kein Reparse/Neubau der + Mail vor dem APPEND. `mailparser.Parse()` wird nur für den + Ownership-Check (From/To/CC-Abgleich) genutzt, `raw` selbst bleibt + unangetastet (verifiziert: `internal/api/restore_handlers.go:155-182`). ## Non-Goals