Filtrowanie i wyodrębnianie wiadomości MBOX
Rola filtrowania wiadomości
Podczas pracy z dużymi archiwami MBOX ładowanie każdej wiadomości do pamięci może być nieefektywne i zbędne. W większości przypadków programiści potrzebują jedynie przeszukać podstawowe metadane, takie jak temat, nadawca, odbiorca lub znacznik czasu, aby:
- Wyświetlenie listy wiadomości w interfejsie użytkownika
- Zastosowanie własnych filtrów przed wyodrębnieniem
- Generowanie raportów lub podsumowań
- Indeksowanie wiadomości do wyszukiwania
Filtrowanie eliminuje konieczność parsowania pełnych treści wiadomości lub załączników, co sprawia, że aplikacje są szybsze i bardziej skalowalne.
Dostęp do metadanych wiadomości
Aspose.Email udostępnia MboxMessageInfo klasa zaprojektowana do uzyskiwania podstawowych metadanych wiadomości bez wczytywania pełnej zawartości MailMessage. Działa jako obiekt podsumowujący i jest zwracana przy wywoływaniu MboxStorageReader.EnumerateMessageInfo().
Kluczowe właściwości udostępniane przez MboxMessageInfo aby pobrać informacje o wiadomości, uwzględnij:
- DateTime Date - Pobiera datę wiadomości
- MailAddress From - Pobiera adres nadawcy
- string Subject - Pobiera temat wiadomości
- MailAddressCollection Do - Pobiera kolekcję adresów zawierającą odbiorców wiadomości
- MailAddressCollection CC - Pobiera kolekcję adresów zawierającą odbiorców DW (CC)
- MailAddressCollection Bcc - Pobiera kolekcję adresów zawierającą odbiorców ukrytych (BCC) wiadomości
MboxStorageReader reader = MboxStorageReader.CreateReader(fileName, new MboxLoadOptions());
foreach (var mboxMessageInfo in reader.EnumerateMessageInfo())
{
Console.Writeline($"Subject: {mboxMessageInfo.Subject}");
Console.Writeline($"Date: {mboxMessageInfo.Date}");
Console.Writeline($"From: {mboxMessageInfo.From}");
Console.Writeline($"To: {mboxMessageInfo.To}");
Console.Writeline($"CC: {mboxMessageInfo.CC}");
Console.Writeline($"Bcc: {mboxMessageInfo.Bcc}");
}
Wyodrębnianie wiadomości po EntryId
Ten MboxStorageReader klasa zawiera EnumerateMessageInfo() metoda, która umożliwia iterację po każdej wiadomości w pliku MBOX. Korzystając z tej metody, można wyodrębnić poszczególne wiadomości bez konieczności wielokrotnego przeglądania całego magazynu. Poprawia to wydajność i skraca czas przetwarzania.
Ten MboxMessageInfo klasa udostępnia EntryId właściwość, która zapewnia dostęp do unikalnych identyfikatorów każdej wiadomości w pliku MBOX. Ten identyfikator może być przechowywany w bazie danych lub używany jako odniesienie do szybkiego znajdowania i wyodrębniania konkretnych wiadomości w razie potrzeby.
Ten ExtractMessage(string id) metoda w MboxStorageReader klasa umożliwia programistom wyodrębnianie wiadomości na podstawie ich unikalnego EntryId. Z ExtractMessage(string id) metoda, możesz wykorzystać zapisany EntryId do pobrania odpowiadającej wiadomości i wykonania dodatkowych operacji.
Poniższy przykład kodu demonstruje, jak wyodrębnić wiadomości z pliku MBOX przy użyciu identyfikatorów:
MboxStorageReader reader = MboxStorageReader.CreateReader("my.mbox", new MboxLoadOptions());
foreach (MboxMessageInfo msgInfo in reader.EnumerateMessageInfo())
{
MailMessage eml = reader.ExtractMessage(msgInfo.EntryId, new EmlLoadOptions());
}
Filtrowanie i wyszukiwanie e‑maili MBOX przy użyciu MailQuery
Aspose.Email dla .NET zapewnia możliwość filtrowania lub wyszukiwania wiadomości w archiwach skrzynek pocztowych na podstawie własnych zapytań. Pozwala to programistom pobierać tylko te wiadomości, które spełniają określone kryteria, poprawiając wydajność i użyteczność przy pracy z dużymi plikami archiwów e‑mail.
Poniższy przykład kodu demonstruje, jak zastosować kryteria wyszukiwania do pliku przechowującego pocztę za pomocą API MailQuery. W tym przykładzie wybrano wiadomości, których temat zawiera frazę „Project Update” i które zostały wysłane przed dzisiejszą datą.
using Aspose.Email.Storage.Mbox;
using Aspose.Email;
var reader = MboxStorageReader.CreateReader("input.mbox", new MboxLoadOptions());
var mqb = new MailQueryBuilder();
mqb.Subject.Contains("Project Update");
mqb.SentDate.Before(DateTime.Today);
foreach (var message in reader.EnumerateMessages(mqb.GetQuery()))
{
Console.WriteLine("Subject: " + message.Subject);
}
Skonfiguruj opcje ładowania przy odczycie wiadomości z MBOX
Poniższe funkcje umożliwią określenie różnych opcji związanych z ładowaniem i przetwarzaniem wiadomości:
-
Właściwość MailStorageConverter.MboxMessageOptions – pobiera lub ustawia opcje ładowania e‑maili podczas parsowania magazynu Mbox.
-
Metoda MboxrdStorageReader.ReadNextMessage(EmlLoadOptions options) – parametr EmlLoadOptions określa opcje podczas odczytu wiadomości z magazynu Mbox.
var reader = new MboxrdStorageReader(fileName, new MboxLoadOptions());
// Read messages preserving tnef attachments.
var eml = reader.ReadNextMessage(new EmlLoadOptions {PreserveTnefAttachments = true});
MailStorageConverter.MboxMessageOptions(new EmlLoadOptions {PreserveTnefAttachments = true});
// Convert messages from mbox to pst preserving tnef attachments.
var pst = MailStorageConverter.mboxToPst("Input.mbox", "Output.pst");