zoukankan      html  css  js  c++  java
  • 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'
    
  • 相关阅读:
    CentOS6设置密码过期时间
    scp
    windows查看进程
    mysql5.7密码问题
    mysql主从切换摘要
    mysql慢日志管理
    Linux学习(一)
    Linux学习(一)
    数据结构与算法(1)-算法时间复杂度
    数据结构与算法(1)-算法时间复杂度
  • 原文地址:https://www.cnblogs.com/maseng/p/3491131.html
Copyright © 2011-2022 走看看