Aspose.Email FOSS for .NET er et MIT‑lisensiert, avhengighetsfritt C# bibliotek for å arbeide med Microsoft Outlook .msg‑filer, Compound File Binary (CFB)‑containere og EML‑meldinger. Legg til en enkelt NuGet‑pakke og start umiddelbart med å lese, opprette og behandle e‑postmeldinger uten å installere Microsoft Outlook eller noen proprietær kjøretidsmiljø.
Biblioteket gir to nivåer av tilgang. På lavt nivå gir CfbReader og CfbWriter full kontroll over CFB binære containere — traversere katalogoppføringer, lese og skrive lagringsnoder og strømdata, og inspisere den rå sektorlayouten. MsgReader og MsgWriter håndterer MSG-formatet på toppen av CFB, og eksponerer MAPI‑egenskapsstrømmer, mottakertabeller og vedleggsunderlagre. På høyt nivå lar MapiMessage deg opprette nye meldinger fra bunnen av, lese emne, innhold, avsender og mottakere, administrere vedlegg, og konvertere mellom MSG‑ og EML‑format via en innebygd MIME‑implementering.
Biblioteket retter seg mot .NET 8.0 eller nyere og har ingen native avhengigheter, noe som gjør det egnet for Windows, Linux, macOS, Docker‑containere og serverløse funksjoner. For ekstra funksjoner og kommersiell støtte, se Aspose.Email for .NET.
CfbReader.FromFile(), CfbReader.FromStream() eller new CfbReader(data).IterStorages(), IterStreams(), IterChildren() og IterTree().ResolvePath(names) for å finne en spesifikk strøm ved navnkjede.CfbDocument og serialiser til bytes eller fil via CfbWriter.ToBytes() eller CfbWriter.WriteFile().CfbStorage og CfbStream noder til en hvilken som helst lagringsnode før serialisering..msg-filer — direkte CFB-tilgang muliggjør rettsmedisinsk inspeksjon og reparasjon.MsgReader.FromFile() eller MsgReader.FromStream() og få tilgang til de underliggende MAPI‑egenskapsstrømmene, mottakerpostene og vedleggsunderlagrene.MsgDocument med MsgWriter.ToBytes() eller MsgWriter.WriteFile().MsgStorage, MsgStream og MsgStorage.FindStream().MsgStorage.FindStream() og MsgStorage.FindStorage() for å lokalisere navngitte underoppføringer..msg-filer fra arkivkataloger og hente ut metadata eller vedlegg..msg filer programmatisk og lever dem til Outlook-baserte e‑postsystemer.MapiMessage.Create(subject, body), sett SenderName, SenderEmailAddress og HtmlBody.To, Cc og Bcc mottakere via AddRecipient() med e‑postadresse og visningsnavn.AddAttachment() eller konstruer MapiAttachment objekter direkte med Filename, MimeType, ContentId og Data.message.Save() eller message.Save(stream) og last inn på nytt med MapiMessage.FromFile() eller MapiMessage.FromStream().message.Attachments, og lagre hver attachment.Data til disk.message.Subject, message.Body, message.SenderEmailAddress og message.Recipients uten COM-automatisering..eml-fil (RFC 5322 / MIME) til et fullstendig MapiMessage-objekt via MapiMessage.LoadFromEml(stream).MapiMessage tilbake til MIME-format med message.SaveToEml() eller message.SaveToEml(stream)..eml og .msg filer til ett format..eml fixtures i tester og verifiser at de overlever MSG-rundtur uten datatap.Åpne en Outlook MSG-fil fra en strøm og skriv ut emnet — ingen Microsoft Outlook kreves.
using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);
Bygg en komplett e‑post med avsender, mottaker og vedlegg, og skriv den deretter til 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);
Last inn en standard .eml-fil og lagre den som en Outlook .msg-fil ved hjelp av den innebygde 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);