python3接收、解析邮件
邮件接收
python3可以使用poplib.POP3进行邮件接收,具体如下:
import poplib
from email.parser import Parserdef get_email(email,password,host="mail.163.com"):# connect to pop3 serverserver = poplib.POP3(host)# open debugserver.set_debuglevel(1)# 身份验证server.user(email)server.pass_(password)# 返回邮件总数目和占用服务器的空间大小(字节数), 通过stat()方法即可# print("Mail counts: {0}, Storage Size: {0}".format(server.stat()))# 使用list()返回所有邮件的编号,默认为字节类型的串resp, mails, octets = server.list()# print("响应信息: ", resp)# print("所有邮件简要信息: ", mails)# print("list方法返回数据大小(字节): ", octets)# get the latest, index from 1:index = len(mails)if index < 1:return Noneresp, lines, octets = server.retr(index)# 可以获得整个邮件的原始文本:msg_content = b'\r\n'.join(lines).decode('utf-8')# 解析出邮件:msg = Parser().parsestr(msg_content)# print(msg)# print("解码后的邮件信息:\r\n"+str(msg))#closeserver.close()return msgdef delete_email(email,password,host="mail.163.com"):# connect to pop3 serverserver = poplib.POP3(host)# open debug# server.set_debuglevel(1)# 身份验证server.user(email)server.pass_(password)# 使用list()返回所有邮件的编号,默认为字节类型的串# list()返回tupleresp, mails, octets = server.list()# print("响应信息: ", resp)# print("所有邮件简要信息: ", mails)# print("list方法返回数据大小(字节): ", octets)# get the latest, index from 1:index = len(mails)# 删除所有邮件while index > 0:server.dele(index)print(index)index = index -1 # commit command and closeserver.quit()
邮件解析
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 解析邮件正文
def get_mail_content(msg):if msg == None:return Nonefor part in msg.walk():if not part.is_multipart():data = part.get_payload(decode=True)# print("emailcontent:\r\n"+data.decode())return data.decode()
poplib关键函数解析
- POP3.dele(which)
标记消息号 which 以进行删除。在大多数服务器上,删除直到QUIT才被实际执行(主要例外是Eudora QPOP,它通过在任何断开连接上进行未决删除而故意违反RFC)。
- POP3.quit()
注销:提交更改,解锁邮箱,删除连接。
email.message关键函数解析
- walk()
walk() 方法是一种通用的生成器,可用于以深度优先遍历顺序遍历消息对象树的所有部分和子部分。您通常会在 for 循环中使用 walk() 作为迭代器;每次迭代返回下一个子部分。
- is_multipart()
is_multipart()如果消息的有效内容是一个子EmailMessage 对象的列表,则返回 True,否则返回 False。当is_multipart()
返回 False 时,有效负载应为字符串对象(可能是CTE编码的二进制有效负载)。注意,is_multipart()
返回 True 并不一定意味着msg.get_content_maintype() == ‘multipart’
将返回 True。例如,当 EmailMessage 类型为 message/rfc822 时,is_multipart 将返回 True。
- get_content_type()
get_content_type()
返回消息的内容类型,强制为表格 maintype/subtype 的小写。如果消息中没有 Content-Type
头,则返回 get_default_type()
返回的值。如果 Content-Type 头无效,则返回 text/plain。
(根据 RFC 2045,消息总是有一个默认类型,get_content_type()
将总是返回一个值。RFC 2045 定义一个消息的默认类型为 text/plain,除非它出现在一个 multipart/digest 容器中,在这种情况下,它将是 message/rfc822 如果 Content-Type 头有一个无效的类型规范,RFC 2045 强制默认类型为 text/plain。)
python3接收、解析邮件相关推荐
- c# 收取邮件 解析_c# 使用NetStream接收 解析邮件
POP3(邮局协议3)是一种标准协议的最新版本接收电子邮件.POP3是一种客户机/服务器协议收到的电子邮件和为你了你的网络服务器.定期,你(或你的客户邮件收件人)检查你的信箱在服务器和下载任何邮件,可 ...
- 在线查询解析邮件接收的邮件
在线查询解析邮件接收的邮件 依赖 <dependency><groupId>javax.activation</groupId><artifactId> ...
- Python实现IMAP协议接收并解析邮件内容
Python实现IMAP协议接收并解析邮件内容 **前言:**昨天接到这个任务,然后搜索了很多资料和博客去看,这些资料链接我会放在本文后面 一.开通IMAP服务 我以网页邮箱(163邮箱为例) 1.登 ...
- 钉钉机器人关键词应答_Gmail 邮件推送到钉钉群机器人(详细)教程|国内接收 Gmail 邮件...
做这个功能费了我老大劲了,首先想到的还是利用现成的软件,尝试了一圈发现都不满意.然后不想重复造轮子,就搜索如何把 Gmail 推送到钉钉,结果只搜到了诸如 Python 如何调用 Gmail API. ...
- java 读取邮件正文_JavaMail入门第五篇 解析邮件
上一篇JavaMail入门第四篇 接收邮件中,控制台打印出的内容,我们无法阅读,其实,让我们自己来解析一封复杂的邮件是很不容易的,邮件里面格式.规范复杂得很.不过,我们所用的浏览器内置了解析各种数据类 ...
- spring boot 中使用 POP3协议读取并解析邮件
spring boot 中使用 POP3协议读取并解析邮件 1.邮箱授权 QQ邮箱授权,打开 "设置" 切换到 "账户" 找到下图中设置,开启 "PO ...
- python 邮件解析_Python解析邮件
邮件的解析是个大课题,远超一般人的预期.它远比发送邮件和接收邮件要复杂的多的多. 这就是为什么网上中文外文搜邮件的问题,绝大多数都是讲发送的而讲接收的很少. 发送邮件好说,接收和下载邮件也好说.关键是 ...
- 使用Gpg4Win+Outlook Express实现发送和接收加密邮件
一.Gpg4win3.0.3的安装和使用 1.软件简介 Gpg4win是一款Windows平台下基于RSA公钥密码体制,集密钥生成.存储.发布于一体的密钥管理和加解密软件.一共包含Gpg ...
- python读取邮件标题_Python连载57- 邮件头和主题、解析邮件
一.添加邮件头,抄送等信息 1.mail["From"]表示发送者信息,包括姓名和邮件 2.mail["To"]表示接收者信息,包括姓名和邮件地址 3.mail ...
最新文章
- 自定义数字格式字符串输出示例
- 界面之间是如何传值的
- USACO翻译:USACO 2014 FEB SILVER 三题
- 面向对象的需求分析方法
- 利用curl验证ssl网站(webservice)
- libuv 和 libev的对比
- 思科3560交换机端口限速
- 插件开发之360 DroidPlugin源码分析(二)Hook机制
- linux 中文字体 推荐,适合阅读的中文字体
- 数字逻辑课程设计--数字钟的设计(quartus ii)(内附源代码和实习报告以及6篇实习日志)
- 数据库sql语句日期查询
- 神州计算机u盘启动,神州电脑如何使用U盘装系统
- MySQL(六)事物(ADID,四种隔离级别)(七)索引(索引测试,原则)
- 机器学习笔记:随机深度网络 stochastic depth
- 测试用例(功能用例)——资产盘点
- 企业转型升级,务必抓住“企业上云”政策红利
- 后期处理体积-电影校色
- linux命令查找软件,linux指令速查器下载
- 一个移动端开发者,对未来的思考
- python restful接口返回类型出错_使用Python和Flask返回API错误消息