文档章节

python收取邮件附件 模块 poplib

BryanYang
 BryanYang
发布于 2014/11/11 14:20
字数 261
阅读 62
收藏 0

1.       #!/usr/bin/env python  

2.       # coding=utf-8  

3.       # Python 2.7.3  

4.       获取邮件内容  

5.       import poplib  

6.       from email import parser  

7.         

8.       host = 'pop.163.com'  

9.       username = 'MyTest22@163.com'  

10.   password = 'xxxxxxxxx'  

11.     

12.   pop_conn = poplib.POP3_SSL(host)  

13.   pop_conn.user(username)  

14.   pop_conn.pass_(password)  

15.     

16.   #Get messages from server:  

17.   获得邮件  

18.   messages = [pop_conn.retr(i) for i in range(1, len(pop_conn.list()[1]) + 1)]  

19.   #print messages  

20.     

21.   #print "--------------------------------------------------"  

22.   # Concat message pieces:  

23.   messages = ["\n".join(mssg[1]) for mssg in messages]  

24.   #print messages  

25.     

26.   #Parse message intom an email object:  

27.   分析  

28.   messages = [parser.Parser().parsestr(mssg) for mssg in messages]  

29.   i = 0  

30.   for message in messages:  

31.       i = i + 1  

32.       mailName = "mail%d.%s" % (i, message["Subject"])  

33.       f = open(mailName + '.log', 'w');  

34.       print >> f, "Date: ", message["Date"]  

35.       print >> f, "From: ", message["From"]  

36.       print >> f, "To: ", message["To"]  

37.       print >> f, "Subject: ", message["Subject"]  

38.       print >> f, "Data: "  

39.       j = 0  

40.       for part in message.walk():  

41.           j = j + 1  

42.           fileName = part.get_filename()  

43.           contentType = part.get_content_type()  

44.           # 保存附件  

45.           if fileName:  

46.               data = part.get_payload(decode=True)  

47.               fileName = "%s.%d.%s" % (mailName, j, fileName)  

48.               fEx = open(fileName, 'wb')  

49.               fEx.write(data)  

50.               fEx.close()  

51.           elif contentType == 'text/plain' or contentType == 'text/html':  

52.               #保存正文  

53.               data = part.get_payload(decode=True)  

54.               print >> f, data  

55.     

56.       f.close()  

57.   pop_conn.quit() 


© 著作权归作者所有

共有 人打赏支持
BryanYang
粉丝 15
博文 165
码字总数 52036
作品 0
石景山
程序员
python利用poplib来收取邮件

收取邮件有两种方式,一种是POP3, 另一种是IMAP,它们都是收取邮件服务器支持的协议,我们用foxmail进行邮件的收发,感觉不到收发的流程,而实际上收和发是作用在不同的服务器上,发邮件有专...

terry_hding
2016/08/17
93
0
[python应用案例] 一.BeautifulSoup爬取天气信息并发送至QQ邮箱

前面作者写了很多Python系列文章,包括: Python基础知识系列:Python基础知识学习与提升 Python网络爬虫系列:Python爬虫之Selenium+Phantomjs+CasperJS Python数据分析系列:知识图谱、web...

eastmount
05/03
0
0
[转载]用Python处理邮件

总体来说python处理邮件还是比较方便的,库提供了很多工具.下面我把心得写出来,给新手一个启迪,也请高手给些更好的方法. 先说接受邮件. poplib 方法. 1.poplib.POP3('这里填入你pop邮件服务器...

甜菜萧
2011/02/18
0
0
Python发送邮件——yagmail模块(0605)

一、使用Python的第三方库 yagmail模块 发送邮件(本文以 QQ 邮箱示例) 1、通过Python的 yagmail模块发送邮件的前提: 开启SMTP服务、开通第三方授权(需要手机短信验证、QQ安全中心验证等)...

python初雪之路
06/05
0
0
利用pcDuino收发邮件和邮件控制GPIO

本帖子将带你在pcDuino上逐步实现邮件的收发(python语言),并且利用邮件来控制GPIO。这样你有了pcDuino就可以通过邮件的方式来远程控制你的家里的一些电器的开关,自己就可以轻松实现智能家...

pc朵拉
2013/12/09
351
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 恨不得给你买张飞机挂票

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @开源中国首席灵魂师:分享张希/曹方的单曲《认真地老去》 来不及认真的年轻过,就认真的老去! 《认真地老去》- 张希/曹方 手机党少年们想听...

小小编辑
56分钟前
120
6
如何实现靠谱的分布式锁?

分布式锁,是用来控制分布式系统中互斥访问共享资源的一种手段,从而避免并行导致的结果不可控。基本的实现原理和单进程锁是一致的,通过一个共享标识来确定唯一性,对共享标识进行修改时能够...

郑加威
今天
1
0
Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后...

TonyStarkSir
今天
3
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
今天
8
0
打开eclipse出现an error has occurred see the log file

解决方法: 1,打开eclipse安装目录下的eclipse.ini文件; 2,打开的文本文件最后添加一行 --add-modules=ALL-SYSTEM 3,保存重新打开Eclipse。...

任梁荣
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部