python读取邮箱邮件_Python读取邮箱邮件
from email.parser importParserfrom email.header importdecode_headerfrom email.utils importparseaddrimportpoplib#输入邮件地址, 口令和POP3服务器地址:#email = input('Email: ')#password = input('Password: ')#pop3_server = input('POP3 server: ')
#新浪邮箱测试通过, 密码使用登陆密码#email = "18937905850@sina.cn"#password = "password"#pop3_server = "pop.sina.cn"
#qq邮箱测试通过, 使用授权码, 使用ssl#email = "bestfuture25@qq.com"#password = "titeexrfwjutbhhg"#pop3_server = "pop.qq.com"
classEmail:def __init__(self,account,password,pop3_server):
self.account=account
self.password=password
self.pop3_server=pop3_serverdefguess_charset(self,msg):
charset=msg.get_charset()if charset isNone:
content_type= msg.get('Content-Type', '').lower()
pos= content_type.find('charset=')if pos >=0:
charset= content_type[pos + 8:].strip()returncharsetdefdecode_str(self,s):
value, charset=decode_header(s)[0]ifcharset:
value=value.decode(charset)returnvaluedef print_info(self,msg, indent=0):if indent ==0:for header in ['From', 'To', 'Subject']:
value= msg.get(header, '')ifvalue:if header == 'Subject':
value=self.decode_str(value)else:
hdr, addr=parseaddr(value)
name=self.decode_str(hdr)
value= u'%s ' %(name, addr)print('%s%s: %s' % (' ' *indent, header, value))if(msg.is_multipart()):
parts=msg.get_payload()for n, part inenumerate(parts):print('%spart %s' % (' ' *indent, n))print('%s--------------------' % (' ' *indent))
self.print_info(part, indent+ 1)else:
content_type=msg.get_content_type()if content_type == 'text/plain' or content_type == 'text/html':
content= msg.get_payload(decode=True)
charset=self.guess_charset(msg)ifcharset:
content=content.decode(charset)print('%sText: %s' % (' ' * indent, content + '...'))else:print('%sAttachment: %s' % (' ' *indent, content_type))defmain(self):#连接到POP3服务器:
#server = poplib.POP3(pop3_server)
#qq需要使用ssl
server =poplib.POP3_SSL(pop3_server)#可以打开或关闭调试信息:
server.set_debuglevel(1)#可选:打印POP3服务器的欢迎文字:
print(server.getwelcome().decode('utf-8'))#身份认证:
server.user(email)
server.pass_(password)#stat()返回邮件数量和占用空间:
print('Messages: %s. Size: %s' %server.stat())#list()返回所有邮件的编号:
resp, mails, octets =server.list()#可以查看返回的列表类似[b'1 82923', b'2 2184', ...]
print(mails)#获取最新一封邮件, 注意索引号从1开始:
index =len(mails)
resp, lines, octets=server.retr(index)#lines存储了邮件的原始文本的每一行,
#可以获得整个邮件的原始文本:
msg_content = b'\r\n'.join(lines).decode('utf-8')#稍后解析出邮件:
msg =Parser().parsestr(msg_content)
self.print_info(msg)#可以根据邮件索引号直接从服务器删除邮件:
#server.dele(index)
#关闭连接:
server.quit()if __name__ == '__main__':
email= "bestfuture25@qq.com"password= "titeexrfwjutbhhg"pop3_server= "pop.qq.com"Email(email,password,pop3_server).main()
python读取邮箱邮件_Python读取邮箱邮件相关推荐
- python 收发邮件_Python 【收发邮件】
发邮件 smtplib模块主要负责发送邮件 email模块主要负责构造邮件.这两个都是Python内置模块 smtplib.SMTP.方法 #按住Ctrl键并点击SMTP ,会看到对SMTP的解释(v ...
- python 关闭 定时开启_Python爬虫邮箱定时自动发送
背景介绍 小说网站-笔趣看: URL:http://www.biqukan.com/ 笔趣看是一个盗版小说网站,这里有很多起点中文网的小说,该网站小说的更新速度稍滞后于起点中文网正版小说的更 ...
- python读取grib2数据_python读取grib grib2气象数据
GRIB是WMO开发的一种用于交换和存储规则分布数据的二进制文件格式,主要用来表示数值天气预报的产品资料.现行的GRIB 码版本有GRIB1 和GRIB2 两种格式.由于小编只接触过GRIB1数据,所 ...
- python发送带表格的邮件_PYTHON自动发送报表邮件
要实现上述的功能的话我们需要以下几步:1.做好报表模板 2.更新报表数据 3.发送报表邮件 下面我们就用一个例子来给大家演示一下: 1.报表模板 我们选用一份保险公司每天完成保单的数据进行模板制作,要 ...
- python读取写入文件_Python读取和写入文件
1 从文件中读取数据 1.1 读取整个文件 创建名为test的txt文本文件,添加内容如下所示: 1234567890 2345678901 3456789012 实现代码: with open('t ...
- python 读取大文件_Python读取大文件
1. 前言 前几天在做日志分析系统,需要处理几十G的文件,我尝试用原来的for line in open(filepath).readlines()处理,但停顿好久也没变化,可见占用不小的内存.在网上 ...
- 用python读取文档_python读取word文档
word.Quit() 这种方式产生的text文档,不能用python用普通的r方式读取,为了让python可以用r方式读取,应当写成 doc.SaveAs('c:/test', 4) 注意:系统执行 ...
- python 收发邮件_python发送各类邮件的主要基本方法
利用python实现基本的邮件发送. 感谢以下博客的整理,本人在学习的同时也做了一些整理 一.相关模块介绍 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍: ...
- python读视频文件_python读取和保存视频文件
如何用python实现视频关键帧提取并保存为图片?也许你会觉得对小编多做一点事你会觉得你很爽,可是在小编看来这是不屑的 import cv2vc = cv2.VideoCapture('Test.av ...
- python 读取excel表格_Python读取Excel表格
本文将教大家如何使用Python来读取Excel表,学会这个技能对提高工作效率会十分有帮助. 目录: 1.安装Python读excel模块--xlrd 2.准备表格内容 3.编写python代码并运行 ...
最新文章
- mysql正斜杠_MySQL中的正斜杠和反斜杠 | | 数据库系统概论(字符匹配)
- pandas删除dataframe列名称中包含特定字符串的数据列(dropping columns contains specifiec substring in dataframe)
- C# 中 StringBuilder和String的区别
- elk入门_ELK堆栈入门
- TCP/IP文档阅读笔记-TCP Receive Window
- Spring boot Rabbitmq 示例
- redis深度历险 pdf_程序员面试必备精选文档:Redis+Ng+Tomcat+并发编程+Spring系列
- 关于计算机中 二进制位(bit)、字节(Byte)、 千字节(KB)等之间的关系
- JAVA→JDBCJava DataBase Connectivity、存储过程Stored Procedure、事务Transaction、连接池DBCP C3P0、JDBC升级替代框架
- nginx+uwsgi+django
- 【CSDN软考VIP资料群】让软考通过更容易,软考资料大全支持你软考!
- 力软敏捷开发框架源码7.0.6旗舰版
- javascript特效
- lcd4linux 支持的相框,最新版AIDA64支持LCD4WIN相框太给力了(20140826更新啦)!
- 随机样本,方便样本与资源回应样本
- linux看温度命令,linux查看cpu温度命令
- (附源码)springboot卫生院儿童预防接种管理系统 毕业设计 011404
- Win10下双系统Ubuntu14.04+GTX1070+CUDAcuDNN+Tensorflow环境搭建
- C语言邻接矩阵的实现
- 防住CV中这颗“不定时炸弹”,有哪些捷径?丨独家公开课实录(4)
热门文章
- csuoj 1351: Tree Counting
- 用C#生成随机中文汉字验证码
- RTT时钟管理篇——RTT定时器超时判断理解
- java jlist删除选中的项_java jlist removeListSelectionListener 怎样删除已经建好的 ListSelectionListener...
- mysql触发器对同一张表做操作_mysql的触发器同数据库 多表的数据操作
- 记一次library cache lock/library cache pin导致的函数编译hang住分析及处理过程
- 老司机带你在MySQL领域“大吉大利,晚上吃鸡”
- Hadoop 面试,来看这篇就够了
- 微信月活9亿的高效运维之路
- 斗罗大陆真3D手游实力上线,带你感受魂兽猎杀的超燃时刻