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 binaire containers — doorloop directory‑items, lees en schrijf opslag‑knooppunten en stream‑data, en inspecteer de ruwe sectorindeling. MsgReader en MsgWriter behandelen het MSG‑formaat bovenop CFB, waarbij MAPI‑eigenschapstreams, ontvangerstabellen en bijlage‑sub‑opslagruimtes worden blootgesteld. Op het hoge niveau stelt MapiMessage je in staat nieuwe berichten vanaf nul te maken, onderwerp, inhoud, afzender en ontvangers te lezen, bijlagen te beheren en te converteren tussen MSG‑ en EML‑formaat 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 stroom te vinden op basis van naamketens.CfbDocument en serialiseren naar bytes of bestanden via CfbWriter.ToBytes() of CfbWriter.WriteFile().CfbStorage- en CfbStream -knooppunten aan een opslagaanode vast voordat de serialisatie plaatsvindt..msg bestanden directe toegang tot CF B maakt forensisch onderzoek en reparatie mogelijk.MsgReader.FromFile() of MsgReader.FromStream() en toegang tot de onderliggende MAPI eigenschap stromen, ontvanger records, en bijlage sub-opslag.MsgDocument met MsgWriter.ToBytes() of MsgWriter.WriteFile().MsgStorage, MsgStream en MsgStorage.FindStream().MsgStorage.FindStream() en MsgStorage.FindStorage() om benamende subindentries te vinden..msg bestanden uit archiveringsmappen en extracteren metagegevens of bijlagen..msg-bestanden bouwen en aan Outlook-gebaseerde mailsystemen afleveren.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 schijf.message.Subject, message.Body, message.SenderEmailAddress en message.Recipients zonder COM‑automatisering..eml bestand (RFC 5322 / MIME) in een volledige MapiMessage object via MapiMessage.LoadFromEml(stream).MapiMessage terug naar MIME-formaat serialiseren met message.SaveToEml() of message.SaveToEml(stream)..eml en .msg bestanden tot één formaat normalisering..eml-bevestigingen in tests en controleer of ze MSG rondreizen zonder gegevensverlies overleven.Open een Outlook MSG-bestand vanuit een stream en druk het onderwerp geen Microsoft Outlook nodig.
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 complete e-mail met afzender, ontvanger en bijlage. Schrijf het dan in 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 bewaar het als Outlook .msg-file 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);