原文: https://pythonspot.com/read-email-pop3/

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

读取电子邮件,pop3 - 图1

简化邮件服务器

元数据

每封电子邮件将包含许多变量,但是这些是最重要的变量:

特征 描述
消息 ID 唯一标识符
电子邮件来自哪里?
电子邮件发送到哪里了?
日期 日期
主题 电子邮件主题。

读取电子邮件示例

您可以使用邮局协议(协议)直接从邮件服务器请求消息。您不必担心内部协议,因为您可以使用poplib模块。

使用以下方法连接服务器并进行身份验证:

  1. # connect to server
  2. server = poplib.POP3(SERVER)
  3. # login
  4. server.user(USER)
  5. server.pass_(PASSWORD)

下面的程序从服务器获取 10 封电子邮件,包括邮件头

  1. import poplib
  2. import string, random
  3. import StringIO, rfc822
  4. def readMail():
  5. SERVER = "YOUR MAIL SERVER"
  6. USER = "YOUR USERNAME [email protected]COM"
  7. PASSWORD = "YOUR PASSWORD"
  8. # connect to server
  9. server = poplib.POP3(SERVER)
  10. # login
  11. server.user(USER)
  12. server.pass_(PASSWORD)
  13. # list items on server
  14. resp, items, octets = server.list()
  15. for i in range(0,10):
  16. id, size = string.split(items[i])
  17. resp, text, octets = server.retr(id)
  18. text = string.join(text, "\n")
  19. file = StringIO.StringIO(text)
  20. message = rfc822.Message(file)
  21. for k, v in message.items():
  22. print k, "=", v
  23. readMail()