MBOX‑berichten filteren en extraheren
De rol van berichtfiltering
Bij het werken met grote MBOX‑archieven kan het laden van elk bericht in het geheugen inefficiënt en overbodig zijn. In de meeste scenario’s hoeven ontwikkelaars alleen basis‑metadata zoals onderwerp, afzender, ontvanger of tijdstempel te scannen om:
- Een lijst van berichten weergeven in een UI
- Aangepaste filters toepassen vóór extraheren
- Rapporten of samenvattingen genereren
- Berichten indexeren voor zoeken
Filteren vermijdt de overhead van het parseren van volledige berichtlichamen of bijlagen, waardoor applicaties sneller en beter schaalbaar worden.
Bericht‑metadata benaderen
Aspose.Email biedt de MboxMessageInfo klasse ontworpen om basis‑metadata van berichten te benaderen zonder de volledige MailMessage‑inhoud te lezen. Het fungeert als een samenvattend object en wordt geretourneerd bij het aanroepen van MboxStorageReader.EnumerateMessageInfo().
Belangrijke eigenschappen blootgelegd door MboxMessageInfo om informatie over een bericht op te halen omvat:
- DateTime Date - Haalt de datum van het bericht op
- MailAddress From - Haalt het afzenderadres op
- string Subject - Haalt het onderwerp van het bericht op
- MailAddressCollection Aan - Haalt de adressenverzameling op die de ontvangers van het bericht bevat
- MailAddressCollection CC - Haalt de adressenverzameling op die CC‑ontvangers bevat
- MailAddressCollection Bcc - Haalt de adressenverzameling op die BCC‑ontvangers van het bericht bevat
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}");
}
Berichten extraheren op EntryId
De MboxStorageReader klasse bevat de EnumerateMessageInfo() methode, die u in staat stelt door elk bericht in een MBOX‑bestand te itereren. Door gebruik te maken van deze methode is het mogelijk individuele berichten te extraheren zonder de gehele opslag telkens te doorlopen. Dit verbetert de prestaties en verkort de verwerkingstijd.
De MboxMessageInfo class biedt de EntryId eigenschap, die toegang biedt tot unieke identifiers voor elk bericht in het MBOX‑bestand. Deze identifier kan in een database worden opgeslagen of als referentie worden gebruikt om snel specifieke berichten te vinden en te extraheren wanneer nodig.
De ExtractMessage(string id) methode in de MboxStorageReader klasse stelt ontwikkelaars in staat berichten te extraheren op basis van hun unieke EntryId. Met de ExtractMessage(string id) methode, kunt u de opgeslagen EntryId gebruiken om het bijbehorende bericht op te halen en er extra bewerkingen mee uit te voeren.
Het volgende codevoorbeeld laat zien hoe u berichten uit een MBOX‑bestand kunt extraheren met behulp van identifiers:
MboxStorageReader reader = MboxStorageReader.CreateReader("my.mbox", new MboxLoadOptions());
foreach (MboxMessageInfo msgInfo in reader.EnumerateMessageInfo())
{
MailMessage eml = reader.ExtractMessage(msgInfo.EntryId, new EmlLoadOptions());
}
MBOX‑e‑mails filteren en zoeken met MailQuery
Aspose.Email voor .NET biedt de mogelijkheid om berichten binnen mailboxarchieven te filteren of te zoeken op basis van aangepaste query’s. Hiermee kunnen ontwikkelaars alleen de berichten ophalen die aan specifieke criteria voldoen, waardoor de prestaties en bruikbaarheid bij grote e‑mailarchiefbestanden verbeteren.
De volgende code‑sample toont hoe zoekcriteria toe te passen op een mailopslagbestand met de MailQuery‑API. In dit voorbeeld worden berichten geselecteerd als hun onderwerp de zin "Project Update" bevat en ze vóór de datum van vandaag zijn verzonden.
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);
}
Laadopties configureren bij het lezen van berichten uit MBOX
De volgende functies stellen u in staat verschillende opties met betrekking tot het laden en verwerken van berichten op te geven:
-
MailStorageConverter.MboxMessageOptions eigenschap - Haalt de e‑maillaadopties op of stelt ze in bij het parseren van een Mbox‑opslag.
-
MboxrdStorageReader.ReadNextMessage(EmlLoadOptions options) methode - De parameter EmlLoadOptions specificeert opties bij het lezen van een bericht uit Mbox‑opslag.
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");