From 6aa515c658cae9a42d82d9ede0cae8b75bc50f06 Mon Sep 17 00:00:00 2001 From: Martin Richtarsky Date: Mon, 30 Sep 2024 07:06:47 +0000 Subject: [PATCH] email: MOVE: check that the destination exists (#7807) --- src/paperless_mail/mail.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/paperless_mail/mail.py b/src/paperless_mail/mail.py index b52a2ebe4..bdaa76672 100644 --- a/src/paperless_mail/mail.py +++ b/src/paperless_mail/mail.py @@ -567,13 +567,17 @@ class MailAccountHandler(LoggingMixin): rule: MailRule, supports_gmail_labels: bool, ): - self.log.debug(f"Rule {rule}: Selecting folder {rule.folder}") - + folders = [rule.folder] + # In case of MOVE, make sure also the destination exists + if rule.action == MailRule.MailAction.MOVE: + folders.insert(0, rule.action_parameter) try: - M.folder.set(rule.folder) + for folder in folders: + self.log.debug(f"Rule {rule}: Selecting folder {folder}") + M.folder.set(folder) except MailboxFolderSelectError as err: self.log.error( - f"Unable to access folder {rule.folder}, attempting folder listing", + f"Unable to access folder {folder}, attempting folder listing", ) try: for folder_info in M.folder.list(): @@ -585,7 +589,7 @@ class MailAccountHandler(LoggingMixin): ) raise MailError( - f"Rule {rule}: Folder {rule.folder} " + f"Rule {rule}: Folder {folder} " f"does not exist in account {rule.account}", ) from err