Ett brett utbud av e-postklienter och plattformar leder ofta till skapandet av olika e-postlagringsformat. Å ena sidan kan dessa format utgöra en utmaning när det gäller att analysera innehållet. Å andra sidan är de oumbärliga när det kommer till att lagra data eller återställa den vid ett fel med en webbtjänst. I den här artikeln kommer vi att fördjupa oss i vart och ett av dessa format och visa hur Aspose.Email kan utnyttjas för att extrahera, lista och hämta e-postinnehåll i de fem stora filformaten.
C# API för att bearbeta lagringsfiler
För bearbetning av lagringsfiler kommer vi att använda ett mångsidigt API utformat för att förenkla komplexa e-postrelaterade uppgifter och interaktioner, vilket ger en heltäckande lösning för e-posthantering. Aspose.Email for .NET ger utvecklare möjlighet att skapa applikationer som sömlöst interagerar med e-postdata i en rad olika format som PST, OST, MBOX, EML, MSG och mer. Med dess rika funktionsuppsättning och användarvänliga metoder blir manipulering, extrahering och hantering av e-postdata lagrad i filer enkelt och intuitivt. För att utnyttja kraften i API:t, ladda ner dess DLL eller installera den från NuGet med följande kommando:
PM> Install-Package Aspose.Email
Bearbetning av lagringsfiler av olika typer
Läser PST-filer (Personal Storage Table).
PST är ett filformat som används av Microsoft Outlook för att lagra e-post, kontakter, kalendrar och annan data. Aspose.Email förenklar PST-filhantering genom att tillhandahålla metoder för att extrahera och hämta objekt som e-postmeddelanden, bilagor och mappstrukturer. Med hjälp av biblioteket kan utvecklare programmässigt komma åt PST-innehåll, söka efter specifika objekt och exportera dem till olika format. I kodexemplet med steg nedan ser du hur du läser filerna i PST-format:
- Till att börja med laddar du pst-filen med metoden FromFile i klassen PersonalStorage.
- Gå till mappen “Inkorgen” i PST:n genom att använda metoden GetSubfolder() på egenskapen RootFolder för pst-objektet.
- Iterera genom varje meddelande i mappen med metoden EnumerateMessages() på mappobjektet.
- Extrahera meddelandet genom att använda metoden ExtractMessage() på pst-objektet och skicka in egenskapen EntryIdString för varje msgInfo-objekt.
- Få tillgång till innehållet i meddelandet:
- Hämta ämnet för meddelandet genom att använda egenskapen Subject för msg-objektet.
- Hämta från-adressen för meddelandet genom att använda egenskapen SenderEmailAddress för msg-objektet.
- Hämta brödtexten i meddelandet genom att använda egenskapen Body för msg-objektet.
// Ladda PST-filen
using (var pst = PersonalStorage.FromFile(filename)
{
// Gå till önskad mapp i PST
var folder = pst.RootFolder.GetSubfolder("Inbox");
// Räkna upp och lista meddelanden i mappen
foreach(var msgInfo in folder.EnumerateMessages())
{
var msg = pst.ExtractMessage(msgInfo.EntryIdString);
//Få tillgång till innehållet i meddelandet
// Få ämne
Console.WriteLine("Subject:" + msg.Subject);
// Få från adressen
Console.WriteLine("From:" + msg.SenderEmailAddress);
// Få kropp
Console.WriteLine("Body" + msg.Body);
}
}
Läser OST-filer (Outlook Offline Storage Table).
OST-filer fungerar som en offlinekopia av postlådedata från Microsoft Exchange. Aspose.Email möjliggör extrahering av data från OST-filer, vilket gör att utvecklare kan hämta e-postmeddelanden, mappar och bilagor. Detta är särskilt användbart när du skapar säkerhetskopieringslösningar eller migrerar data mellan olika plattformar. Uppsättningen funktioner, som används vid analys av OST-filer, är identisk med den för PST, så du kan använda ovanstående kodexempel för att specificera den korrekta sökvägen till en OST-fil.
Läser OLM-filer (Outlook for Mac Archive).
OLM är lagringsformatet som används av Microsoft Outlook för Mac för att lagra e-post, kontakter och annan data. Med Aspose.Email kan utvecklare extrahera innehåll från OLM-filer, inklusive e-postmeddelanden och bilagor. Denna funktionalitet är värdefull för plattformsoberoende datamigrering eller för att skapa backupsystem. Följande kodexempel och stegen visar dig ett sätt att använda API:et för att analysera Outlook för Mac-filer:
- Skapa en instans av klassen OlmStorage och ladda OLM-filen med hjälp av konstruktorn.
- Gå till “Inbox”-mappen i OLM genom att använda metoden GetFolder() på olm-objektet, skicka in mappnamnet som “Inbox” och ange att mappen ska skapas om den inte finns.
- Iterera genom varje meddelande i mappen med metoden EnumerateMessages() på mappobjektet.
- Extrahera meddelandet genom att använda metoden ExtractMapiMessage() på olm-objektet och skicka in msgInfo-objektet.
- Få tillgång till innehållet i meddelandet:
- Hämta ämnet för meddelandet genom att använda egenskapen Subject för msg-objektet.
- Hämta från-adressen för meddelandet genom att använda egenskapen SenderEmailAddress för msg-objektet.
- Hämta brödtexten i meddelandet genom att använda egenskapen Body för msg-objektet.
// Ladda OLM-filen
using (var olm = new OlmStorage(filename))
{
// Gå till önskad mapp inom OLM
var folder = olm.GetFolder("Inbox", true);
// Räkna upp och lista meddelanden i mappen
foreach (var msgInfo in folder.EnumerateMessages())
{
var msg = olm.ExtractMapiMessage(msgInfo);
//Få tillgång till innehållet i meddelandet
// Få ämne
Console.WriteLine("Subject:" + msg.Subject);
// Få från adressen
Console.WriteLine("From:" + msg.SenderEmailAddress);
// Få kropp
Console.WriteLine("Body" + msg.Body);
}
}
Läser MBOX-filer (brevlåda).
MBOX är ett allmänt använt format för att lagra e-postmeddelanden. Det stöds av många e-postklienter och plattformar. Aspose.Email möjliggör extrahering och hämtning av e-postmeddelanden och bilagor från MBOX-filer, vilket gör att utvecklare kan arbeta med e-postdata på ett programmatiskt sätt. Prova följande kodsnutt för att analysera mbox-filer:
- Ladda MBOX-filen med metoden CreateReader() i klassen MboxStorageReader med MboxLoadOptions.
- Iterera genom varje meddelande i mbox med hjälp av metoden EnumerateMessageInfo() på mbox-objektet.
- Extrahera meddelandeinnehållet från mbox genom att använda metoden ExtractMessage() på mbox-objektet och skicka in EntryId och EmlLoadOptions.
- Få tillgång till innehållet i meddelandet:
// Ladda MBOX-filen
using (var mbox = MboxStorageReader.CreateReader(fileName, mboxLoadOptions))
{
// Räkna upp och lista meddelanden i mappen
foreach (var msgInfo in mbox.EnumerateMessageInfo())
{
var eml = mbox.ExtractMessage(messageInfo.EntryId, emlLoadOptions);
//Få tillgång till innehållet i meddelandet
// Få ämne
Console.WriteLine("Subject:" + eml.Subject);
// Få från adressen
Console.WriteLine("From:" + eml.From);
// Få kropp
Console.WriteLine("Body" + eml.Body);
}
}
Läser TGZ-filer (Compressed Tar Archive).
TGZ är ett komprimerat arkivformat som ofta används för att lagra säkerhetskopieringsdata för e-post i Zimbras e-postklient. Aspose.Email tillåter extrahering av e-postinnehåll från TGZ-filer, vilket gör det möjligt att komma åt och manipulera e-postdata som finns i dessa arkiv. Följande kodsnutt och stegen visar hur du läser tgz-filer:
- Skapa en instans av klassen TgzReader och ladda TGZ-filen med hjälp av konstruktorn.
- Iterera genom varje objekt i mappen ‘Inkorgen’ med hjälp av metoden ReadNextMessage() på mappobjektet.
- Extrahera meddelandeinnehållet från varje objekt genom att använda egenskapen CurrentMessage.
- Utför önskade åtgärder med det extraherade meddelandeinnehållet.
using (var tgzReader = new TgzReader(fileName))
{
while (reader.ReadNextMessage())
{
if (reader.CurrentDirectory == "Inbox")
{
var eml = reader.CurrentMessage;
//Få tillgång till innehållet i meddelandet
// Få ämne
Console.WriteLine("Subject:" + eml.Subject);
// Få från adressen
Console.WriteLine("From:" + eml.From);
// Få kropp
Console.WriteLine("Body" + eml.Body);
}
}
}
Slutsats
I den här artikeln undersökte vi hur man hanterar lagringsfiler av de mest populära formaten programmatiskt i C#. Våra intuitiva kodexempel visade dig hur du implementerar grundläggande funktioner i ditt projekt. Att ladda, lista och komma åt innehållet i lagringsfiler är nu enklare med Aspose.Email för .NET. API:et ger dig ett sömlöst sätt att integrera e-postrelaterad funktionalitet i dina .NET-applikationer. Läs mer om vad biblioteket kan erbjuda dig från vår dokumentation. Kontakta oss gärna på vårt gratis supportforum, om du behöver hjälp eller råd.