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 erbjuder två åtkomstnivåer. På låg nivå ger CfbReader och CfbWriter full kontroll över CFB binära containrar — traversera katalogposter, läsa och skriva lagringsnoder och strömdata, samt inspektera den råa sektorlayouten. MsgReader och MsgWriter hanterar MSG-formatet ovanpå CFB, exponerar MAPI‑egenskapsströmmar, mottagartabeller och bifogade underlagringar. 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.
CfbReader.FromFile(), CfbReader.FromStream() eller new CfbReader(data).IterStorages(), IterStreams(),IterChildren() och IterTree().ResolvePath(names) för att hitta en specifik ström efter namnkedja.CfbDocument och seriera till byte eller fil via CfbWriter.ToBytes() eller CfbWriter.WriteFile().CfbStorage och CfbStream knutar till alla lagringsknuter före serialisering..msg -filer Direkt tillgång till CF B möjliggör rättsmedicinsk inspektion och reparation.MsgReader.FromFile() eller MsgReader.FromStream() och få tillgång till underliggande MAPI-egendomströmmar, mottagarposter och bifogade dellagringar.MsgDocument med MsgWriter.ToBytes() eller MsgWriter.WriteFile().MsgStorage, MsgStream, och MsgStorage.FindStream().MsgStorage.FindStream() och MsgStorage.FindStorage() för att hitta namngivna underposter..msg filer från arkivkataloger och extrahera metadata eller bilagor..msg-filer och leverera dem till Outlookbaserade postsystem.MapiMessage.Create(subject, body), ange SenderName, SenderEmailAddress och HtmlBody.To, Cc och Bcc mottagare via AddRecipient() med e‑postadress och visningsnamn.AddAttachment() eller konstruera MapiAttachment‑objekt direkt med Filename, MimeType, ContentId och Data.message.Save() eller message.Save(stream) och ladda om med MapiMessage.FromFile() eller MapiMessage.FromStream().message.Attachments, och spara varje attachment.Data till disk.message.Subject, message.Body, message.SenderEmailAddress och message.Recipients utan COM-automation..eml fil (RFC 5322 / MIME) till ett fullt MapiMessage objekt via MapiMessage.LoadFromEml(stream).MapiMessage tillbaka till MIME-format med message.SaveToEml() eller message.SaveToEml(stream)..eml och .msg-filer till ett enda format..eml-inställningar i tester och kontrollera att de överlever MSG-turen utan dataförlust.Öppna en Outlook MSG-fil från ett ström och skriva 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 ett komplett e-postmeddelande med avsändare, mottagare och bifogade filer. Skriv det sedan 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);
Ladda in en standardfil .eml och spara den som Outlook-fil.msg med hjälp av den inbyggda MIME-parseren.
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);