diff --git a/backup_imap/backup_imap.py b/backup_imap/backup_imap.py index e9e567f..c438563 100644 --- a/backup_imap/backup_imap.py +++ b/backup_imap/backup_imap.py @@ -61,6 +61,14 @@ class BackupImap: self._process_mailbox(self.config['mailbox']) def _process_mailbox(self, mailbox): + self._log.debug("Searching for all mailboxes in mailbox '%s'...", mailbox) + list_response, list_data = self.imap.list(f"\"{mailbox}\"", '*') + if list_response == 'OK': + for subdir in list_data: + sub_mailbox = self._parse_mailbox(subdir) + if sub_mailbox != mailbox: + self._process_mailbox(self._parse_mailbox(subdir)) + self._log.debug( "Seleting mailbox '%s'", mailbox @@ -143,13 +151,6 @@ class BackupImap: message_path, error ) - self._log.debug("Searching for all messages in mailbox '%s'...", mailbox) - list_response, list_data = self.imap.list(f"\"{mailbox}\"", '*') - if list_response == 'OK': - for subdir in list_data: - sub_mailbox = self._parse_mailbox(subdir) - if sub_mailbox != mailbox: - self._process_mailbox(self._parse_mailbox(subdir)) def _parse_mailbox(self, data): result = data