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

Aspose.Email FOSS for C++

Lesen, Erstellen und Verarbeiten von Outlook‑MSG‑Dateien und CFB‑Containern aus C++ — kostenlos und Open‑Source, ohne 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 niedriger Ebene geben cfb_reader und cfb_writer vollständige Kontrolle über CFB-Binärcontainer — Verzeichniseinträge durchlaufen, Speicherknoten 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 hoher Ebene ermöglicht mapi_message das Erstellen neuer Nachrichten von Grund auf, das Lesen von Betreff, Inhalt, 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 einsetzen und hat keine externen Abhängigkeiten, wodurch sie für Windows, Linux, macOS, Docker-Container und Embedded-Systeme geeignet ist.

Eine Enterprise-Edition mit zusätzlichen Funktionen wird als Aspose.Email for C++ angeboten.

CFB-Container Lesen und Schreiben

  • Öffnen Sie CFB-Dateien: Laden Sie vorhandene CF B-Container aus einem Dateipfad, Stream oder Byte-Array über cfb_reader::from_file(), cfb_reader::from_stream() oder cfb_reader::from_bytes().
  • ** Durchqueren Sie den Verzeichnisbaum:** Aufzählen von Speichern und Streams mit storage_ids(), stream_ids() und child_ids() und navigieren in verschachtelten Hierarchien mitresolve_path().
  • Knoten überprüfen: Knotentyp mit cfb_node::is_storage() und cfb_node::is_stream() prüfen, Zeitmarken über creation_time() oder modified_time() lesen.
  • ** CFB-Container schreiben:** Erstellen Sie CF B-Dokumente programmatisch mit cfb_document und serialisieren Sie sie in Byte oder Datei über cfb_writer::to_bytes() oder cfb_writer::write_file().

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.

MSG-Datei Lesen und Schreiben

  • ** MSG-Dateien lesen:** Öffnen Sie Outlook-MSG­Daten mit msg_reader::from_file() oder msg_reader::from_stream() und greifen Sie auf die zugrunde liegenden MAPI-Eigenschaftsströme und Anlagenunterlagerungen zu.
  • ** MSG-Dateien schreiben:** MS G-Files von einem msg_document mit msg_writer::to_bytes() oder msg_writer::write_file() erstellen.
  • MSG-Dokumentenprüfung: Zugriff auf die Metadaten der Version über msg_document::major_version(), msg_document::minor_version() und Prüfung der Strenge mit msg_document::strict().
  • ** Konvertieren in CFB:** Extrahieren Sie das zugrunde liegende CF B-Dokument aus einer MSG-datei über msg_document::to_cfb_document().

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.

MAPI-Nachrichten API auf hoher Ebene

  • Mitteilungen erstellen: Erstellen Sie eine vollständige E-Mail mit mapi_message::create(), setzen Sie dann Betreff, Körper und HTML-Körper über set_subject(), set_body() und set_html_body().
  • Setzen Sie Absenderdaten fest: Konfigurieren Sie set_sender_name(), set_sender_email_address() und set_sender_address_type() für die ausgehende Nachricht.
  • Verwalten von Anhängen: Laden Sie Anlagen aus Bytes oder Streams mit mapi_attachment::from_bytes() und mapi_attachment::from_stream(), und überprüfen Sie nach eingebetteten Nachrichten über is_embedded_message().
  • ** Speichern und Neuladen:** Serialisieren mit mapi_message::save() und Neu-laden mitmapi_message::from_file() oder mapi_message::from_stream().

Wo die High-Level API verwendet wird

  • Automatisierte E-Mail-Generierung: Generieren Sie Tausende von personalisierten MSG-Dateien aus Datenverzeichnissen in Batch-Jobs.
  • Erstellung von Testanlagen: Erstellen bekannter MSG-Dateien mit vorhersehbarem Inhalt für Integrationstestsuiten.
  • Anlage-Extraktion: Laden Sie eine MSG-Datei, iterieren Sie Anlagen und speichern Sie jede auf Festplatte.

EML- und MIME-Konvertierung

  • ** EML in mapi_message laden:** Eine Standarddatei .eml (RFC 5322 / MIME) über mapi_message::load_from_eml() zu einem vollständigen mapi_message-Objekt analysieren.
  • Speichern Sie mapi_message als EML: Serialisieren Sie eine mapi_message zurück in MIME-Format mit save_to_eml().
  • Rundfahrt-Fidelität: Gegenstand, Körper, Absender, Empfänger und Anhänge werden durch EML zu MSG zu EM L Rundfahrten erhalten.

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.

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.

#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';
}

Erstellen und Speichern einer MSG-Nachricht

Erstellen Sie eine komplette E-Mail mit Absender, Empfänger und Anhang, dann schreiben Sie es sowohl in MSG als auch EML Formaten.

#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