python-取pop3服务器的邮件并保成为 .eml 文件

   取pop3服务器的邮件,分析出邮件标题,to cc bc from ,并保成为 .eml 文件


  1 import poplib
  2 import StringIO, email
  3 
  4 def dcode(str):
  5    h = email.Header.Header(str)
  6    dh = email.Header.decode_header(h)
  7    return dh[0][0]
  8 
  9 popsrv = "pop.xxxxxxxx.com"  #连接 登录 服务器
 10 username = "hsbk@xxxxxx.com" 
 11 passwd = "123456"   
 12 
 13 
 14 subject=""
 15 f_addr=""
 16 f_name=""
 17 to=[]
 18 cc=[]
 19 bc=[]
 20 
 21 pop = poplib.POP3(popsrv)
 22 #pop.set_debuglevel(1)           
 23 pop.user(username)
 24 pop.pass_(passwd)
 25 
 26 
 27 num,total_size = pop.stat()
 28 hdr,text,octet=pop.retr(num) #取最后封邮件
 29 text = '\n'.join(text) #将list拼接成字串
 30 
 31 amail = email.message_from_string(text)
 32 subject = dcode(amail.get("subject"))
 33 
 34 
 35 
 36 f_addr = email.utils.parseaddr(amail.get("from"))[1]
 37 f_name = dcode(email.utils.parseaddr(amail.get("from"))[0])
 38 
 39 
 40 
 41 
 42 tol=[]
 43 tostr = msg.get('to')
 44 
 45 if tostr == None :
 46     tostr = ''
 47 
 48 tostr = tostr.replace('\n','').replace('\t','').replace('"','').replace("'","")
 49 tol = tostr.split(',')
 50 for t in tol:
 51     taddr = email.utils.parseaddr(t)[1]
 52     inx = taddr.find("@")
 53     if inx != -1:
 54        to.append(taddr)
 55 
 56 
 57 tol=[]
 58 
 59 tostr = msg.get('bc')
 60 
 61 if tostr == None :
 62     tostr = ''
 63 
 64 tostr = tostr.replace('\n','').replace('\t','').replace('"','').replace("'","")
 65 
 66 tol = tostr.split(',')
 67 for t in tol:
 68     taddr = email.utils.parseaddr(t)[1]
 69     inx = taddr.find("@")
 70     if inx != -1:
 71        bc.append(taddr)
 72 
 73 
 74 tol=[]
 75 tostr = msg.get('cc')
 76 
 77 if tostr == None :
 78     tostr = ''
 79 
 80 tostr = tostr.replace('\n','').replace('\t','').replace('"','').replace("'","")
 81 tol = tostr.split(',')
 82 for t in tol:
 83     taddr = email.utils.parseaddr(t)[1]
 84     inx = taddr.find("@")
 85     if inx != -1:
 86        cc.append(taddr)
 87 
 88 
 89 
 90 fp = open('e:/test3.eml','wb')
 91 fp.write(text)
 92 fp.close()
 93 #pop.dele(num) #删除服务器上的副本
 94 
 95 
 96 print "subject ",subject
 97 print "f_addr ",f_addr
 98 print "f_name ",f_name
 99 print "to ",to
100 print "cc ",cc
101 print "bc ",bc
102 
103 
104 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wxgnolux

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值