在本教程中,您将学习如何使用poplib模块来接收电子邮件。 邮件服务器需要支持 pop3,但是大多数邮件服务器都支持。邮局协议(POP3)仅用于接收邮件,发送时需要 SMTP 协议。

简化邮件服务器
元数据
每封电子邮件将包含许多变量,但是这些是最重要的变量:
| 特征 | 描述 |
|---|---|
| 消息 ID | 唯一标识符 |
| 从 | 电子邮件来自哪里? |
| 至 | 电子邮件发送到哪里了? |
| 日期 | 日期 |
| 主题 | 电子邮件主题。 |
读取电子邮件示例
您可以使用邮局协议(协议)直接从邮件服务器请求消息。您不必担心内部协议,因为您可以使用poplib模块。
使用以下方法连接服务器并进行身份验证:
# connect to serverserver = poplib.POP3(SERVER)# loginserver.user(USER)server.pass_(PASSWORD)
下面的程序从服务器获取 10 封电子邮件,包括邮件头
import poplibimport string, randomimport StringIO, rfc822def readMail():SERVER = "YOUR MAIL SERVER"USER = "YOUR USERNAME [email protected]COM"PASSWORD = "YOUR PASSWORD"# connect to serverserver = poplib.POP3(SERVER)# loginserver.user(USER)server.pass_(PASSWORD)# list items on serverresp, items, octets = server.list()for i in range(0,10):id, size = string.split(items[i])resp, text, octets = server.retr(id)text = string.join(text, "\n")file = StringIO.StringIO(text)message = rfc822.Message(file)for k, v in message.items():print k, "=", vreadMail()
