文档章节

python收取邮件附件 模块 poplib

BryanYang
 BryanYang
发布于 2014/11/11 14:20
字数 261
阅读 62
收藏 0
点赞 0
评论 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
博文 97
码字总数 52036
作品 0
石景山
程序员
python利用poplib来收取邮件

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

terry_hding ⋅ 2016/08/17 ⋅ 0

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

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

eastmount ⋅ 05/03 ⋅ 0

Python发送邮件——yagmail模块(0605)

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

python初雪之路 ⋅ 06/05 ⋅ 0

Python优雅的操作Exchange邮箱——exchangelib模块使用介绍

最近想把公司邮箱的附件给下载下来,附件好多都是我整理的报告和文档,一个个去下载明显太傻,碰到这种问题第一个想到的就是Python啦 需求很简单,只需要登录自己的Exchange邮箱,然后遍历所...

Bug生活2048 ⋅ 05/15 ⋅ 0

利用pcDuino收发邮件和邮件控制GPIO

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

pc朵拉 ⋅ 2013/12/09 ⋅ 0

[转载]用Python处理邮件

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

甜菜萧 ⋅ 2011/02/18 ⋅ 0

python中使用poplib模块接收邮件

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

RickyHuL ⋅ 2017/08/02 ⋅ 0

记录我所接触的python模块

文本 re  模式匹配,正则 BeautifulSoup HTML分析 ElementTree XML分析 文档与报告 shelve 对象数据库,操作此实例如操作字典 poplib 以pop3方式接收邮件 imaplib 以imap方式接收邮件 gdch...

hahazhu0634 ⋅ 2014/05/18 ⋅ 0

报错EnvironmentError: mysql_config not found

MySQL for Python library在Python中也就相当于JAVA中对应MySQL的JDBC Driver 1. 首先安装mysql sudo apt-get install mysql-server 2. 安装mysql-python 下载MySQL-python-1.2.3.tar.gz(见......

jalyzjs ⋅ 05/12 ⋅ 0

5分钟教你学会Django系统错误监控

一、监控所有的request请求 如何实现系统监控,自动发送错误日志的邮件呢? 只需配置配置settings文件即可。 1.设置发送邮件配置信息 邮件会发送到ADMINS设定的邮件列表中。 2.配置LOGGING 1...

p柯西 ⋅ 前天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Cloud构建微服务架构—创建“服务注册中心”

创建一个基础的Spring Boot工程,命名为eureka-server,并在pom.xml中引入需要的依赖内容: <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-par......

itcloud ⋅ 10分钟前 ⋅ 0

拖动

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>event</title> <style> #box { width: 100px; height: 100px; background-color: aquamarine; position: absolute; } </style......

fyliujj ⋅ 13分钟前 ⋅ 0

es6 polyfill array

polyfill之javascript函数的兼容写法——Array篇 1. Array.isArray(obj) if (!Array.isArray) { Array.isArray = function(arg) { return Object.prototype.toString.call(arg) === '[objec......

球球 ⋅ 15分钟前 ⋅ 0

kibana启动异常

检查一下:kibana.yml 每一对key:value中,冒号之后应有空格。

增删改查1 ⋅ 17分钟前 ⋅ 0

js修改img的src属性刷新图片时的图片缓存问题

问题:上传一张图片,通过js更新src属性刷新图片使其即时显示时, 当img的src当前的url与上次地址无变化时(只更改图片,名称不变,不同图片名称相同)图片不变化(仍显示原来的图片) 但通过...

HaierBrother ⋅ 17分钟前 ⋅ 0

Mysql

1.Jdbc Url 设置allowMultiQueries为true和false mysql的批量更新是要我们主动去设置的, 就是在数据库的连接url上设置一下,加上* &allowMultiQueries=true *即可。 参数名称 参数说明 缺省...

瑟青豆 ⋅ 20分钟前 ⋅ 0

mysql导出导入表结构与数据

当我们需要进行数据迁移时,mysql自带的mysqldump会是最好的方式。 1.导出某张表的结构和数据 首先,我们应当使用服务器,打开终端,连接到所需要导出的表所在的服务器上。执行命令: mysqld...

hengbao5 ⋅ 20分钟前 ⋅ 0

世界杯也走向“比拼”大数据的时代

《日本经济新闻》6月19日报道称,俄罗斯足球世界杯已于6月14日揭开战幕。作为第21次举办的足球世界杯,如何活用大数据有可能成为决定各支球队胜负的重要因素。从对阵球队的分析到战术建议,还...

加米谷大数据 ⋅ 21分钟前 ⋅ 0

金额转为千分制,金额转中文大写

金额转关为大写 js /** 数字金额大写转换(可以处理整数,小数,负数) */ function digitUppercase(n){ if(!n) reutrn "" let fraction = ['角', '分']; let digit = ['零', '壹', '贰', '叁', ...

YXMBetter ⋅ 24分钟前 ⋅ 0

开发利器JRebel部署SpringBoot项目

不要以为年纪轻轻就跌倒了人生谷底,未来还有更大的下降空间等着你。 idea下载和安装JRebel 激活JRebel 访问https://my.jrebel.com/ 使用facebook或twitter登录 勾选 Build project automati...

郑龙飞 ⋅ 29分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部