在本文中,您将学习如何以编程方式从邮件服务器中检索电子邮件。特别是,您将了解如何使用 IMAPPOP3 协议连接到邮件服务器并在 Python 中阅读电子邮件。

使用 POP3 或 IMAP 读取电子邮件的 Python 库

为了使用 POP3 或 IMAP 从邮件服务器读取电子邮件,我们将使用 Aspose.Email for Python via .NET。它是一个功能丰富的电子邮件库,可让您在 Python 应用程序中实现电子邮件客户端。您可以 下载 .whl 文件或使用以下 pip 命令安装库。

> pip install Aspose.Email-for-Python-via-NET

在 Python 中从邮件服务器读取电子邮件

POP3 和 IMAP 通常用于从邮件服务器检索电子邮件。以下部分演示如何分别使用两种电子邮件协议阅读电子邮件。

在 Python 中使用 POP3 阅读电子邮件

以下是在 Python 中使用 POP3 阅读电子邮件的步骤。

  • 创建一个 Pop3Client 类的对象,并使用主机、端口、用户名和密码对其进行初始化。
  • 使用 Pop3Client.securityoptions 属性设置安全选项。
  • 使用 Pop3Client.getmessagecount() 方法获取消息计数。
  • 使用 Pop3Client.fetchmessage() 方法循环访问每条消息。

以下代码示例展示了如何在 Python 中使用 POP3 阅读电子邮件。

# 创建 POP3 客户端
client = Pop3Client("pop.gmail.com", 995, "username", "password")

# 设置安全选项
client.security_options = SecurityOptions.AUTO

# 获取消息计数
messageCount = client.get_message_count()
print("Total messages: " + str(messageCount))

# 创建 MailMessage 类的实例以读取消息    
for i in range(0,messageCount):
    message = client.fetch_message(i+1)
    print("From:" + str(message.from_address))
    print("Subject:" + message.subject)
    print(message.html_body)

在 Python 中使用 IMAP 读取电子邮件

以下是在 Python 中使用 IMAP 阅读电子邮件的步骤。

  • 创建 ImapClient 类的对象并使用主机、端口、用户名和密码对其进行初始化。
  • 使用 ImapClient.selectfolder(folderName) 方法选择文件夹。
  • 使用 ImapClient.listmessages() 方法遍历消息列表。

以下代码示例展示了如何在 Python 中使用 IMAP 读取电子邮件。

# 使用 IMAP 连接到邮件服务器
client = ImapClient("imap.gmail.com", 993, "username", "password")

# 选择文件夹
client.select_folder("Inbox")

# 循环浏览电子邮件并将它们保存为 .eml 文件
for msg in client.list_messages():
    print("Subject: " + msg.subject)
    print("HtmlBody: " + msg.html_body)
    print("TextBody: " + msg.body)
    client.save_message(msg.unique_id, msg.unique_id + "_out.eml")

Python 电子邮件库 - 获得免费许可证

您可以通过获取 免费临时许可证 来使用 Aspose.Email for Python。

结论

在本文中,您学习了如何使用 Python 从邮件服务器读取电子邮件。特别是,您已经了解了如何使用 POP3 和 IMAP 客户端来获取和阅读电子邮件消息。您可以使用 文档 探索有关 Python 电子邮件库的更多信息。此外,您可以在我们的 论坛 上发布您的查询。

也可以看看