[minor] select the Inbox in readonly false mode while pulling emails (#3412)

This commit is contained in:
Makarand Bauskar 2017-06-02 14:03:21 +05:30 committed by Nabin Hait
parent 37cd69b4df
commit 71d1e8c0e0

View file

@ -174,7 +174,9 @@ class EmailServer:
email_list = []
self.check_imap_uidvalidity()
self.imap.select("Inbox", readonly=True)
readonly = False if self.settings.email_sync_rule == "UNSEEN" else True
self.imap.select("Inbox", readonly=readonly)
response, message = self.imap.uid('search', None, self.settings.email_sync_rule)
if message[0]:
email_list = message[0].split()
@ -261,14 +263,16 @@ class EmailServer:
if not cint(self.settings.use_imap):
self.pop.dele(msg_num)
else:
# mark as seen
self.imap.uid('STORE', message_meta, '+FLAGS', '(\\SEEN)')
# mark as seen if email sync rule is UNSEEN (syncing only unseen mails)
if self.settings.email_sync_rule == "UNSEEN":
self.imap.uid('STORE', message_meta, '+FLAGS', '(\\SEEN)')
else:
if not cint(self.settings.use_imap):
self.pop.dele(msg_num)
else:
# mark as seen
self.imap.uid('STORE', message_meta, '+FLAGS', '(\\SEEN)')
# mark as seen if email sync rule is UNSEEN (syncing only unseen mails)
if self.settings.email_sync_rule == "UNSEEN":
self.imap.uid('STORE', message_meta, '+FLAGS', '(\\SEEN)')
def get_email_seen_status(self, uid, flag_string):
""" parse the email FLAGS response """