From e221fcf63fc08842f68541dc914bd9291b4d54d6 Mon Sep 17 00:00:00 2001 From: sysops Date: Tue, 7 Jul 2026 01:42:02 +0200 Subject: [PATCH] docs(PROJ-70): Message-ID-Erhalt als Acceptance Criterion festhalten MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wichtig für PROJ-32-Duplikatserkennung. Bereits erfüllt durch 1:1-Weitergabe der rohen RFC-2822-Bytes an AppendToMailbox() ohne Reparse. Co-Authored-By: Claude Sonnet 5 --- features/PROJ-70-imap-rueckholung-self-service.md | 9 +++++++++ 1 file changed, 9 insertions(+) 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