機能

機能概要

Aspose.Email FOSS for C++ は、Outlook MSG ファイルおよび Compound File Binary (CFB) コンテナを操作するための階層化された API を提供します。ライブラリには、26 の公開クラスがあり、2 つのサブシステム(CFB と MSG/MAPI)にまたがります。


CFB コンテナ アクセス

CFBサブシステムはMicrosoft Compound File Binary形式を読み書きします — Outlook .msg ファイルの基盤となるコンテナ形式です。

クラス目的
cfb_reader既存のCFBファイルを開き、走査する
cfb_writerCFBドキュメントをバイト列またはファイルにシリアライズする
cfb_documentCFBファイルのメモリ内表現
cfb_nodeディレクトリツリー内の個別のストレージまたはストリームノード
cfb_storage名前付きストレージエントリ
cfb_streamバイナリデータを持つ名前付きストリーム

主な操作:

  • ファイル、ストリーム、またはバイトから開く: cfb_reader::from_file(), cfb_reader::from_stream(), cfb_reader::from_bytes(), cfb_reader::from_buffer()
  • コンテンツを列挙: storage_ids(), stream_ids(), child_ids(), directory_entry_count()
  • パスでナビゲート: find_child_by_name(), resolve_path()
  • ノードを検査: cfb_node::is_storage(), cfb_node::is_stream(), creation_time(), modified_time()
  • コンテナを書き込む: cfb_writer::to_bytes(), cfb_writer::write_file(), cfb_writer::write_stream()

MSG ファイルの読み取りと書き込み

MSGサブシステムは、CFBの上にOutlookメッセージ形式を処理します。

クラス目的
msg_readerMSG ファイルを開いて解析する
msg_writerMSG ドキュメントをシリアライズする
msg_documentMSG ファイルのメモリ内表現

主な操作:

  • MSG ファイルを開く: msg_reader::from_file(), msg_reader::from_stream()
  • メタデータを検査: msg_document::major_version(), msg_document::minor_version(), msg_document::strict()
  • MSG ファイルを書き込む: msg_writer::to_bytes(), msg_writer::write_file(), msg_writer::write_stream()
  • CFB に変換: msg_document::to_cfb_document()(低レベル CFB アクセス用)

ハイレベル MAPI メッセージ API

mapi_message クラスは、メールメッセージの作成、読み取り、変換のためのハイレベルなインターフェイスを提供します。

メッセージの作成:

  • mapi_message::create() — 件名と本文で新しいメッセージを作成する
  • set_subject(), set_body(), set_html_body() — メッセージ内容を設定する
  • set_sender_name(), set_sender_email_address(), set_sender_address_type() — 送信者を設定する
  • set_internet_message_id() — Message-ID ヘッダーを設定する
  • set_message_class() — MAPI メッセージ クラスを設定する
  • unicode_strings() / set_unicode_strings() — Unicode 文字列エンコーディングを制御する

メッセージを読み込み中:

  • mapi_message::from_file() — ファイルパスからロード
  • mapi_message::from_stream() — 入力ストリームからロード
  • mapi_message::from_msg_document()msg_documentからロード

メッセージの保存:

  • save() — バイト、ストリーム、またはファイルにシリアライズする
  • to_msg_document() — 低レベルアクセス用にmsg_documentに変換する

添付ファイル:

  • mapi_attachment::from_bytes(), mapi_attachment::from_stream() — 添付データをロードする
  • mapi_attachment::is_embedded_message() — 添付が埋め込みMSGかどうかを確認する
  • mapi_attachment::load_data() — 添付コンテンツを遅延ロードする

MAPI プロパティ:

  • mapi_property::property_id(), property_type(), property_tag() — プロパティの識別
  • mapi_property::set_value(), flags(), set_flags() — プロパティの操作
  • mapi_property_collection::remove() — コレクションからプロパティを削除

EML と MIME の変換

Outlook MSG形式と標準EML(RFC 5322 / MIME)間の変換:

  • mapi_message::load_from_eml().eml ファイルを mapi_message に解析する
  • mapi_message::save_to_eml()mapi_message を EML 形式にシリアライズする

件名、本文、送信者、受信者、および添付ファイルは、往復処理でも保持されます。


列挙型と定数

列挙型目的
common_message_property_id標準MAPIプロパティ識別子(件名、本文、送信者、添付ファイル)
property_type_codeMAPIプロパティタイプコード(整数、文字列、バイナリ、時間、GUID)
msg_storage_roleMSGファイル内のストレージロール(メッセージ、受信者、添付ファイル)
directory_object_typeCFBディレクトリエントリタイプ(ストレージ、ストリーム、ルート)
directory_color_flagCFBディレクトリエントリの赤黒木カラー フラグ
sector_markerCFBファイル割り当てテーブルの特別セクタ値
 日本語