Funktionen

Funktionsübersicht

Aspose.Email FOSS for C++ bietet eine mehrschichtige API zum Arbeiten mit Outlook MSG-Dateien und Compound File Binary (CFB) Container. Die Bibliothek hat 26 öffentliche Klassen in zwei Subsystemen: CFB und MSG/MAPI.


CFB Containerzugriff

Das CFB-Subsystem liest und schreibt das Microsoft Compound File Binary‑Format — das Containerformat, das Outlook .msg‑Dateien zugrunde liegt.

KlasseZweck
cfb_readerÖffnen und Durchlaufen vorhandener CFB-Dateien
cfb_writerSerialisieren von CFB-Dokumenten in Bytes oder Dateien
cfb_documentIn‑Memory‑Darstellung einer CFB-Datei
cfb_nodeEinzelner Speicher‑ oder Stream‑Knoten im Verzeichnisbaum
cfb_storageBenannter Speichereintrag
cfb_streamBenannter Stream mit Binärdaten

Wichtige Vorgänge:

  • Öffnen aus Datei, Stream oder Bytes: cfb_reader::from_file(), cfb_reader::from_stream(), cfb_reader::from_bytes(), cfb_reader::from_buffer()
  • Inhalte auflisten: storage_ids(), stream_ids(), child_ids(), directory_entry_count()
  • Nach Pfad navigieren: find_child_by_name(), resolve_path()
  • Knoten inspizieren: cfb_node::is_storage(), cfb_node::is_stream(), creation_time(), modified_time()
  • Container schreiben: cfb_writer::to_bytes(), cfb_writer::write_file(), cfb_writer::write_stream()

MSG-Datei lesen und schreiben

Das MSG-Subsystem verarbeitet das Outlook-Nachrichtenformat auf Basis von CFB.

KlasseZweck
msg_readerÖffnen und Parsen von MSG-Dateien
msg_writerSerialisieren von MSG-Dokumenten
msg_documentSpeicherinterne Darstellung einer MSG-Datei

Wichtige Vorgänge:

  • MSG-Dateien öffnen: msg_reader::from_file(), msg_reader::from_stream()
  • Metadaten prüfen: msg_document::major_version(), msg_document::minor_version(), msg_document::strict()
  • MSG-Dateien schreiben: msg_writer::to_bytes(), msg_writer::write_file(), msg_writer::write_stream()
  • In CFB konvertieren: msg_document::to_cfb_document() für den Low-Level-CFB-Zugriff

High-Level MAPI-Nachrichten-API

Die mapi_message‑Klasse bietet eine hochrangige Schnittstelle zum Erstellen, Lesen und Konvertieren von E‑Mail‑Nachrichten.

Erstellen von Nachrichten:

  • mapi_message::create() — eine neue Nachricht mit Betreff und Text erstellen
  • set_subject(), set_body(), set_html_body() — Nachrichteninhalt festlegen
  • set_sender_name(), set_sender_email_address(), set_sender_address_type() — Absender festlegen
  • set_internet_message_id() — den Message-ID-Header festlegen
  • set_message_class() — MAPI-Nachrichtenklasse festlegen
  • unicode_strings() / set_unicode_strings() — Unicode‑String‑Kodierung steuern

Nachrichten werden geladen:

  • mapi_message::from_file() — aus einem Dateipfad laden
  • mapi_message::from_stream() — aus einem Eingabestream laden
  • mapi_message::from_msg_document() — aus einem msg_document laden

Nachrichten speichern:

  • save() — serialisieren zu Bytes, Stream oder Datei
  • to_msg_document() — konvertieren in ein msg_document für Low-Level-Zugriff

Anhänge:

  • mapi_attachment::from_bytes(), mapi_attachment::from_stream() — Anhangsdaten laden
  • mapi_attachment::is_embedded_message() — prüfen, ob Anhang eine eingebettete MSG ist
  • mapi_attachment::load_data() — Lazy-Load des Anhanginhalts

MAPI-Eigenschaften:

  • mapi_property::property_id(), property_type(), property_tag() — Eigenschaftsidentifikation
  • mapi_property::set_value(), flags(), set_flags() — Eigenschaftsmanipulation
  • mapi_property_collection::remove() — Eigenschaften aus einer Sammlung entfernen

EML und MIME-Konvertierung

Konvertieren zwischen Outlook‑MSG-Format und dem Standard‑EML (RFC 5322 / MIME):

  • mapi_message::load_from_eml() — eine .eml‑Datei in ein mapi_message parsen
  • mapi_message::save_to_eml() — ein mapi_message in das EML‑Format serialisieren

Betreff, Text, Absender, Empfänger und Anhänge bleiben bei Rundläufen erhalten.


Aufzählungen und Konstanten

EnumZweck
common_message_property_idStandard-MAPI-Property-IDs (Betreff, Text, Absender, Anhänge)
property_type_codeMAPI-Property-Typcodes (Ganzzahl, Zeichenkette, Binär, Zeit, GUID)
msg_storage_roleSpeicherrollen in MSG-Dateien (Nachricht, Empfänger, Anhang)
directory_object_typeCFB-Verzeichniseintragstypen (Speicher, Stream, Root)
directory_color_flagRot‑Schwarz‑Baum‑Farbflags für CFB-Verzeichniseinträge
sector_markerSpezielle Sektorwerte in CFB-Dateiallokationstabellen
 Deutsch