前提条件
相关介绍
- Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
- POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。
- Python 内置一个 poplib 模块,实现了 POP3 协议,可以直接用来收邮件。
- POP3 协议收取的不是一个已经可以阅读的邮件本身,而是邮件的原始文本,这和 SMTP 协议很像,SMTP 发送的也是经 过编码后的一大段文本。要把 POP3 收取的文本变成可以阅读的邮件,还需要用 email 模块提供的各种 类来解析原始文本,变成可阅读的邮件对象。
- Email模块是一个用于管理电子邮件消息的库。
- 下图来源于《计算机网络(第7版)- 谢希仁》
实验环境
- Python 3.x (面向对象的高级语言)
- Emain 3.141.0 (python第三方库)
- Smtplib (python标准库)
- Poplib (python标准库)
读取邮件
获取邮箱授权码
以QQ邮箱为例,登录QQ邮箱->设置->账号->开启POP3/SMTP服务->生成授权码



主要步骤
- 第一步:用 poplib 获取邮件的原始文本。
- 第二步:用 email 解析原始文本,还原为邮件对象。
代码实现
# -*- coding: utf-8 -*-
"""
Created on 2022/03/18 12:00:00
@author: TFX
"""
import poplib
from email.parser import Parser
from email.header import decode_header
from email.utils import parseaddr
def get_origin_text(): # 获取邮件原始文本
# 连接到POP3服务器
pop_server = poplib.POP3("pop.qq.com")
# 邮箱号
pop_server.user("********@qq.com"

本文介绍了如何使用Python的poplib和email模块收取并解析邮件。首先,需要开启邮箱的POP3服务并获取授权码。接着,通过poplib连接到POP3服务器,获取邮件原始文本,然后利用email模块解析邮件头和正文,包括解码字符串、获取发件人、收件人、主题等信息。最后,展示了代码实现和输出结果。


最低0.47元/天 解锁文章
2000





