Filtrování a extrakce zpráv MBOX
Role filtrování zpráv
Při práci s velkými archivy MBOX může načítání každé zprávy do paměti být neefektivní a zbytečné. Většinou vývojáři potřebují pouze projít základní metadata, jako je předmět, odesílatel, příjemce nebo časové razítko, aby:
- Zobrazit seznam zpráv v uživatelském rozhraní
- Použít vlastní filtry před extrakcí
- Generovat zprávy nebo souhrny
- Indexovat zprávy pro vyhledávání
Filtrování eliminuje zátěž spojenou s parsováním celých těles zpráv nebo příloh, což činí aplikace rychlejší a škálovatelnější.
Přístup k metadatům zprávy
Aspose.Email poskytuje MboxMessageInfo třída navržená pro přístup k základním metadatům zprávy bez čtení celého obsahu MailMessage. Funguje jako objekt shrnutí a je vrácena při volání MboxStorageReader.EnumerateMessageInfo().
Klíčové vlastnosti vystavené MboxMessageInfo k získání informací o zprávě zahrnout:
- DateTime Date - Získá datum zprávy
- MailAddress From - Získá adresu odesílatele
- string Subject - Získá předmět zprávy
- MailAddressCollection To - Získá kolekci adres, která obsahuje příjemce zprávy
- MailAddressCollection CC - Získá kolekci adres, která obsahuje CC příjemce
- MailAddressCollection Bcc - Získá kolekci adres, která obsahuje BCC příjemce zprávy
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}");
}
Extrahování zpráv podle EntryId
The MboxStorageReader třída zahrnuje EnumerateMessageInfo() metodou, která vám umožní iterovat přes každou zprávu v souboru MBOX. Použitím této metody je možné extrahovat jednotlivé zprávy bez nutnosti opakovaně procházet celé úložiště. To zvyšuje výkon a snižuje dobu zpracování.
The MboxMessageInfo třída poskytuje EntryId vlastnost, která poskytuje přístup k jedinečným identifikátorům každé zprávy v souboru MBOX. Tento identifikátor může být uložen v databázi nebo použit jako reference pro rychlé vyhledání a extrahování konkrétních zpráv podle potřeby.
The ExtractMessage(string id) metodou v MboxStorageReader třída umožňuje vývojářům extrahovat zprávy na základě jejich jedinečného EntryId. S ExtractMessage(string id) metodou můžete využít uložený EntryId k získání odpovídající zprávy a provést s ní další operace.
Následující ukázkový kód demonstruje, jak extrahovat zprávy ze souboru MBOX pomocí identifikátorů:
MboxStorageReader reader = MboxStorageReader.CreateReader("my.mbox", new MboxLoadOptions());
foreach (MboxMessageInfo msgInfo in reader.EnumerateMessageInfo())
{
MailMessage eml = reader.ExtractMessage(msgInfo.EntryId, new EmlLoadOptions());
}
Filtrování a vyhledávání e‑mailů MBOX pomocí MailQuery
Aspose.Email pro .NET poskytuje možnost filtrovat nebo vyhledávat zprávy v archívech poštovních schránek na základě vlastních dotazů. To umožňuje vývojářům načíst jen zprávy, které splňují konkrétní kritéria, což zlepšuje výkon a použitelnost při práci s velkými soubory e‑mailových archivů.
Níže uvedený příklad kódu ukazuje, jak použít vyhledávací kritéria na soubor úložiště pošty pomocí API MailQuery. V tomto příkladu jsou vybrány zprávy, jejichž předmět obsahuje frázi "Project Update" a které byly odeslány před dnešním datem.
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);
}
Konfigurovat možnosti načítání při čtení zpráv z MBOX
Následující funkce vám umožní specifikovat různé možnosti související s načítáním a zpracováním zpráv:
-
Vlastnost MailStorageConverter.MboxMessageOptions – získává nebo nastavuje možnosti načítání e‑mailu při parsování úložiště Mbox.
-
Metoda MboxrdStorageReader.ReadNextMessage(EmlLoadOptions options) – parametr EmlLoadOptions určuje možnosti při čtení zprávy z úložiště 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");