From 71d1e8c0e0e20d3d2f60e7892a1fad73a7095eb6 Mon Sep 17 00:00:00 2001 From: Makarand Bauskar Date: Fri, 2 Jun 2017 14:03:21 +0530 Subject: [PATCH] [minor] select the Inbox in readonly false mode while pulling emails (#3412) --- frappe/email/receive.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/frappe/email/receive.py b/frappe/email/receive.py index 33aa9c2d0b..0ff632771e 100644 --- a/frappe/email/receive.py +++ b/frappe/email/receive.py @@ -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 """