Spam-Anhänge: klarer Fehler statt Junk-Ordner-Raterei (Pentest R124)

Nachtrag zum R124-Fix: statt bei nicht auffindbarem Junk-Ordner still
auf INBOX bzw. den geratenen String 'Junk' zurückzufallen, wird jetzt
ein klarer Fehler zurückgegeben – sonst könnte im Randfall (Junk-Ordner
serverseitig entfernt/umbenannt) doch wieder die falsche UID aus dem
falschen Ordner gezogen werden.

- 4 Controller-Funktionen (downloadAttachment, saveAttachmentTo,
  saveAttachmentAsInvoice, saveAttachmentAsContractDocument):
  404 "Postfach hat keinen Spam-/Junk-Ordner (mehr)".
- 2 Service-Funktionen (moveEmailToTrash, restoreEmailFromTrash):
  klare error-Message im TrashOperationResult.

Kein undefined mehr Richtung IMAP-Lib.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-07-27 16:30:49 +02:00
co-authored by Claude Opus 4.7
parent 0a0cbe0e53
commit 627cae9b3b
3 changed files with 64 additions and 6 deletions
+10 -2
View File
@@ -824,7 +824,11 @@ export async function moveEmailToTrash(id: number): Promise<TrashOperationResult
if (email.folder === 'SENT') {
sourceFolder = 'Sent';
} else if (email.folder === 'SPAM') {
sourceFolder = (await findJunkFolderPath(credentials)) || 'Junk';
const junkPath = await findJunkFolderPath(credentials);
if (!junkPath) {
return { success: false, error: 'Spam-/Junk-Ordner nicht gefunden kann nicht in den Papierkorb verschieben' };
}
sourceFolder = junkPath;
} else {
sourceFolder = 'INBOX';
}
@@ -899,7 +903,11 @@ export async function restoreEmailFromTrash(id: number): Promise<TrashOperationR
if (email.folder === 'SENT') {
targetFolder = 'Sent';
} else if (email.folder === 'SPAM') {
targetFolder = (await findJunkFolderPath(credentials)) || 'Junk';
const junkPath = await findJunkFolderPath(credentials);
if (!junkPath) {
return { success: false, error: 'Spam-/Junk-Ordner nicht gefunden kann nicht wiederherstellen' };
}
targetFolder = junkPath;
} else {
targetFolder = 'INBOX';
}