コード例 #1
0
    print(message.date)
    print(message.text)
    print(message.html)
    print(message.flags)
    for filename, payload in message.attachments:
        print(filename, payload)

# MAILBOX
# -------
# NOTE: You can use 2 approaches to perform these operations
# "by one" - Perform operation for each message separately per N commands
# "in bulk" - Perform operation for message set per 1 command

# COPY all messages from current dir to folder1, *by one
for msg in mailbox.fetch():
    res = mailbox.copy(msg.uid, 'INBOX/folder1')
# DELETE all messages from current dir to folder1, *in bulk
mailbox.delete([msg.uid for msg in mailbox.fetch()])
# FLAG unseen messages in current folder as Answered and Flagged, *in bulk
mailbox.flag([msg.uid for msg in mailbox.fetch('(UNSEEN)')], ['Answered', 'Flagged'], True)
# MOVE all messages from current dir to folder2, *in bulk
mailbox.move([msg.uid for msg in mailbox.fetch()], 'INBOX/folder2')
# mark SEEN all messages sent at 05.03.2007 in current folder as unseen, *in bulk
mailbox.seen([msg.uid for msg in mailbox.fetch("SENTON 05-Mar-2007")], False)

# FOLDERS
# -------
# LIST
for folder in mailbox.folder.list('INBOX'):
    print(folder['flags'], folder['delim'], folder['name'])
# SET
コード例 #2
0
ファイル: Imap_utility.py プロジェクト: sravanth99/IMAPCLIENT
class CustomMailBox():
    def __init__(self,user,pas,host='imap.gmail.com',n_per_page=40,folder='INBOX'):
        self.user=user
        self.pwd = pas
        self.host = host
        self.folder = folder
        self.n_per_page = n_per_page
    def authuser(self):
        try:
            self.Mb_main = MailBox(host=self.host)
            self.Mb_main.login(self.user,self.pwd)
            d = dict()
            for f in self.Mb_main.folder.list():
                d[f['name'].split('/')[-1]] = f['name']
            self.Mb_main.folder.set(d[self.folder])
            return d
        except:
            return False
    def getbypagenum(self,page_number,searchterm):
        d = self.authuser()
        if d:

            print(page_number,self.n_per_page,'ufifidh')
            mb = IMAPClient(self.host)
            mb.login(self.user,self.pwd)
            mb.select_folder(d[self.folder])
            if searchterm:
                ids= mb.search(['OR',['OR',[u'TEXT',f'{searchterm}'],['FROM',f'{searchterm}']],['OR',[u'SUBJECT',f'{searchterm}'],[u'BODY',f'{searchterm}']]])
            else:
                ids = mb.search()
            print(len(ids),'hmmm')
            last = math.ceil(len(ids)/self.n_per_page)
            print(last,'last page')
            page_number = last-page_number+1
            start = max(0,((page_number-1)*self.n_per_page))
            end = min(len(ids),(page_number*self.n_per_page))
            print(start,end)
            print(ids[start:end])
            return (next(self.Mb_main.fetch(AND(uid=f'{m}'),headers_only=True,reverse=True) )for m in reversed(ids[start:end])),last
    def getbyuid(self,uid):
        if self.authuser():
            return self.Mb_main.fetch(AND(uid=uid))
    def getbysearch(self,text):
        if self.authuser():
            return self.Mb_main.fetch(OR(subject=text))
    def get_searched_chunks(self):
        gen = self.get_searched_chunks()
        pass
    def get_info(self,folder='INBOX'):
        if self.authuser():
            return self.Mb_main.folder.status(folder)
    def get_folders(self):
        if self.authuser():
            return self.Mb_main.folder.list()
    def get_cur(self):
        if self.authuser():
            return self.Mb_main.folder.get()
    def create_folder(self,folder):
        if self.authuser():
            if self.Mb_main.folder.exists(folder):
               return 'no'
            self.Mb_main.folder.create(folder)
            return 'ok'
    def delete_folder(self,folder):
        if self.authuser():
            self.Mb_main.folder.delete(folder)
    def rename_folder(self,folder):
        d = self.authuser()
        if d:
            self.Mb_main.folder.rename(d[self.folder],folder)
    def delete_msg(self,uid):
        if self.authuser():
            self.Mb_main.delete(uid)
    def move_msgto(self,folder,uid):
        if self.authuser():
            self.Mb_main.move(uid,folder)
    def copy_msgto(self,folder,uid):
        if self.authuser():
            self.Mb_main.copy(uid,folder)