Отримати відфільтровані повідомлення з файлів 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)