Recuperar mensagens filtradas de arquivos MBOX em Python
Filtrar Mensagens MBOX por Assunto e Data
Aspose.Email para Python via .NET oferece a capacidade de filtrar ou pesquisar mensagens dentro de arquivos MBOX usando uma consulta. Os métodos a seguir permitem que você recupere apenas as mensagens que correspondem a critérios específicos:
- EnumerateMessages(MailQuery query) - retorna uma coleção enumerável de MailMessage instâncias que correspondem à consulta especificada.
- EnumerateMessageInfo(MailQuery query) - retorna uma coleção enumerável de MboxMessageInfo instâncias que correspondem à consulta especificada.
O exemplo de código abaixo mostrará como usar esses métodos na filtragem de mensagens:
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)
Recuperação Paginada de Mensagens MBOX
O Aspose.Email para Python via .NET suporta leitura paginada de arquivos MBOX, permitindo o processamento eficiente de grandes arquivos de e‑mail. Em vez de carregar todo o conjunto de mensagens na memória, você pode recuperar mensagens em lotes menores e manejáveis. Isso é especialmente útil ao lidar com arquivos de arquivo muito grandes, ajudando a reduzir o uso de memória e melhorar o desempenho durante o processamento.
Os métodos a seguir podem ser usados para a recuperação paginada de mensagens MBOX:
-
enumerate_messages(start_index, count) - Recupera um número específico de MailMessage instâncias.
-
enumerate_message_info(start_index, count) - Recupera correspondentes MboxMessageInfo objetos.
O exemplo de código a seguir demonstra como ler e recuperar mensagens de um arquivo MBOX em blocos manejáveis usando a biblioteca 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)