python 利用pop3接收邮件并保存附件

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'

 

    原文作者:fengyufengzi
    原文地址: https://blog.csdn.net/fengyufengzi/article/details/39027597
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞