1. Produkte
  2.   Aspose.Email
  3.   Aspose.Email FOSS for C++

Aspose.Email FOSS für C++

Lesen, Erstellen und Verarbeiten von Outlook‑MSG‑Dateien und CFB‑Containern aus C++ — kostenlos und Open-Source, keine Microsoft‑Outlook‑Abhängigkeit.

Open-Source C++‑Bibliothek für MSG‑ und CFB‑Dateien

Aspose.Email FOSS für C++ ist eine MIT‑lizenzierte, Open‑Source C++‑Bibliothek zum Arbeiten mit Microsoft Outlook .msg-Dateien und Compound File Binary (CFB)-Containern. Binden Sie die Header über CMake ein 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 cfb_reader und cfb_writer die volle Kontrolle über CFB‑binäre Container — Verzeichniseinträge durchlaufen, Speicher­knoten und Stream‑Daten lesen und schreiben sowie das rohe Sektor‑Layout inspizieren. msg_reader und msg_writer 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 mapi_message das Erstellen neuer Nachrichten von Grund auf, das Lesen von Betreffzeilen, Körpern, Empfängern und Anhängen sowie die Konvertierung zwischen MSG‑ und EML‑Format. Die Bibliothek lässt sich auf jeder Plattform mit einem C++17‑Compiler erstellen und hat keine externen Abhängigkeiten, wodurch sie für Windows, Linux, macOS, Docker‑Container und eingebettete Systeme geeignet ist. Eine Enterprise-Edition mit zusätzlichen Funktionen wird als Aspose.Email for C++ angeboten.

CFB‑Container Lesen und Schreiben

  • CFB-Dateien öffnen: Laden Sie vorhandene CFB-Container von einem Dateipfad, Stream oder Byte-Array über cfb_reader::from_file(), cfb_reader::from_stream() oder cfb_reader::from_bytes().
  • Durchlaufen des Verzeichnisbaums: Auflisten von Storages und Streams mit storage_ids(), stream_ids() und child_ids() und Navigieren durch verschachtelte Hierarchien mit resolve_path().
  • Knoten inspizieren: Prüfen Sie den Knotentyp mit cfb_node::is_storage() und cfb_node::is_stream(), lesen Sie Zeitstempel über creation_time() und modified_time().
  • CFB-Container schreiben: Erstellen Sie CFB-Dokumente programmgesteuert mit cfb_document und serialisieren Sie sie in Bytes oder in eine Datei über cfb_writer::to_bytes() oder cfb_writer::write_file().

Wo CFB-Zugriff verwendet wird

  • MSG-Datei-Inspektion: CFB ist das Containerformat für Outlook .msg-Dateien — direkter CFB-Zugriff ermöglicht forensische Inspektion und Reparatur.
  • Benutzerdefinierte Binärformate: Jede Legacy-Anwendung, die CFB für die Datenspeicherung verwendet, kann gelesen oder geschrieben werden, ohne dass eine COM-Abhängigkeit besteht.
  • Data recovery: Durchsuchen Sie den gesamten Verzeichnisbaum und extrahieren Sie Roh-Stream-Bytes aus beschädigten oder nicht standardmäßigen CFB-Dateien.

MSG‑Datei Lesen und Schreiben

  • MSG-Dateien lesen: Öffnen Sie Outlook MSG-Dateien mit msg_reader::from_file() oder msg_reader::from_stream() und greifen Sie auf die zugrunde liegenden MAPI-Property-Streams und Anhang-Sub-Stores zu.
  • MSG-Dateien schreiben: Erzeugen Sie MSG-Dateien aus einem msg_document mit msg_writer::to_bytes() oder msg_writer::write_file().
  • MSG-Dokumenteninspektion: Greifen Sie auf Versionsmetadaten über msg_document::major_version(), msg_document::minor_version() zu und prüfen Sie die Striktheit mit msg_document::strict().
  • In CFB konvertieren: Extrahieren Sie das zugrunde liegende CFB-Dokument aus einer MSG-Datei über msg_document::to_cfb_document().

Wo die MSG-Verarbeitung verwendet wird

  • E-Mail-Archivierungspipelines: Bulk-read .msg Dateien aus Archivverzeichnissen lesen und Metadaten oder Anhänge extrahieren.
  • Migrationswerkzeuge: MSG‑Sammlungen in Standardformate konvertieren, um sie in Nicht‑Outlook‑Systeme zu importieren.
  • Legal discovery: Roh-MAPI-Property-Streams analysieren, um alle Nachrichtenfelder einschließlich nichtstandardmäßiger Eigenschaften zu extrahieren.

High-Level MAPI-Nachrichten-API

  • Nachrichten erstellen: Erstellen Sie eine vollständige E‑Mail mit mapi_message::create(), dann setzen Sie Betreff, Text und HTML-Text über set_subject(), set_body() und set_html_body().
  • Absenderdetails festlegen: Konfigurieren Sie set_sender_name(), set_sender_email_address() und set_sender_address_type() für die ausgehende Nachricht.
  • Anhänge verwalten: Laden Sie Anhänge aus Bytes oder Streams mit mapi_attachment::from_bytes() und mapi_attachment::from_stream(), und prüfen Sie auf eingebettete Nachrichten über is_embedded_message().
  • Speichern und neu laden: Serialisieren mit mapi_message::save() und neu laden mit mapi_message::from_file() oder mapi_message::from_stream().

Wo die High-Level-API verwendet wird

  • Automatisierte E-Mail-Generierung: Erzeugen Sie Tausende personalisierter MSG-Dateien aus Datensätzen in Batch-Jobs.
  • Testfixture-Erstellung: Erstelle bekannte, funktionierende MSG-Dateien mit vorhersehbarem Inhalt für Integrationstest‑Suiten.
  • Anhangsextraktion: Laden Sie eine MSG-Datei, iterieren Sie über Anhänge und speichern Sie jeden auf der Festplatte.

EML- und MIME-Konvertierung

  • EML in mapi_message laden: Parsen Sie eine standardmäßige .eml-Datei (RFC 5322 / MIME) in ein vollständiges mapi_message-Objekt über mapi_message::load_from_eml().
  • Speichern Sie mapi_message als EML: Serialisieren Sie ein mapi_message zurück in das MIME-Format mit save_to_eml().
  • Round-trip fidelity: Betreff, Nachrichtentext, Absender, Empfänger und Anhänge bleiben bei EML‑zu‑MSG‑zu‑EML‑Rundreisen erhalten.

Wo die EML-Konvertierung verwendet wird

  • Format bridging: Empfangen Sie E-Mails als EML von Mail-Servern und konvertieren Sie sie in MSG für Outlook-kompatible Speicherung.
  • Standardkonformität: Proprietäre MSG-Dateien in standardmäßiges MIME konvertieren, um sie an jeden Mail-Transport zu liefern.
  • Archivnormalisierung: Normalisieren Sie ein gemischtes Archiv aus .eml- und .msg-Dateien zu einem einzigen Format.

Betreff aus einer MSG-Datei lesen

Öffnen Sie eine Outlook‑MSG‑Datei aus einem Stream und geben Sie den Betreff aus — kein Microsoft Outlook erforderlich.

#include <fstream>
#include <iostream>

#include "aspose/email/foss/msg/mapi_message.hpp"

int main()
{
    std::ifstream input("sample.msg", std::ios::binary);
    auto message = aspose::email::foss::msg::mapi_message::from_stream(input);
    std::cout << message.subject() << '\n';
}

Eine MSG-Nachricht erstellen und speichern

Erstellen Sie eine vollständige E‑Mail mit Absender, Empfänger und Anhang und schreiben Sie sie anschließend in die Formate MSG und EML.

#include <fstream>

#include "aspose/email/foss/msg/mapi_message.hpp"

int main()
{
    auto message = aspose::email::foss::msg::mapi_message::create("Hello", "Body");
    message.set_sender_name("Alice");
    message.set_sender_email_address("alice@example.com");
    message.add_recipient("bob@example.com", "Bob");
    message.add_attachment("note.txt", std::vector<std::uint8_t>{'a', 'b', 'c'}, "text/plain");

    std::ofstream msg_output("hello.msg", std::ios::binary);
    message.save(msg_output);

    std::ofstream eml_output("hello.eml", std::ios::binary);
    message.save_to_eml(eml_output);
}
  

Support und Lernressourcen

 Deutsch