Gefilterte Nachrichten aus MBOX‑Dateien in Python abrufen

MBOX-Nachrichten nach Betreff und Datum filtern

Aspose.Email für Python über .NET bietet die Möglichkeit, Nachrichten in MBOX‑Dateien mithilfe einer Abfrage zu filtern oder zu durchsuchen. Die folgenden Methoden ermöglichen es Ihnen, nur jene Nachrichten abzurufen, die bestimmten Kriterien entsprechen:

Das untenstehende Codebeispiel zeigt Ihnen, wie Sie diese Methoden bei der Nachrichtenfilterung verwenden:

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)

Paginierte Abrufe von MBOX-Nachrichten

Aspose.Email für Python via .NET unterstützt das paginierte Lesen von MBOX‑Dateien, wodurch eine effiziente Verarbeitung großer E‑Mail‑Archive ermöglicht wird. Anstatt das gesamte Nachrichtenset in den Speicher zu laden, können Sie Nachrichten in kleineren, handhabbaren Chargen abrufen. Dies ist besonders nützlich beim Umgang mit sehr großen Archivdateien und hilft, den Speicherverbrauch zu reduzieren sowie die Verarbeitungsleistung zu verbessern.

Die folgenden Methoden können für die paginierte MBOX‑Nachrichtenabfrage verwendet werden:

Das folgende Code‑Beispiel demonstriert, wie man Nachrichten aus einer MBOX‑Datei in handhabbaren Portionen mithilfe der Aspose.Email‑Bibliothek liest und abruft:

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)