在 Python 中从 MBOX 文件检索过滤后的消息
Contents
[
Hide
]
按主题和日期筛选 MBOX 消息
Aspose.Email for Python via .NET 提供了使用查询在 MBOX 文件中筛选或搜索消息的功能。以下方法允许您仅检索符合特定条件的消息:
- EnumerateMessages(MailQuery query) - 返回一个可枚举的集合 MailMessage 匹配指定查询的实例。
- EnumerateMessageInfo(MailQuery query) - 返回一个可枚举的集合 MboxMessageInfo 匹配指定查询的实例。
下面的代码示例将展示如何在消息过滤中使用这些方法:
import datetime
from aspose.email.storage.mbox import MboxStorageReader, MboxLoadOptions
from aspose.email import MailQueryBuilder
# Create an MBOX reader with load options
reader = MboxStorageReader.create_reader("input.mbox", MboxLoadOptions())
# Build the mail query
mqb = MailQueryBuilder()
mqb.subject.contains("Project Update")
mqb.sent_date.before(datetime.date.today())
# Iterate over matching messages
for message in reader.enumerate_messages(mqb.get_query()):
print("Subject:", message.subject)
分页检索 MBOX 消息
Aspose.Email for Python via .NET 支持对 MBOX 文件进行分页读取,从而高效处理大型电子邮件归档。无需将整个消息集合加载到内存中,而是可分批检索较小、可管理的消息批次。这在处理非常大的归档文件时尤为有用,有助于降低内存占用并提升处理性能。
以下方法可用于分页检索 MBOX 消息:
-
enumerate_messages(start_index, count) - 检索特定数量的 MailMessage 实例。
-
enumerate_message_info(start_index, count) - 检索对应的 MboxMessageInfo 对象。
以下代码示例演示如何使用 Aspose.Email 库以可管理的块读取并检索 MBOX 文件中的消息:
from aspose.email.storage.mbox import MboxStorageReader, MboxLoadOptions
# Initialize MBOX reader with load options
reader = MboxStorageReader.create_reader("input.mbox", MboxLoadOptions())
# Define pagination parameters
start_index = 0
count = 10 # Retrieve messages in batches of 10
# Enumerate and display messages in the current batch
for message in reader.enumerate_messages(start_index, count):
print("Subject:", message.subject)