Получение отфильтрованных сообщений из файлов MBOX в Python
Фильтрация сообщений MBOX по теме и дате
Aspose.Email для Python через .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 для Python через .NET поддерживает постраничное чтение файлов MBOX, позволяя эффективно обрабатывать большие архивы писем. Вместо загрузки всего набора сообщений в память, вы можете получать сообщения небольшими, управляемыми партиями. Это особенно полезно при работе с очень большими архивными файлами, помогая уменьшить использование памяти и улучшить производительность обработки.
Следующие методы могут использоваться для постраничного получения сообщений MBOX:
-
enumerate_messages(start_index, count) - Получает определённое количество MailMessage экземпляры.
-
enumerate_message_info(start_index, count) - Получает соответствующие MboxMessageInfo объекты.
Следующий пример кода демонстрирует, как читать и извлекать сообщения из файла MBOX небольшими порциями с использованием библиотеки Aspose.Email:
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)