邮件接收

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接收、解析邮件相关推荐

  1. c# 收取邮件 解析_c# 使用NetStream接收 解析邮件

    POP3(邮局协议3)是一种标准协议的最新版本接收电子邮件.POP3是一种客户机/服务器协议收到的电子邮件和为你了你的网络服务器.定期,你(或你的客户邮件收件人)检查你的信箱在服务器和下载任何邮件,可 ...

  2. 在线查询解析邮件接收的邮件

    在线查询解析邮件接收的邮件 依赖 <dependency><groupId>javax.activation</groupId><artifactId> ...

  3. Python实现IMAP协议接收并解析邮件内容

    Python实现IMAP协议接收并解析邮件内容 **前言:**昨天接到这个任务,然后搜索了很多资料和博客去看,这些资料链接我会放在本文后面 一.开通IMAP服务 我以网页邮箱(163邮箱为例) 1.登 ...

  4. 钉钉机器人关键词应答_Gmail 邮件推送到钉钉群机器人(详细)教程|国内接收 Gmail 邮件...

    做这个功能费了我老大劲了,首先想到的还是利用现成的软件,尝试了一圈发现都不满意.然后不想重复造轮子,就搜索如何把 Gmail 推送到钉钉,结果只搜到了诸如 Python 如何调用 Gmail API. ...

  5. java 读取邮件正文_JavaMail入门第五篇 解析邮件

    上一篇JavaMail入门第四篇 接收邮件中,控制台打印出的内容,我们无法阅读,其实,让我们自己来解析一封复杂的邮件是很不容易的,邮件里面格式.规范复杂得很.不过,我们所用的浏览器内置了解析各种数据类 ...

  6. spring boot 中使用 POP3协议读取并解析邮件

    spring boot 中使用 POP3协议读取并解析邮件 1.邮箱授权 QQ邮箱授权,打开 "设置" 切换到 "账户" 找到下图中设置,开启 "PO ...

  7. python 邮件解析_Python解析邮件

    邮件的解析是个大课题,远超一般人的预期.它远比发送邮件和接收邮件要复杂的多的多. 这就是为什么网上中文外文搜邮件的问题,绝大多数都是讲发送的而讲接收的很少. 发送邮件好说,接收和下载邮件也好说.关键是 ...

  8. 使用Gpg4Win+Outlook Express实现发送和接收加密邮件

    一.Gpg4win3.0.3的安装和使用        1.软件简介 Gpg4win是一款Windows平台下基于RSA公钥密码体制,集密钥生成.存储.发布于一体的密钥管理和加解密软件.一共包含Gpg ...

  9. python读取邮件标题_Python连载57- 邮件头和主题、解析邮件

    一.添加邮件头,抄送等信息 1.mail["From"]表示发送者信息,包括姓名和邮件 2.mail["To"]表示接收者信息,包括姓名和邮件地址 3.mail ...

最新文章

  1. 自定义数字格式字符串输出示例
  2. 界面之间是如何传值的
  3. USACO翻译:USACO 2014 FEB SILVER 三题
  4. 面向对象的需求分析方法
  5. 利用curl验证ssl网站(webservice)
  6. libuv 和 libev的对比
  7. 思科3560交换机端口限速
  8. 插件开发之360 DroidPlugin源码分析(二)Hook机制
  9. linux 中文字体 推荐,适合阅读的中文字体
  10. 数字逻辑课程设计--数字钟的设计(quartus ii)(内附源代码和实习报告以及6篇实习日志)
  11. 数据库sql语句日期查询
  12. 神州计算机u盘启动,神州电脑如何使用U盘装系统
  13. MySQL(六)事物(ADID,四种隔离级别)(七)索引(索引测试,原则)
  14. 机器学习笔记:随机深度网络 stochastic depth
  15. 测试用例(功能用例)——资产盘点
  16. 企业转型升级,务必抓住“企业上云”政策红利
  17. 后期处理体积-电影校色
  18. linux命令查找软件,linux指令速查器下载
  19. 一个移动端开发者,对未来的思考
  20. python restful接口返回类型出错_使用Python和Flask返回API错误消息

热门文章

  1. (转)js实现继承的5种方式
  2. android volley http请求框架
  3. Java 获取本机IP和Mac以及网卡信息
  4. linux的 su 错误 Permission denied 和 Incorrect pa...
  5. CISSP考试通过,现在开始接受各种恭喜。[10-50]
  6. 【推荐】查找一代用户出口Userexit
  7. 使用程序创建数据库表
  8. 物料自运过帐的模拟和修正
  9. 22、Power Query-文本字符的精确提取
  10. SAP Varient Configuration Type SAP变量配置类型