Analysera lagringsfiler

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:

  1. Till att börja med laddar du pst-filen med metoden FromFile i klassen PersonalStorage.
  2. Gå till mappen “Inkorgen” i PST:n genom att använda metoden GetSubfolder() på egenskapen RootFolder för pst-objektet.
  3. Iterera genom varje meddelande i mappen med metoden EnumerateMessages() på mappobjektet.
  4. Extrahera meddelandet genom att använda metoden ExtractMessage() på pst-objektet och skicka in egenskapen EntryIdString för varje msgInfo-objekt.
  5. 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:

  1. Skapa en instans av klassen OlmStorage och ladda OLM-filen med hjälp av konstruktorn.
  2. 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.
  3. Iterera genom varje meddelande i mappen med metoden EnumerateMessages() på mappobjektet.
  4. Extrahera meddelandet genom att använda metoden ExtractMapiMessage() på olm-objektet och skicka in msgInfo-objektet.
  5. 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:

  1. Ladda MBOX-filen med metoden CreateReader() i klassen MboxStorageReader med MboxLoadOptions.
  2. Iterera genom varje meddelande i mbox med hjälp av metoden EnumerateMessageInfo() på mbox-objektet.
  3. Extrahera meddelandeinnehållet från mbox genom att använda metoden ExtractMessage() på mbox-objektet och skicka in EntryId och EmlLoadOptions.
  4. Få tillgång till innehållet i meddelandet:
    • Hämta ämnet för meddelandet genom att använda egenskapen Subject för eml-objektet.
    • Få från-adressen för meddelandet genom att använda egenskapen From för eml-objektet.
    • Hämta brödtexten i meddelandet genom att använda egenskapen Body för eml-objektet.
// 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:

  1. Skapa en instans av klassen TgzReader och ladda TGZ-filen med hjälp av konstruktorn.
  2. Iterera genom varje objekt i mappen ‘Inkorgen’ med hjälp av metoden ReadNextMessage() på mappobjektet.
  3. Extrahera meddelandeinnehållet från varje objekt genom att använda egenskapen CurrentMessage.
  4. 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.

Se även