Получение отфильтрованных сообщений из файлов MBOX в Python

Фильтрация сообщений MBOX по теме и дате

Aspose.Email для Python через .NET предоставляет возможность фильтровать или искать сообщения в файлах MBOX с помощью запроса. Ниже приведённые методы позволяют получать только те сообщения, которые соответствуют определённым критериям:

Пример кода ниже покажет, как использовать эти методы при фильтрации сообщений:

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:

Следующий пример кода демонстрирует, как читать и извлекать сообщения из файла 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)