Pobieranie filtrowanych wiadomości z plików MBOX w Pythonie
Filtrowanie wiadomości MBOX według tematu i daty
Aspose.Email dla Pythona poprzez .NET zapewnia możliwość filtrowania lub wyszukiwania wiadomości w plikach MBOX przy użyciu zapytania. Poniższe metody pozwalają pobrać tylko te wiadomości, które spełniają określone kryteria:
- EnumerateMessages(MailQuery query) - zwraca kolekcję wyliczalną MailMessage instancje, które spełniają określone zapytanie.
- EnumerateMessageInfo(MailQuery query) - zwraca kolekcję wyliczalną MboxMessageInfo instancje, które spełniają określone zapytanie.
Poniższy przykład kodu pokaże, jak używać tych metod w filtrowaniu wiadomości:
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)
Stronicowane pobieranie wiadomości MBOX
Aspose.Email dla Pythona via .NET obsługuje paginowane czytanie plików MBOX, umożliwiając efektywne przetwarzanie dużych archiwów e-maili. Zamiast ładować cały zestaw wiadomości do pamięci, możesz pobierać wiadomości w mniejszych, łatwych do obsługi partiach. Jest to szczególnie przydatne przy pracy z bardzo dużymi plikami archiwów, pomagając zmniejszyć użycie pamięci i poprawić wydajność przetwarzania.
Poniższe metody mogą być użyte do paginowanego pobierania wiadomości MBOX:
-
enumerate_messages(start_index, count) - Pobiera określoną liczbę MailMessage instancje.
-
enumerate_message_info(start_index, count) - Pobiera odpowiadające MboxMessageInfo obiekty.
Poniższy przykład kodu demonstruje, jak odczytywać i pobierać wiadomości z pliku MBOX w łatwych do zarządzania fragmentach przy użyciu biblioteki 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)