python 利用pop3接收郵件並儲存附件
阿新 • • 發佈:2019-01-27
def SaveAttach():# login the pop3 server ,retrive the new mails ,and download the attachments dstdir =dirname+str(time.ctime(time.time()))+'.zip' print 'starts' pp = poplib.POP3_SSL(mail_host,mail_port) print 'connect successful' pp.set_debuglevel(1) pp.user(mail_user) pp.pass_(mail_pass) ##list total count num = len(pp.list()[1]) print 'num of messages', num for i in range(1,num): #m = M.retr(i+1) m = pp.retr(i) buf = cStringIO.StringIO() buf.seek(0) msg = email.message_from_file(buf) for par in msg.walk(): #if not par.is_multipart(): name = par.get_filename() if name: print 'name',name data = par.get_payload(decode=True) try: f = open(dstdir, 'wb') #注意一定要用wb來開啟檔案,因為附件一般都是二進位制檔案 print 'save attfile succeed' except: print 'open file name error' f.write(data) f.close() pp.dele(i) else: #不是附件,是文字內容 body = par.get_payload(decode=True) # 解碼出文本內容,直接輸出來就可以了。 #print 'body:',body pass #print 'body:',body #中文沒有處理好,所有沒有輸出了。 #print '+'*60 # 用來區別各個部分的輸出 else: continue pp.quit() print 'exit'