1. Produkter
  2.   Aspose.Email
  3.   Aspose.Email FOSS for .NET

Aspose.Email FOSS för .NET

Läs, skapa och bearbeta Outlook MSG-filer, CFB-behållare och EML-meddelanden från .NET — gratis och öppen källkod, utan Microsoft Outlook-beroende.

Open-Source .NET bibliotek för MSG-, CFB- och EML-filer

Aspose.Email FOSS för .NET är ett MIT-licensierat, beroende-fritt C# bibliotek för att arbeta med Microsoft Outlook .msg filer, Compound File Binary (CFB) containrar och EML-meddelanden. Lägg till ett enda NuGet paket och börja omedelbart läsa, skapa och bearbeta e‑postmeddelanden utan att installera Microsoft Outlook eller någon proprietär runtime.

Biblioteket tillhandahåller två åtkomstnivåer. På låg nivå ger CfbReader och CfbWriter full kontroll över CFB binära behållare — traversera katalogposter, läsa och skriva lagringsnoder och strömdata, och inspektera den råa sektlayouten. MsgReader och MsgWriter hanterar MSG-formatet ovanpå CFB, exponerar MAPI‑egenskapsströmmar, mottagartabeller och bilagors sublagringar. På hög nivå låter MapiMessage dig skapa nya meddelanden från grunden, läsa ämne, brödtext, avsändare och mottagare, hantera bilagor och konvertera mellan MSG‑ och EML‑format via en inbyggd MIME‑implementation.

Biblioteket riktar sig mot .NET 8.0 eller senare och har inga inhemska beroenden, vilket gör det lämpligt för Windows, Linux, macOS, Docker‑containrar och serverlösa funktioner. För ytterligare funktioner och kommersiellt stöd, se Aspose.Email for .NET.

CFB-behållare läs och skriv

  • Open CFB files: Läs in befintliga CFB-behållare från en filsökväg, ström eller bytearray via CfbReader.FromFile(), CfbReader.FromStream() eller new CfbReader(data).
  • Traversera katalogträdet: Iterera lagringar, strömmar och barn med hjälp av IterStorages(), IterStreams(), IterChildren() och IterTree().
  • Lös sökvägar: Navigera i nästlade lagringshierarkier med ResolvePath(names) för att hitta en specifik ström via namnkedja.
  • Skriv CFB-behållare: Bygg CFB-dokument programatiskt med CfbDocument och serialisera till byte eller fil via CfbWriter.ToBytes() eller CfbWriter.WriteFile().
  • Lägg till lagringar och strömmar: Bifoga CfbStorage och CfbStream noder till någon lagringsnod före serialisering.

Var CFB Access används

  • MSG-filinspektion: CFB är containerformatet för Outlook .msg-filer — direkt CFB-åtkomst möjliggör forensisk inspektion och reparation.
  • Anpassade binära format: Alla äldre applikationer som använder CFB för datalagring kan läsas eller skrivas utan ett COM-beroende.
  • Dataåterställning: Traversera hela katalogträdet och extrahera råa strömbytes från skadade eller icke‑standard CFB‑filer.
  • Binär rundresetestning: Serialisera ett dokument till bytes och ladda om det för att verifiera förlustfri serialisering i automatiserade tester.

MSG-fil läs och skriv

  • Läs MSG-filer: Öppna Outlook MSG-filer med MsgReader.FromFile() eller MsgReader.FromStream() och få åtkomst till de underliggande MAPI‑egenskapsströmmarna, mottagarposterna och bilage‑underlagringsområdena.
  • Write MSG files: Skapa MSG-filer från en MsgDocument med MsgWriter.ToBytes() eller MsgWriter.WriteFile().
  • Lågnivå MAPI-åtkomst: Läs top‑nivå egenskapsströmmar, namngivna egenskaper och bilagedata via MsgStorage, MsgStream och MsgStorage.FindStream().
  • MSG storage navigation: Använd MsgStorage.FindStream() och MsgStorage.FindStorage() för att hitta namngivna underposter.

Var MSG‑bearbetning används

  • E-postarkiveringspipelines: Läs in i bulk .msg filer från arkivkataloger och extrahera metadata eller bilagor.
  • Migreringsverktyg: Konvertera MSG-samlingar till standardformat för import till icke-Outlook-system.
  • Juridisk upptäckt: Analysera råa MAPI‑egenskapsströmmar för att extrahera alla meddelandefält, inklusive icke‑standardegenskaper.
  • Automatiserad rapportleverans: Skapa .msg filer programatiskt och leverera dem till Outlook-baserade e‑postsystem.

Hög-nivå Message API

  • Skapa meddelanden: Bygg ett komplett e‑postmeddelande med MapiMessage.Create(subject, body), ange SenderName, SenderEmailAddress och HtmlBody.
  • Lägg till mottagare: Bifoga To, Cc och Bcc mottagare via AddRecipient() med e‑postadress och visningsnamn.
  • Hantera bilagor: Lägg till fil- och strömbilagor med AddAttachment() eller konstruera MapiAttachment objekt direkt med Filename, MimeType, ContentId och Data.
  • Spara och ladda om: Serialisera med message.Save() eller message.Save(stream) och ladda om med MapiMessage.FromFile() eller MapiMessage.FromStream().

Var hög‑nivå‑API:t används

  • Automatiserad e‑postgenerering: Generera tusentals personliga MSG‑filer från dataposter i batchjobb.
  • Test fixture creation: Bygg kända‑goda MSG‑filer med förutsägbart innehåll för integrationstestsviter.
  • Extrahering av bilagor: Läs in en MSG-fil, iterera message.Attachments, och spara varje attachment.Data till disk.
  • Egendomsinspektion: Åtkomst till message.Subject, message.Body, message.SenderEmailAddress och message.Recipients utan COM-automation.

EML och MIME-konvertering

  • Läs in EML i MapiMessage: Analysera en standard .eml-fil (RFC 5322 / MIME) till ett fullständigt MapiMessage-objekt via MapiMessage.LoadFromEml(stream).
  • Spara MapiMessage som EML: Serialisera en MapiMessage tillbaka till MIME-format med message.SaveToEml() eller message.SaveToEml(stream).
  • Round-trip fidelity: Ämne, brödtext, HTML brödtext, avsändare, mottagare och bilagor bevaras alla genom EML → MSG → EML‑rundresor.
  • Ingen extern MIME‑parser: EML‑parsing implementeras nativt i biblioteket — ingen System.Net.Mail‑beroende krävs.

Var EML‑konvertering används

  • Formatöverbryggning: Ta emot e‑post som EML från e‑postservrar och konvertera till MSG för Outlook‑kompatibel lagring.
  • Standardefterlevnad: Konvertera proprietära MSG-filer till standard-MIME för leverans till någon e-posttransport.
  • Arkivnormalisering: Normalisera ett blandat arkiv av .eml och .msg filer till ett enda format.
  • Testa arbetsflöden: Generera .eml fixtures i tester och verifiera att de överlever MSG round-trip utan dataförlust.

Läs ämne från en MSG‑fil

Öppna en Outlook MSG‑fil från en ström och skriv ut ämnet — ingen Microsoft Outlook krävs.

using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);

Skapa och spara ett MSG‑meddelande

Skapa ett komplett e‑postmeddelande med avsändare, mottagare och bilaga, och skriv sedan det till en MSG‑fil.

using System.IO;
using Aspose.Email.Foss.Msg;
var message = MapiMessage.Create("Hello", "Body");
message.SenderName = "Alice";
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
using var attachmentStream = new MemoryStream("abc"u8.ToArray());
message.AddAttachment("note.txt", attachmentStream, "text/plain");
using var output = File.Create("hello.msg");
message.Save(output);

Konvertera EML till MSG

Läs in en standard .eml-fil och spara den som en Outlook .msg-fil med den inbyggda MIME‑parsern.

using System.IO;
using Aspose.Email.Foss.Msg;
using var input = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(input);
using var msgOutput = File.Create("message.msg");
message.Save(msgOutput);
using var emlOutput = File.Create("roundtrip.eml");
message.SaveToEml(emlOutput);
  

Stöd och Lärande Resurser

 Svenska