python操作gmail实例
本文实例讲述了python操作gmail的方法。分享给大家供大家参考。
具体实现方法如下:
importimaplib,re
classpygmail(object):
def__init__(self):
self.IMAP_SERVER='imap.gmail.com'
self.IMAP_PORT=993
self.M=None
self.response=None
self.mailboxes=[]
deflogin(self,username,password):
self.M=imaplib.IMAP4_SSL(self.IMAP_SERVER,self.IMAP_PORT)
rc,self.response=self.M.login(username,password)
returnrc
defget_mailboxes(self):
rc,self.response=self.M.list()
foriteminself.response:
self.mailboxes.append(item.split()[-1])
returnrc
defget_mail_count(self,folder='Inbox'):
rc,self.response=self.M.select(folder)
returnself.response[0]
defget_unread_count(self,folder='Inbox'):
rc,self.response=self.M.status(folder,"(UNSEEN)")
unreadCount=re.search("UNSEEN(\d+)",self.response[0]).group(1)
returnunreadCount
defget_imap_quota(self):
quotaStr=self.M.getquotaroot("Inbox")[1][1][0]
r=re.compile('\d+').findall(quotaStr)
ifr==[]:
r.append(0)
r.append(0)
returnfloat(r[1])/1024,float(r[0])/1024
defget_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_idfore_idinresponse[0].split()]
returnemail_ids
defget_mail_from_id(self,id):
status,response=self.M.fetch(id,'(body[header.fields(subject)])')
returnresponse
defrename_mailbox(self,oldmailbox,newmailbox):
rc,self.response=self.M.rename(oldmailbox,newmailbox)
returnrc
defcreate_mailbox(self,mailbox):
rc,self.response=self.M.create(mailbox)
returnrc
defdelete_mailbox(self,mailbox):
rc,self.response=self.M.delete(mailbox)
returnrc
deflogout(self):
self.M.logout()
if__name__=="__main__":
demo=pygmail()
demo.login("renwenchao888@gmail.com","qqq191430791")
mailBoxex=demo.get_mailboxes()
foriindemo.response:
printi
demo.logout()
希望本文所述对大家的Python程序设计有所帮助。