在本教程中,您将学习如何使用poplib
模块来接收电子邮件。 邮件服务器需要支持 pop3,但是大多数邮件服务器都支持。邮局协议(POP3)仅用于接收邮件,发送时需要 SMTP 协议。
简化邮件服务器
元数据
每封电子邮件将包含许多变量,但是这些是最重要的变量:
特征 | 描述 |
---|---|
消息 ID | 唯一标识符 |
从 | 电子邮件来自哪里? |
至 | 电子邮件发送到哪里了? |
日期 | 日期 |
主题 | 电子邮件主题。 |
读取电子邮件示例
您可以使用邮局协议(协议)直接从邮件服务器请求消息。您不必担心内部协议,因为您可以使用poplib
模块。
使用以下方法连接服务器并进行身份验证:
# connect to server
server = poplib.POP3(SERVER)
# login
server.user(USER)
server.pass_(PASSWORD)
下面的程序从服务器获取 10 封电子邮件,包括邮件头
import poplib
import string, random
import StringIO, rfc822
def readMail():
SERVER = "YOUR MAIL SERVER"
USER = "YOUR USERNAME [email protected]COM"
PASSWORD = "YOUR PASSWORD"
# connect to server
server = poplib.POP3(SERVER)
# login
server.user(USER)
server.pass_(PASSWORD)
# list items on server
resp, 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, "=", v
readMail()