Plugin IMAP, plugin MAILDIR: added IMAP's UID management, mailbox data persistence
This commit is contained in:
parent
5d051810cf
commit
e14f357b95
1 changed files with 171 additions and 10 deletions
|
|
@ -85,6 +85,7 @@ class Message():
|
|||
"""Retrieve the unique identifier associated with this message.
|
||||
"""
|
||||
debug('getUID (message)')
|
||||
debug ('===>%i', self.uid)
|
||||
return self.uid
|
||||
|
||||
def getFlags(self):
|
||||
|
|
@ -176,7 +177,7 @@ class SatMailbox:
|
|||
"""Return the likely UID for the next message added to this mailbox.
|
||||
"""
|
||||
debug ('getUIDNext')
|
||||
return self.getMessageCount()+1
|
||||
return self.mailbox.getNextUid()
|
||||
|
||||
def getUID(self,message):
|
||||
"""Return the UID of a message in the mailbox
|
||||
|
|
@ -184,7 +185,7 @@ class SatMailbox:
|
|||
@return: The UID of the message.
|
||||
"""
|
||||
debug ('getUID')
|
||||
return self.mailbox.getId(message)
|
||||
return self.mailbox.getUid(message)
|
||||
|
||||
def getMessageCount(self):
|
||||
"""Return the number of messages in this mailbox.
|
||||
|
|
@ -285,11 +286,24 @@ class SatMailbox:
|
|||
@param uid: If true, the IDs specified in the query are UIDs;
|
||||
"""
|
||||
debug('fetch (%s, %s)'%(messages,uid))
|
||||
messages.last = self.getMessageCount()
|
||||
for mes_idx in messages:
|
||||
if mes_idx>self.getMessageCount():
|
||||
continue
|
||||
yield (mes_idx,Message(mes_idx,self.mailbox.getMessage(mes_idx-1)))
|
||||
if uid:
|
||||
messages.last = self.mailbox.getMaxUid()
|
||||
messages.getnext = self.mailbox.getNextExistingUid
|
||||
for mess_uid in messages:
|
||||
if mess_uid == None:
|
||||
debug ('stopping iteration')
|
||||
raise StopIteration
|
||||
try:
|
||||
debug ('yielding (%s,%s)' % (mess_uid,Message(mess_uid,self.mailbox.getMessageUid(mess_uid))))
|
||||
yield (mess_uid,Message(mess_uid,self.mailbox.getMessageUid(mess_uid)))
|
||||
except IndexError:
|
||||
continue
|
||||
else:
|
||||
messages.last = self.getMessageCount()
|
||||
for mess_idx in messages:
|
||||
if mess_idx>self.getMessageCount():
|
||||
raise StopIteration
|
||||
yield (mess_idx,Message(mess_idx,self.mailbox.getMessage(mess_idx-1)))
|
||||
|
||||
def store(self, messages, flags, mode, uid):
|
||||
"""Set the flags of one or more messages.
|
||||
|
|
|
|||
Loading…
Reference in a new issue