1. 製品
  2.   Aspose.Email
  3.   Aspose.Email FOSS for C++

Aspose.Email FOSS for C++

C++ から Outlook MSG ファイルと CFB コンテナを読み取り、作成、処理します — 無料でオープンソース、Microsoft Outlook への依存はありません。

MSGおよびCFBファイルのためのオープンソースC++ライブラリ

Aspose.Email FOSS for C++ は、Microsoft Outlook .msg ファイルと Compound File Binary (CFB) コンテナを操作するための MIT ライセンスのオープンソース C++ ライブラリです。CMake でヘッダーをインクルードすれば、Microsoft Outlook や任意のプロプライエタリランタイムをインストールせずに、メールメッセージの読み取り、作成、処理をすぐに開始できます。

このライブラリは 2 つのレベルのアクセスを提供します。低レベルでは、cfb_readercfb_writer が CFB バイナリコンテナに対する完全な制御を可能にします — ディレクトリエントリの走査、ストレージノードとストリームデータの読み書き、そして生のセクタレイアウトの検査が行えます。msg_readermsg_writer は CFB 上の MSG フォーマットを処理し、MAPI プロパティストリーム、受信者テーブル、添付ファイルのサブストレージを公開します。高レベルでは、mapi_message を使用して新しいメッセージをゼロから作成し、件名、本文、受信者、添付ファイルを読み取り、MSG と EML フォーマット間の変換が可能です。

このライブラリは C++17 コンパイラがあれば任意のプラットフォームでビルドでき、外部依存関係がないため、Windows、Linux、macOS、Docker コンテナ、組み込みシステムに適しています。

追加機能を備えたエンタープライズエディションは Aspose.Email for C++ として提供されています。

CFB コンテナ 読み書き

  • Open CFB files: 既存のCFBコンテナをファイルパス、ストリーム、またはバイト配列から cfb_reader::from_file()cfb_reader::from_stream()、または cfb_reader::from_bytes() を使用してロードします。
  • Traverse the directory tree: storage_ids()stream_ids()child_ids() を使用してストレージとストリームを列挙し、resolve_path() で入れ子階層をナビゲートします。
  • Inspect nodes: cfb_node::is_storage()cfb_node::is_stream() でノードタイプを確認し、creation_time()modified_time() でタイムスタンプを読み取ります。
  • Write CFB containers: cfb_document を使用してプログラムでCFBドキュメントを構築し、cfb_writer::to_bytes() または cfb_writer::write_file() でバイトまたはファイルにシリアライズします。

CFB アクセス が 使われる 場所

  • 直接 CFB アクセスにより法医検査と修理が可能. このファイルは,CFPの".msg“を入力するときに作成されます.
  • カスタムバイナリーフォーマット: CFBをデータストレージに使用する古いアプリケーションは COM依存性なく読み書きできます.
  • データ復元: 完全なディレクトリツリーを横切って,破損したまたは非標準 CFBファイルから原始ストリームバイトを取り出す.

MSG ファイル読み書き

  • MSG ファイルの読み取り: Outlook MSG ファイルを msg_reader::from_file() または msg_reader::from_stream() で開き、基礎となる MAPI プロパティ ストリームと添付サブストレージにアクセスします。
  • MSG ファイルの書き込み: msg_document から msg_writer::to_bytes() または msg_writer::write_file() を使用して MSG ファイルを生成します。
  • MSG ドキュメントの検査: msg_document::major_version()msg_document::minor_version() を介してバージョン メタデータにアクセスし、msg_document::strict() で厳密さをチェックします。
  • CFB への変換: msg_document::to_cfb_document() を使用して MSG ファイルから基礎となる CFB ドキュメントを抽出します。

MSG の 処理 が 用い られ て いる 所

  • Email archival pipelines: アーカイブディレクトリから .msg ファイルを一括読み取り、メタデータまたは添付ファイルを抽出します。
  • Migration tools: MSG コレクションを標準フォーマットに変換し、Outlook 以外のシステムへインポートできるようにします。
  • Legal discovery: 生の MAPI プロパティ ストリームを解析し、非標準プロパティを含むすべてのメッセージ フィールドを抽出します。

高レベルのMAPIメッセージ API

  • Create messages: mapi_message::create() を使用して完全なメールを作成し、件名、本文、および HTML 本文を set_subject()set_body()set_html_body() で設定します。
  • Set sender details: 送信メッセージのために set_sender_name()set_sender_email_address()set_sender_address_type() を設定します。
  • Manage attachments: バイトまたはストリームから添付ファイルを mapi_attachment::from_bytes()mapi_attachment::from_stream() で読み込み、is_embedded_message() を使用して埋め込みメッセージを確認します。
  • Save and reload: mapi_message::save() でシリアライズし、mapi_message::from_file() または mapi_message::from_stream() で再ロードします。

高レベルのAPIが使用される場所

  • 自動化されたメール生成: バッチワークでデータレコードから数千のパーソナライズされたMSGファイルを生成します.
  • テスト装置の作成: 統合試験用の予測可能なコンテンツを持つ既知のMSGファイルを作成します.
  • 添付ファイルをダウンロードして,それぞれディスクに保存します.

EML と MIME 変換

  • Load EML into mapi_message: 標準の .eml ファイル (RFC 5322 / MIME) を mapi_message::load_from_eml() を介して完全な mapi_message オブジェクトに解析します。
  • Save mapi_message as EML: mapi_messagesave_to_eml() で MIME 形式にシリアライズします。
  • Round-trip fidelity: 件名、本文、送信者、受信者、および添付ファイルは EML から MSG へ、そして EML への往復で保持されます。

EML 変換 が 使われる 所

  • 形式ブリッジ:メールサーバーからEMLとして電子メールを受け取って,Outlook対応ストレージのためにMSGに変換します.
  • 標準の準拠: 独自のMSGファイルを,任意の郵便輸送に配信するために標準MIMEに変換します.
  • アーカイブ標準化: .eml.msg のファイルを組み合わせたアーキビルを単一のフォーマットに標準化する.

MSG ファイルから主題を読み取ること

ストリームから Outlook MSG ファイルを開くと,対象を印刷します Microsoft Outlook は不要です.

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

MSG メッセージを作成して保存する

送信者,受信者および添付ファイルを含む完全なメールを作成し MSGと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);
}
  

サポートと学習リソース

 日本語