Aspose.Email FOSS voor .NET is een MIT-gelicentieerde, afhankelijkheidsvrije C# bibliotheek voor het werken met Microsoft Outlook .msg bestanden, Compound File Binary (CFB) containers en EML-berichten. Voeg een enkel NuGet pakket toe en begin onmiddellijk met het lezen, maken en verwerken van e‑mailberichten zonder Microsoft Outlook of enige propriëtaire runtime te installeren.
De bibliotheek biedt twee niveaus van toegang. Op het lage niveau geven CfbReader en CfbWriter volledige controle over CFB binary containers — doorloop directory entries, lees en schrijf storage nodes en stream data, en inspecteer de ruwe sectorindeling. MsgReader en MsgWriter behandelen het MSG-formaat bovenop CFB, waarbij MAPI property streams, recipient tables en attachment sub-storages worden blootgesteld. Op het hoge niveau laat MapiMessage je nieuwe berichten vanaf nul maken, onderwerp, body, afzender en ontvangers lezen, bijlagen beheren en tussen MSG en EML formaat converteren via een ingebouwde MIME-implementatie.
De bibliotheek richt zich op .NET 8.0 of later en heeft geen native afhankelijkheden, waardoor hij geschikt is voor Windows, Linux, macOS, Docker‑containers en serverless‑functies. Voor extra functies en commerciële ondersteuning, zie Aspose.Email for .NET.
CfbReader.FromFile(), CfbReader.FromStream() of new CfbReader(data).IterStorages(), IterStreams(), IterChildren() en IterTree().ResolvePath(names) om een specifieke stream te vinden via een naamketen.CfbDocument en serialiseer naar bytes of bestand via CfbWriter.ToBytes() of CfbWriter.WriteFile().CfbStorage en CfbStream knooppunten aan een willekeurig opslagknooppunt vóór serialisatie..msg-bestanden — directe CFB-toegang maakt forensische inspectie en reparatie mogelijk.MsgReader.FromFile() of MsgReader.FromStream() en krijg toegang tot de onderliggende MAPI‑eigenschapsstromen, ontvangerrecords en bijlage‑subopslag.MsgDocument met MsgWriter.ToBytes() of MsgWriter.WriteFile().MsgStorage, MsgStream en MsgStorage.FindStream().MsgStorage.FindStream() en MsgStorage.FindStorage() om benoemde subvermeldingen te vinden..msg bestanden uit archiefmappen en extraheer metadata of bijlagen..msg-bestanden programmatisch en lever ze af aan Outlook-gebaseerde mailsystemen.MapiMessage.Create(subject, body), stel SenderName, SenderEmailAddress en HtmlBody in.To, Cc en Bcc ontvangers toe via AddRecipient() met e-mailadres en weergavenaam.AddAttachment() of construeer MapiAttachment objecten direct met Filename, MimeType, ContentId en Data.message.Save() of message.Save(stream) en laad opnieuw met MapiMessage.FromFile() of MapiMessage.FromStream().message.Attachments, en sla elke attachment.Data op naar schijf.message.Subject, message.Body, message.SenderEmailAddress en message.Recipients zonder COM-automatisering..eml bestand (RFC 5322 / MIME) naar een volledig MapiMessage object via MapiMessage.LoadFromEml(stream).MapiMessage terug naar MIME-indeling met message.SaveToEml() of message.SaveToEml(stream)..eml en .msg bestanden naar één formaat..eml fixtures in tests en verifieer dat ze de MSG round-trip overleven zonder gegevensverlies.Open een Outlook MSG‑bestand vanuit een stream en druk het onderwerp af — geen Microsoft Outlook vereist.
using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);
Maak een volledige e‑mail met afzender, ontvanger en bijlage, en schrijf deze vervolgens naar een MSG‑bestand.
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);
Laad een standaard .eml-bestand en sla het op als een Outlook .msg-bestand met behulp van de ingebouwde MIME-parser.
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);