From 18b9edea57e6f41102aed82e6085294d105f11c9 Mon Sep 17 00:00:00 2001 From: tonio Date: Mon, 5 Jul 2010 14:40:21 +0200 Subject: [PATCH] Shame on me... RTFM!!!!! Do a select on a mailbox with the readonly parameter == True is not a good idea if you are going to make changes inside this mailbox (like a store command) --- extensions/webmail/lib.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/extensions/webmail/lib.py b/extensions/webmail/lib.py index fadc20ec2..1fe8902c5 100644 --- a/extensions/webmail/lib.py +++ b/extensions/webmail/lib.py @@ -186,7 +186,6 @@ class IMAPconnector(object): self.m.login(user, passwd) except (imaplib.IMAP4.error, ssl.SSLError), error: return False, _("Authentication failed, check your configuration") - return True, None def logout(self): @@ -230,7 +229,7 @@ class IMAPconnector(object): def unseen_messages(self, folder): """Return the number of unseen messages for folder""" - self.m.select(self._encodefolder(folder)) + self.m.select(self._encodefolder(folder), True) status, data = self.m.search("UTF-8", "(NOT DELETED UNSEEN)") if status != "OK": return @@ -266,37 +265,37 @@ class IMAPconnector(object): return result def _add_flag(self, folder, mail_id, flag): - self.m.select(self._encodefolder(folder), True) + self.m.select(self._encodefolder(folder)) self.m.store(mail_id, "+FLAGS", flag) def msg_unread(self, folder, msgset): - self.m.select(self._encodefolder(folder), True) - self.m.store(msgset, "-FLAGS", "\\Seen") + self.m.select(self._encodefolder(folder)) + self.m.store(msgset, "-FLAGS", r'(\Seen)') def msg_read(self, folder, msgset): - self._add_flag(folder, msgset, "\\Seen") + self._add_flag(folder, msgset, r'(\Seen)') def msgforwarded(self, folder, imapid): - self._add_flag(folder, imapid, "$Forwarded") + self._add_flag(folder, imapid, '($Forwarded)') def msg_answered(self, folder, imapid): - self._add_flag(folder, imapid, "\\Answered") + self._add_flag(folder, imapid, r'(\Answered)') def move(self, msgset, oldfolder, newfolder): - self.m.select(self._encodefolder(oldfolder), True) + self.m.select(self._encodefolder(oldfolder)) status, data = self.m.copy(msgset, self._encodefolder(newfolder)) if status == 'OK': - self.m.store(msgset, "+FLAGS", "\\Deleted") + self.m.store(msgset, "+FLAGS", r'(\Deleted)') def push_mail(self, folder, msg): now = imaplib.Time2Internaldate(time.time()) - self.m.append(self._encodefolder(folder), '\\Seen', now, str(msg)) + self.m.append(self._encodefolder(folder), r'(\Seen)', now, str(msg)) def empty(self, folder): self.m.select(self._encodefolder(folder)) typ, data = self.m.search(None, 'ALL') for num in data[0].split(): - self.m.store(num, "+FLAGS", "\\Deleted") + self.m.store(num, "+FLAGS", r'(\Deleted)') self.m.expunge() def compact(self, folder):