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");