Einleitung
Aspose.Email FOSS für .NET ist eine kostenlose, Open-Source C#-Bibliothek, die es Ihnen ermöglicht, mit Outlook
MSG-Dateien, Compound File Binary (CFB)-Containern und EML-Nachrichten direkt in Ihrer .NET
Anwendung zu arbeiten — kein Microsoft Outlook, keine COM-Interop und keine nativen Bibliotheken erforderlich. Verteilen
Sie es als einzelnes NuGet-Paket und es läuft identisch unter Windows, Linux, macOS, Docker-Containern,
und serverlosen Funktionen.
Die Bibliothek löst ein wiederkehrendes Problem in Unternehmens‑ und Integrationsarbeiten: Outlook .msg‑Dateien werden von Millionen Geschäftsbenutzern erzeugt, doch das Parsen dieser Dateien ohne Outlook erforderte historisch COM‑Automatisierung oder teure kommerzielle Bibliotheken. Aspose.Email FOSS for .NET bietet vollständige Lese‑/Schreibunterstützung für MSG, den zugrunde liegenden CFB‑Binärcontainer und das EML/MIME‑Format — alles unter der MIT‑Lizenz ohne Nutzungsbeschränkungen.
Ob Sie eine E‑Mail‑Archivierungspipeline, ein Migrationstool, einen Anhangsextraktor,
oder einen automatisierten MSG‑Generator erstellen, gibt Ihnen diese Bibliothek direkten, low‑level Zugriff auf jedes Byte des
E‑Mail‑Formats sowie eine hoch‑level MapiMessage API, die es Ihnen ermöglicht, in wenigen Minuten zu starten.
Hauptmerkmale
Outlook MSG-Dateien lesen
Öffnen Sie jede .msg‑Datei von einem Pfad oder Stream mit MsgReader.FromFile() oder MsgReader.FromStream().
Greifen Sie auf den vollständigen MAPI‑Eigenschafts‑Stream, Empfänger‑Datensätze und Anhang‑Unter‑Speicher auf der
Roh‑Byte‑Ebene über MsgStorage und MsgStream zu.
using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);
MSG-Dateien von Grund auf erstellen
Erstellen Sie eine vollständige E‑Mail programmgesteuert mit MapiMessage.Create(). Setzen Sie Betreff, Nur‑Text
Inhalt, HTML‑Inhalt, Absendername, Absender‑E‑Mail‑Adresse, Versandzeit und Internet‑Message‑ID, dann
Empfänger mit AddRecipient() und Anhänge mit AddAttachment() hinzufügen. Serialisieren mitmessage.Save().
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);
EML in MSG konvertieren (und zurück)
Laden Sie eine standardmäßige RFC 5322 .eml‑Datei in ein MapiMessage mit MapiMessage.LoadFromEml(),
dann speichern Sie sie als Outlook .msg‑Datei — oder führen Sie den Vorgang mit MapiMessage.SaveToEml() umgekehrt aus.
Der integrierte MIME‑Parser bewahrt Betreff, Textkörper, HTML‑Textkörper, Absender, Empfänger und Anhänge bei vollständigen EML ↔ MSG‑Rundreisen.
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);
Low-Level CFB-Containerzugriff
Outlook‑MSG‑Dateien basieren auf dem Compound File Binary (CFB)‑Format — einem hierarchischen binären Container, der einem Dateisystem ähnelt. CfbReader stellt den vollständigen Verzeichnisbaum bereit: Durchlaufen Sie Storages und Streams mit IterStorages(), IterStreams() und IterChildren(), navigieren Sie zu bestimmten Einträgen per Pfad mit ResolvePath() und lesen Sie rohe Stream‑Bytes mit GetStreamData().
CfbWriter ermöglicht es Ihnen, ein CFB-Dokument von Grund auf zu erstellen und zu serialisieren. Erstellen Sie ein CfbDocument, fügen Sie die Knoten CfbStorage und CfbStream hinzu und rufen Sie CfbWriter.ToBytes() oder CfbWriter.WriteFile() zum Serialisieren auf.
MAPI‑Eigenschafts‑ und Anhangszugriff
Die MapiPropertyCollection‑Klasse bietet typisierten MAPI‑Eigenschaftszugriff für jedes MSG‑ oder Speicherobjekt: Verwenden Sie Get(), Set(), Add() und Remove() mit den Standard‑CommonMessagePropertyId‑ oder PropertyTypeCode‑Enumwerten. Greifen Sie über die MapiAttachment‑Eigenschaften auf Anhangsmetadaten und Binärdaten zu: Filename, MimeType, ContentId und Data.
Schnellstart
Installieren Sie das Paket:
dotnet add package Aspose.Email.Foss
Lese den Betreff aus einer MSG-Datei:
using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);
Console.WriteLine(message.SenderEmailAddress);
foreach (var recipient in message.Recipients)
Console.WriteLine($"To: {recipient.EmailAddress}");
foreach (var attachment in message.Attachments)
Console.WriteLine($"Attachment: {attachment.Filename} ({attachment.MimeType})");
Unterstützte Formate
| Format | Erweiterung | Lesen | Schreiben |
|---|---|---|---|
| Compound File Binary | .cfb | ✓ | ✓ |
| Outlook Message | .msg | ✓ | ✓ |
| MIME / EML | .eml | ✓ | ✓ |
Open Source & Lizenzierung
Aspose.Email FOSS für .NET wird unter der MIT-Lizenz veröffentlicht. Sie können es frei in persönlichen, kommerziellen und Open-Source-Projekten ohne Nutzungsbeschränkungen verwenden. Der Quellcode ist verfügbar unter github.com/aspose-email-foss/Aspose.Email-FOSS-for-.Net.