python操作gmail实例

1097次阅读  |  发布于5年以前

本文实例讲述了python操作gmail的方法。分享给大家供大家参考。

具体实现方法如下:

复制代码 代码如下:

import imaplib, re

class pygmail(object):
def init(self):
self.IMAP_SERVER='imap.gmail.com'
self.IMAP_PORT=993
self.M = None
self.response = None
self.mailboxes = []

def login(self, username, password):  
    self.M = imaplib.IMAP4_SSL(self.IMAP_SERVER, self.IMAP_PORT)  
    rc, self.response = self.M.login(username, password)  
    return rc  

def get_mailboxes(self):  
    rc, self.response = self.M.list()  
    for item in self.response:  
        self.mailboxes.append(item.split()[-1])  
    return rc  

def get_mail_count(self, folder='Inbox'):  
    rc, self.response = self.M.select(folder)  
    return self.response[0]  

def get_unread_count(self, folder='Inbox'):  
    rc, self.response = self.M.status(folder, "(UNSEEN)")  
    unreadCount = re.search("UNSEEN (\d+)", self.response[0]).group(1)  
    return unreadCount  

def get_imap_quota(self):  
    quotaStr = self.M.getquotaroot("Inbox")[1][1][0]  
    r = re.compile('\d+').findall(quotaStr)  
    if r == []:  
        r.append(0)  
        r.append(0)  
    return float(r[1])/1024, float(r[0])/1024  

def get_mails_from(self, uid, folder='Inbox'):  
    status, count = self.M.select(folder, readonly=1)  
    status, response = self.M.search(None, 'FROM', uid)  
    email_ids = [e_id for e_id in response[0].split()]  
    return email_ids  

def get_mail_from_id(self, id):  
    status, response = self.M.fetch(id, '(body[header.fields (subject)])')  
    return response  

def rename_mailbox(self, oldmailbox, newmailbox):  
    rc, self.response = self.M.rename(oldmailbox, newmailbox)  
    return rc  

def create_mailbox(self, mailbox):  
    rc, self.response = self.M.create(mailbox)  
    return rc  

def delete_mailbox(self, mailbox):  
    rc, self.response = self.M.delete(mailbox)  
    return rc  

def logout(self):  
    self.M.logout()  

if name =="main":
demo=pygmail()
demo.login("renwenchao888@gmail.com","qqq191430791")
mailBoxex=demo.get_mailboxes()
for i in demo.response:
print i
demo.logout()

希望本文所述对大家的Python程序设计有所帮助。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8