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()
|
=============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/archive/2011/12/08/2280652.html,如需转载请自行联系原作者