1. Produkte
  2.   Aspose.Email
  3.   Aspose.Email FOSS for .NET

Aspose.Email FOSS for .NET

Lesen, Erstellen und Verarbeiten von Outlook‑MSG‑Dateien, CFB‑Containern und EML‑Nachrichten aus .NET – kostenlos und Open‑Source, ohne Microsoft‑Outlook‑Abhängigkeit.

Open-Source .NET Bibliothek für MSG, CFB und EML Dateien

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 niedriger Ebene geben CfbReader und CfbWriter vollständige 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, indem sie MAPI‑Eigenschafts‑Streams, Empfängertabellen und Anhang‑Unter‑Speicher offenlegen. Auf hoher Ebene ermöglicht MapiMessage das Erstellen neuer Nachrichten von Grund auf, das Lesen von Betreff, Body, 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.

CFB-Container Lesen und Schreiben

  • CFB-Dateien öffnen: Laden Sie vorhandene CFB-Container von einem Dateipfad, Stream oder Byte-Array über CfbReader.FromFile(), CfbReader.FromStream() oder new CfbReader(data).
  • Verzeichnisbaum durchlaufen: Durchlaufen Sie Storages, Streams und Kinder mit IterStorages(), IterStreams(), IterChildren() und IterTree().
  • Pfade auflösen: Navigieren Sie durch verschachtelte Storage-Hierarchien mit ResolvePath(names), um einen bestimmten Stream anhand einer Namenskette zu finden.
  • CFB-Container schreiben: Erstellen Sie CFB-Dokumente programmgesteuert mit CfbDocument und serialisieren Sie sie zu Bytes oder Datei über CfbWriter.ToBytes() oder CfbWriter.WriteFile().
  • Storages und Streams hinzufügen: Fügen Sie CfbStorage und CfbStream Knoten zu einem beliebigen Storage-Knoten vor der Serialisierung hinzu.

Wo CFB-Zugang verwendet wird

  • MSG-Dateiinspektion: CFB ist das Containerformat für Outlook .msg Dateien direkter CF B-Zugriff ermöglicht die forensische Inspektion und Reparatur.
  • ** Benutzerdefinierte binäre Formate:** Jede alte Anwendung, die CFB zur Datenspeicherung verwendet, kann ohne COM-Abhängigkeit gelesen oder geschrieben werden.
  • ** Datenwiederherstellung:** Durchlaufen Sie den gesamten Verzeichnisbaum und extrahieren Sie Rohstrom-Bytes aus beschädigten oder nicht standardmäßigen CFB-Dateien.
  • Binär-Rundfahrtprüfung: Serialisieren eines Dokuments in Bytes und laden es neu, um die verlustfreie Serialisation bei automatisierten Tests zu überprüfen.

MSG-Datei Lesen und Schreiben

  • ** MSG-Dateien lesen:** Öffnen Sie Outlook-MSG­Dateile mit MsgReader.FromFile() oder MsgReader.FromStream() und greifen Sie auf die zugrunde liegenden MAPI-Eigenschaftsströme, Empfängerverzeichnisse und Anhänge zu.
  • ** MSG-Dateien schreiben:** MS G-Files von einem MsgDocument mit MsgWriter.ToBytes() oder MsgWriter.WriteFile() erstellen.
  • ** MAPI-Zugang auf niedriger Ebene:** Lesen von Eigenschaftsströmen der obersten Ebene, benannten Eigentumsweisen und Anschlussdaten über MsgStorage, MsgStream und MsgStorage.FindStream().
  • MSG-Speichernavigation: Verwenden Sie MsgStorage.FindStream() und MsgStorage.FindStorage(), um benannte Unterangaben zu finden.

Wo MSG-Verarbeitung eingesetzt wird

  • E-Mail-Archivierungspipelines: Massenlesen von .msg Dateien aus Archivverzeichnissen und Extraktion von Metadaten oder Anhängen.
  • Migrationswerkzeuge: Umwandeln von MSG-Sammlungen in Standardformate für den Import in Systeme außerhalb von Outlook.
  • Rechtliche Erkenntnis: Analysieren Sie die Roh-MAPI-Eigenschaftsströme, um alle Nachrichtenfelder einschließlich nicht standardmäßiger Eigenschaften zu extrahieren.
  • Automatisierte Berichtsübermittlung: .msg Dateien programmatisch erstellen und an Outlook-basierte Mailsysteme übermitteln.

High-Level Nachrichten API

  • Nachrichten erstellen: Erstellen Sie eine vollständige E‑Mail mit MapiMessage.Create(subject, body), setzen Sie SenderName, SenderEmailAddress und HtmlBody.
  • Empfänger hinzufügen: Fügen Sie To, Cc und Bcc Empfänger über AddRecipient() mit E‑Mail‑Adresse und Anzeigenamen hinzu.
  • Anhänge verwalten: Fügen Sie Datei‑ und Stream‑Anhänge mit AddAttachment() hinzu oder erstellen Sie MapiAttachment-Objekte direkt mit Filename, MimeType, ContentId und Data.
  • Speichern und neu laden: Serialisieren Sie mit message.Save() oder message.Save(stream) und laden Sie mit MapiMessage.FromFile() oder MapiMessage.FromStream() neu.

Wo die High-Level API verwendet wird

  • Automatisierte E-Mail-Generierung: Erzeugen Sie Tausende von personalisierten MSG-Dateien aus Datenaufzeichnungen in Batch-Jobs.
  • Erstellung von Test-Fixtures: Erstellen Sie bekannte, korrekte MSG-Dateien mit vorhersehbarem Inhalt für Integrationstest‑Suiten.
  • Extraktion von Anhängen: Laden Sie eine MSG-Datei, iterieren Sie message.Attachments und speichern Sie jedes attachment.Data auf die Festplatte.
  • Eigenschaftsinspektion: Greifen Sie auf message.Subject, message.Body, message.SenderEmailAddress und message.Recipients ohne COM‑Automatisierung zu.

EML- und MIME-Konvertierung

  • ** EML in MapiMessage laden:** Eine Standarddatei .eml (RFC 5322 / MIME) über MapiMessage.LoadFromEml(stream) zu einem vollständigen MapiMessage-Objekt analysieren.
  • ** Speichern Sie MapiMessage als EML:** Serialisieren Sie eine MapiMessage zurück in das MIME-Format mit message.SaveToEml() oder message.SaveToEml(stream).
  • ** Rundreise-Fidelität:** Subjekt, Körper, HTML-Body, Absender, Empfänger und Anhänge werden alle durch EML → MSG → EM L-Rundreisen erhalten.
  • Kein externer MIME-Parser: EML-Parsing wird in der Bibliothek nativ implementiert keine System.Net.Mail Abhängigkeit erforderlich.

Wo EML-Umwandlung angewendet wird

  • Formatbridging: Empfangen von E-Mails als EML von Mailservern und konvertieren in MSG für Outlook-kompatible Speicher.
  • Standardsübereinstimmung: Konvertieren Sie proprietäre MSG-Dateien in Standard MIME für die Zustellung an jeden Posttransport.
  • Archive-Normalisierung: Normale ein gemischtes Archiv von Dateien .eml und .msg in einem einzigen Format.
  • Test-Arbeitsflüsse: Erstellen Sie .eml -Festungen in Tests und überprüfen, ob sie den MSG-Rundgang ohne Datenverlust überleben.

Lesen von Themen aus einer MSG-Datei

Öffnen Sie eine Outlook-MSG-Datei aus einem Stream und drucken Sie das Thema 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 und Speichern einer MSG-Nachricht

Erstellen Sie eine komplette E-Mail mit Absender, Empfänger und Anhang, dann schreiben Sie es 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);

Umwandeln von EML in MSG

Laden Sie eine Standarddatei .eml und speichern Sie sie als Outlook-Datei .msg 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);
  

Support und Lernressourcen

 Deutsch