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