Aspose.Email FOSS für .NET ist eine MIT-lizenzierte, abhängigkeitfreie C# Bibliothek zum Arbeiten mit Microsoft Outlook .msg Dateien, Compound File Binary (CFB) Containern und EML-Nachrichten. Fügen Sie ein einziges NuGet Paket hinzu und beginnen Sie sofort mit dem Lesen, Erstellen und Verarbeiten von E‑Mail‑Nachrichten, ohne Microsoft Outlook oder eine proprietäre Laufzeit zu installieren.
Die Bibliothek bietet zwei Zugriffsebenen. Auf der niedrigen Ebene geben CfbReader und CfbWriter die volle Kontrolle über CFB‑Binärcontainer — Verzeichniseinträge durchlaufen, Speicherknoten und Stream‑Daten lesen und schreiben sowie das rohe Sektor‑Layout inspizieren. MsgReader und MsgWriter verarbeiten das MSG‑Format auf CFB‑Basis und stellen MAPI‑Eigenschafts‑Streams, Empfängertabellen und Anhang‑Unter‑speicher bereit. Auf der hohen Ebene ermöglicht MapiMessage das Erstellen neuer Nachrichten von Grund auf, das Lesen von Betreff, Text, Absender und Empfängern, das Verwalten von Anhängen und die Konvertierung zwischen MSG‑ und EML‑Format über eine integrierte MIME‑Implementierung.
Die Bibliothek zielt auf .NET 8.0 oder höher ab und hat keine nativen Abhängigkeiten, wodurch sie für Windows, Linux, macOS, Docker‑Container und serverlose Funktionen geeignet ist. Für zusätzliche Funktionen und kommerziellen Support siehe Aspose.Email for .NET.
CfbReader.FromFile(), CfbReader.FromStream() oder new CfbReader(data).IterStorages(), IterStreams(), IterChildren() und IterTree().ResolvePath(names), um einen bestimmten Stream anhand einer Namenskette zu finden.CfbDocument und serialisieren Sie sie in Bytes oder in eine Datei über CfbWriter.ToBytes() oder CfbWriter.WriteFile().CfbStorage und CfbStream Knoten an einen beliebigen Speicherknoten vor der Serialisierung an..msg-Dateien — direkter CFB-Zugriff ermöglicht forensische Inspektion und Reparatur.MsgReader.FromFile() oder MsgReader.FromStream() und greifen Sie auf die zugrunde liegenden MAPI‑Eigenschafts‑Streams, Empfänger‑Datensätze und Anhang‑Unter‑Speicher zu.MsgDocument mit MsgWriter.ToBytes() oder MsgWriter.WriteFile().MsgStorage, MsgStream und MsgStorage.FindStream().MsgStorage.FindStream() und MsgStorage.FindStorage(), um benannte Untereinträge zu finden..msg Dateien aus Archivverzeichnissen lesen und Metadaten oder Anhänge extrahieren..msg-Dateien programmgesteuert und liefern Sie sie an Outlook-basierte Mailsysteme.MapiMessage.Create(subject, body), setzen Sie SenderName, SenderEmailAddress und HtmlBody.To, Cc und Bcc Empfänger über AddRecipient() mit E‑Mail‑Adresse und Anzeigenamen hinzu.AddAttachment() hinzu oder konstruieren Sie MapiAttachment-Objekte direkt mit Filename, MimeType, ContentId und Data.message.Save() oder message.Save(stream) und neu laden mit MapiMessage.FromFile() oder MapiMessage.FromStream().message.Attachments und speichern Sie jeden attachment.Data auf die Festplatte.message.Subject, message.Body, message.SenderEmailAddress und message.Recipients ohne COM automation..eml-Datei (RFC 5322 / MIME) in ein vollständiges MapiMessage-Objekt über MapiMessage.LoadFromEml(stream).MapiMessage zurück ins MIME-Format mit message.SaveToEml() oder message.SaveToEml(stream)..eml- und .msg-Dateien zu einem einzigen Format..eml-Fixtures in Tests und überprüfe, dass sie den MSG-Round-Trip ohne Datenverlust überstehen.Öffnen Sie eine Outlook‑MSG‑Datei aus einem Stream und geben Sie den Betreff aus — kein Microsoft Outlook erforderlich.
using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);
Erstellen Sie eine vollständige E‑Mail mit Absender, Empfänger und Anhang und schreiben Sie sie dann in eine MSG‑Datei.
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);
Laden Sie eine Standard‑.eml-Datei und speichern Sie sie als Outlook‑.msg-Datei mit dem integrierten 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);