From 5042ccc1fe4a2cf13a6087b90fc9fc8ff1fd2c12 Mon Sep 17 00:00:00 2001 From: Mike Varga Date: Sat, 15 Oct 2022 14:12:51 -0400 Subject: [PATCH] Enable folder function for gmail --- django_mailbox/models.py | 9 +++++---- django_mailbox/transports/gmail.py | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/django_mailbox/models.py b/django_mailbox/models.py index 73e3a35..327a30c 100644 --- a/django_mailbox/models.py +++ b/django_mailbox/models.py @@ -216,7 +216,8 @@ class Mailbox(models.Model): self.location, port=self.port if self.port else None, ssl=True, - archive=self.archive + archive=self.archive, + folder=self.folder, ) conn.connect(self.username, self.password) elif self.type == 'pop3': @@ -429,9 +430,9 @@ class Mailbox(models.Model): if not connection: return - since = self.last_polling - if since is None: - since = now() - timedelta(days=INITIAL_IMPORT_LOOKBACK_DAYS) + # since = self.last_polling + # if since is None: + since = now() - timedelta(days=INITIAL_IMPORT_LOOKBACK_DAYS) for message in connection.get_message_ro(since=since): msg = self.process_incoming_message(message) diff --git a/django_mailbox/transports/gmail.py b/django_mailbox/transports/gmail.py index 99e8189..41c8ba4 100644 --- a/django_mailbox/transports/gmail.py +++ b/django_mailbox/transports/gmail.py @@ -14,9 +14,7 @@ class GmailImapTransport(ImapTransport): self._connect_oauth(username) except (TypeError, ValueError) as e: logger.warning("Couldn't do oauth2 because %s" % e) - self.server = self.transport(self.hostname, self.port) - typ, msg = self.server.login(username, password) - self.server.select() + super().connect(username, password) def _connect_oauth(self, username): # username should be an email address that has already been authorized @@ -54,4 +52,7 @@ class GmailImapTransport(ImapTransport): ) self.server = self.transport(self.hostname, self.port) self.server.authenticate('XOAUTH2', lambda x: auth_string) - self.server.select() + if self.folder: + self.server.select(self.folder) + else: + self.server.select()