diff --git a/app/plugins/builtins/mail/services.py b/app/plugins/builtins/mail/services.py index 114ca1c..06ae2ac 100644 --- a/app/plugins/builtins/mail/services.py +++ b/app/plugins/builtins/mail/services.py @@ -636,8 +636,9 @@ async def imap_sync_folder( ).scalar_one_or_none() if existing_mail: + # Don't touch soft-deleted mails — they're being deleted via sync queue if existing_mail.deleted_at is not None: - existing_mail.deleted_at = None + continue continue # Fetch and parse the email @@ -1124,10 +1125,9 @@ async def imap_sync_account( ).scalar_one_or_none() if existing_mail: - # Restore soft-deleted mails if they still exist on IMAP + # Don't touch soft-deleted mails — they're being deleted via sync queue if existing_mail.deleted_at is not None: - existing_mail.deleted_at = None - logger.info("imap_sync: restored soft-deleted mail %s (still on IMAP)", existing_mail.id) + continue # Track folder moves: update folder_id and imap_uid if the # mail now appears in a different IMAP folder. if existing_mail.folder_id != folder.id: