Hämta filtrerade meddelanden från MBOX‑filer i Python
Filtrera MBOX-meddelanden efter ämne och datum
Aspose.Email för Python via .NET ger möjlighet att filtrera eller söka meddelanden i MBOX-filer med en fråga. Följande metoder låter dig hämta endast de meddelanden som matchar specifika kriterier:
- EnumerateMessages(MailQuery query) - returnerar en enumererbar samling av MailMessage instanser som matchar den angivna frågan.
- EnumerateMessageInfo(MailQuery query) - returnerar en enumererbar samling av MboxMessageInfo instanser som matchar den angivna frågan.
Kodexemplet nedan visar hur du använder dessa metoder för meddelandefiltrering:
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)
Paginerad hämtning av MBOX-meddelanden
Aspose.Email för Python via .NET stöder paginerad läsning av MBOX‑filer, vilket möjliggör effektiv behandling av stora e‑postarkiv. Istället för att ladda hela meddelandemängden i minnet kan du hämta meddelanden i mindre, hanterbara batchar. Detta är särskilt användbart när du hanterar mycket stora arkivfiler, vilket hjälper till att minska minnesanvändning och förbättra prestanda under bearbetning.
Följande metoder kan användas för paginerad hämtning av MBOX‑meddelanden:
-
enumerate_messages(start_index, count) - Hämtar ett specifikt antal MailMessage instanser.
-
enumerate_message_info(start_index, count) - Hämtar motsvarande MboxMessageInfo objekt.
Följande kodexempel demonstrerar hur man läser och hämtar meddelanden från en MBOX‑fil i hanterbara delar med hjälp av Aspose.Email‑biblioteket:
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)