在各种情况下,从 Python 应用程序中访问电子邮件服务器以读取电子邮件或实现电子邮件客户端。为了从电子邮件服务器检索电子邮件,通常使用 Internet 消息访问协议 (IMAP) 协议。在本文中,我们将向您展示如何在 Python 中通过 IMAP 阅读电子邮件。本文将明确介绍如何连接到电子邮件服务器、访问所需的文件夹以及阅读电子邮件。
通过 IMAP 读取电子邮件的 Python 库 - 免费下载
要通过 IMAP 从电子邮件服务器读取电子邮件,我们将使用 Aspose.Email for Python via .NET。它是一个功能强大的电子邮件库,可让您从电子邮件服务器发送电子邮件和访问邮箱。您可以使用以下命令从 PyPI 安装库。
pip install Aspose.Email-for-Python-via-NET
对于使用 .whl 文件的手动安装,您可以按照以下步骤操作。
- 从 下载 部分下载可安装的 .whl 文件。
- 从命令行,使用命令: pip install «FileName> >.whl 安装库。
在 Python 中通过 IMAP 连接到电子邮件服务器
以下是使用 IMAP 连接到电子邮件服务器的步骤。
- 创建 ImapClient 类的实例并使用主机名、端口、用户名和密码对其进行初始化。
- 使用 ImapClient 对象访问邮箱。
以下代码示例展示了如何在 Python 中使用 IMAP 连接到电子邮件服务器。
from aspose.email import SecurityOptions, ImapClient
# 创建 ImapClient 实例并提供主机、端口、用户名和密码
client = ImapClient("imap.domain.com", 993, "user@domain.com", "password")
# 设置安全选项
client.security_options = SecurityOptions.SSLIMPLICIT
# 使用 ImapClient 对象访问邮箱
Python:访问邮箱中的电子邮件文件夹
建立与电子邮件服务器的连接后,您可以选择要从中读取电子邮件的文件夹。我们先来看看如何获取邮箱中所有文件夹的列表。以下是获取有关每个文件夹的信息的步骤。
- 创建 ImapClient 类的实例并使用主机名、端口、用户名和密码对其进行初始化。
- 使用 ImapClient.listfolders() 方法获取对象中的文件夹集合。
- 遍历集合并检索文件夹的详细信息。
以下代码示例显示了如何打印邮箱中文件夹的详细信息。
from aspose.email import ImapClient
# 创建 ImapClient 实例并提供主机、端口、用户名和密码
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# 获取文件夹列表
folderInfoColl = client.list_folders()
# 遍历集合以一一获取文件夹的信息
for folderInfo in folderInfoColl:
print("Folder name is " + folderInfo.name)
folderExtInfo = client.get_folder_info(folderInfo.name)
print("New message count: " + str(folderExtInfo.new_message_count))
print("Is it readonly? " + str(folderExtInfo.read_only))
print("Total number of messages " + str(folderExtInfo.total_message_count))
现在让我们继续使用 IMAP 访问邮箱中的特定文件夹。
- 创建 ImapClient 类的实例并使用主机名、端口、用户名和密码对其进行初始化。
- 使用 ImapClient.selectfolder(string) 方法选择文件夹。
以下代码示例显示如何从邮箱中选择电子邮件文件夹。
from aspose.email import ImapClient
# 创建 ImapClient 实例并提供主机、端口、用户名和密码
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# 从邮箱中选择文件夹
client.select_folder("Inbox")
在 Python 中从文件夹中读取电子邮件
以下是使用 Python 从邮箱中特定文件夹读取电子邮件的步骤。
- 创建 ImapClient 类的实例并使用主机名、端口、用户名和密码对其进行初始化。
- 使用 ImapClient.selectfolder(string) 方法选择文件夹。
- 使用 client.listmessages() 方法获取文件夹中的消息列表。
- 循环遍历消息集合。
- 获取每封电子邮件的详细信息并将其保存到磁盘(如果需要)。
以下代码示例展示了如何在 Python 中从电子邮件服务器读取电子邮件。
from aspose.email import ImapClient
# 创建 ImapClient 实例并提供主机、端口、用户名和密码
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# 选择文件夹
client.select_folder("Inbox")
# 阅读集合中的每条消息
for msg in client.list_messages():
print( "From: '{}', MIME Id: {}".format(msg.from_address, msg.message_id) )
# 将消息保存在磁盘上
client.save_message(msg.unique_id, msg.unique_id + "_out.eml")
通过 IMAP 读取电子邮件的 Python 库 - 获得免费许可证
您可以通过 IMAP 使用 Aspose.Email for Python 免费阅读电子邮件,方法是 获得临时许可证。
结论
在本文中,您学习了如何在 Python 中使用 IMAP 从电子邮件服务器读取电子邮件。代码示例演示了如何连接到电子邮件服务器、获取邮箱中的文件夹列表、选择文件夹和阅读电子邮件。此外,您可以访问 文档 以通过 .NET 探索更多有关 Aspose.Email for Python 的信息。此外,您可以从 GitHub 下载完整的源代码示例包。如果您有任何问题或疑问,请随时通过我们的 论坛 告诉我们。