文档章节

python收取邮件附件 模块 poplib

BryanYang
 BryanYang
发布于 2014/11/11 14:20
字数 261
阅读 65
收藏 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
粉丝 16
博文 165
码字总数 52036
作品 0
石景山
程序员
私信 提问
python利用poplib来收取邮件

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

terry_hding
2016/08/17
93
0
利用pcDuino收发邮件和邮件控制GPIO

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

pc朵拉
2013/12/09
361
0
邮件--import--smtplib

-- --import------import smtplib 模块---python邮件---------------------------------------------------------------------------- -- --12.4-------------import------import imaplib 模......

liapple6
10/28
0
0
[python应用案例] 一.BeautifulSoup爬取天气信息并发送至QQ邮箱

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

eastmount
05/03
0
0
python中使用poplib模块接收邮件

目的:用poplib模块接收邮件,并处理文本内容。 环境:windows 7 Python 3.5.3 情景:服务器一般预警都会有邮件通知,如果通知比较多且邮箱还会收到其他的邮件时,这时从中整理出预警信息并统...

RickyHuL
2017/08/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

学习LinkedBlockingDeque源码

之前已经看了实现deque接口的ArrayDeque, ConcurrentLinkedDeque, LinkedList,也不能落下ConcurrentLinkedDeque,但是好像没在项目中用过。 这里看到实现的接口还有BlockingDeque<E>, Block...

woshixin
23分钟前
1
0
实战:用Python实现随机森林

摘要: 随机森林如何实现?为什么要用随机森林?看这篇足够了! 因为有Scikit-Learn这样的库,现在用Python实现任何机器学习算法都非常容易。实际上,我们现在不需要任何潜在的知识来了解模型...

阿里云官方博客
27分钟前
1
0
进程管理利器Supervisor--centos7下安装与卸载

目录 概述 环境准备 检查python环境 在线安装 配置Supervisor 启动并验证 概述 Supervisor的安装可以有在线安装和离线安装两种方式。安装方式取决于服务器是否联网,联网的话可采用在线安装,...

java_龙
33分钟前
4
0
spring系列汇总

spring spring-基于可扩展Schema的特性自定义标签 springmvc-同一个访问资源,多种视图解析方式 spring cache 配置使用aspectj模式织入 基于注解的spring缓存,轻松无侵入解决cache问题 spri...

细肉云吞
34分钟前
4
0
vsftpd搭建ftp

12月10日任务 14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp exportfs命令 在nfs运行后的一段时间内,如果需要添加共享目录,这时需要修改exports文件,并...

robertt15
36分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部