Извличане на филтрирани съобщения от 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)