星期日, 7月 19, 2009

IMAP in Python - 8 (Reading Flags)

Twisted提供簡單的函式可以直接讀取message flag:


class IMAPLogic:
def __init__(self, proto):
self.proto = proto
self.factory = proto.factory

d = self.proto.login(self.factory.username, self.factory.password)
d.addCallback(lambda x: self.proto.examine('INBOX'))
d.addCallback(lambda x: self.proto.fetchFlags('1:*'))
d.addCallback(self.handleflags)
d.addCallback(self.logout)
d.addCallback(self.stopreactor)
d.addErrback(self.errorhappened)
def handleflags(self, flags):
for num, flaglist in flags.items():
print "Message %s has flags %s" % (num, ", ".join(flaglist['FLAGS']))

使用fetcgFlags(range)就可以取得範圍內message的flag。當然Twisted也提供了setFlags()、addFlags()、removeFlags(),都只需要提供一個list of strings,每個string都是一個flag即可。OUTPUT:

cacaegg@cacabook:~/workspace/NetworkProgram/src/IMAP$ tflag.py mx.mgt.ncu.edu.tw cacaegg
Enter password:
Message 1 has flags \Recent
Message 2 has flags \Recent


程式連結

沒有留言: