邮件协议
发送邮件的协议
- SMTP (Simple Mail Transfer Protocol)
- 用途: 用于发送电子邮件.
- 端口: 默认端口是 25,使用 SSL/TLS 的端口是 465,使用 STARTTLS 的端口是 587.
- 特点: 是一种相对简单的文本协议,客户端发送邮件到服务器,服务器再转发到目标服务器.
- 支持基本的身份验证和加密.
接收邮件的协议
-
POP3 (Post Office Protocol version 3)
- 用途: 用于从邮件服务器接收电子邮件.
- 端口: 默认端口是 110,使用 SSL/TLS 的端口是 995.
- 特点: POP3 协议通常会将邮件从服务器下载到本地,并默认删除服务器上的邮件(可以配置为不删除).
- 适合在单一设备上访问邮件,且不需要在服务器上保留邮件.
-
IMAP (Internet Message Access Protocol)
- 用途: 用于从邮件服务器接收和管理电子邮件.
- 端口: 默认端口是 143,使用 SSL/TLS 的端口是 993.
- 特点: IMAP 允许用户在服务器上管理邮件,支持多设备同步.
- 用户可以在服务器上创建文件夹、搜索邮件、标记邮件等.
- 更适合现代多设备、多位置的邮件访问需求.
其他相关协议
-
MIME (Multipurpose Internet Mail Extensions)
- 用途: 用于扩展电子邮件的功能,使其能够处理文本、图像、音频、视频等多种类型的数据.
- 特点: 定义了邮件的内容类型和编码方式,使得邮件可以包含非 ASCII 字符和附件.
- MIME 是一种内容描述协议,与 SMTP、IMAP 和 POP3 协同工作.
-
S/MIME (Secure/Multipurpose Internet Mail Extensions)
- 用途: 用于对电子邮件进行加密和签名,提供安全的电子邮件传输.
- 特点: 提供邮件的加密和数字签名,确保邮件内容的机密性和完整性.
- 基于 MIME,扩展了 MIME 的功能.
协议的选择
- SMTP 是发送邮件的标准协议,几乎所有的邮件客户端和服务器都支持.
- POP3 适合只在一个设备上访问邮件,且不需要在服务器上保留邮件的用户.
- IMAP 更适合在多个设备上同步邮件,且需要在服务器上管理邮件的用户.
- MIME 和 S/MIME 提供了对邮件内容类型的支持和安全性扩展,是现代邮件系统的重要组成部分.
这些协议共同构成了电子邮件系统的基础,确保了邮件的可靠发送、接收和管理.
Python邮件处理库
发送邮件
-
smtplib
- smtplib 是 Python 标准库的一部分,用于发送邮件. 它实现了 SMTP 协议,适用于大多数发送邮件的场景.
-
yagmail
- yagmail 是一个更高级的库,简化了发送邮件的过程,特别适用于 Gmail 用户.
接收邮件
-
imaplib
- imaplib 是 Python 标准库的一部分,用于接收邮件. 它实现了 IMAP 协议,可以用来读取邮件.
-
mailbox
- mailbox 是一个标准库,用于处理本地存储的邮件(如 mbox 文件).
-
IMAPClient
- 是对 imaplib 的封装,在此基础上做了很多解析,错误处理的工作,易于使用,降低了出错概率.
综合处理邮件
- imbox
- imbox 是一个第三方库,提供了更高层次的 API 来处理 IMAP 邮件操作.
邮件解析
- 字段解析库
- mailparser
- mail-parser 不仅是电子邮件 Python 标准库的包装器. 它为您提供了一种从原始邮件传递到 Python 对象的简单方法,您可以在代码中使用该对象.
- mailparser