Python操作电子邮件
SMTP 发送邮件
SMTP 是发送邮件的协议,Python 内置对 SMTP 的支持,可以发送纯文本邮件、HTML 邮件以及带附件的邮件。
Python 对 SMTP 支持有 smtplib 和 email 两个模块,email 负责构造邮件,smtplib 负责发送邮件。
POP3 收取邮件
收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上。收取邮件最常用的协议是POP协议,目前版本号是 3,俗称POP3。
Python 内置一个 poplib
模块,实现了 POP3 协议,可以直接用来收邮件。
注意到 POP3 协议收取的不是一个已经可以阅读的邮件本身,而是邮件的原始文本,这和 SMTP 协议很像,SMTP 发送的也是经过编码后的一大段文本。
要把 POP3 收取的文本变成可以阅读的邮件,还需要用 email
模块提供的各种类来解析原始文本,变成可阅读的邮件对象。
所以,收取邮件分两步:
- 第一步:用
poplib
把邮件的原始文本下载到本地; - 第二步:用
email
解析原始文本,还原为邮件对象。
本文由作者按照 CC BY 4.0 进行授权