Aspose.Email FOSS for C++ は、Microsoft Outlook .msg ファイルと Compound File Binary (CFB) コンテナを操作するための MIT ライセンスのオープンソース C++ ライブラリです。CMake でヘッダーをインクルードすれば、Microsoft Outlook や任意のプロプライエタリランタイムをインストールせずに、メールメッセージの読み取り、作成、処理をすぐに開始できます。
このライブラリは 2 つのレベルのアクセスを提供します。低レベルでは、cfb_reader と cfb_writer が CFB バイナリコンテナに対する完全な制御を可能にします — ディレクトリエントリの走査、ストレージノードとストリームデータの読み書き、そして生のセクタレイアウトの検査が行えます。msg_reader と msg_writer は CFB 上の MSG フォーマットを処理し、MAPI プロパティストリーム、受信者テーブル、添付ファイルのサブストレージを公開します。高レベルでは、mapi_message を使用して新しいメッセージをゼロから作成し、件名、本文、受信者、添付ファイルを読み取り、MSG と EML フォーマット間の変換が可能です。
このライブラリは C++17 コンパイラがあれば任意のプラットフォームでビルドでき、外部依存関係がないため、Windows、Linux、macOS、Docker コンテナ、組み込みシステムに適しています。
追加機能を備えたエンタープライズエディションは Aspose.Email for C++ として提供されています。
cfb_reader::from_file()、cfb_reader::from_stream()、または cfb_reader::from_bytes() を使用してロードします。storage_ids()、stream_ids()、child_ids() を使用してストレージとストリームを列挙し、resolve_path() で入れ子階層をナビゲートします。cfb_node::is_storage() と cfb_node::is_stream() でノードタイプを確認し、creation_time() と modified_time() でタイムスタンプを読み取ります。cfb_document を使用してプログラムでCFBドキュメントを構築し、cfb_writer::to_bytes() または cfb_writer::write_file() でバイトまたはファイルにシリアライズします。.msg“を入力するときに作成されます.msg_reader::from_file() または msg_reader::from_stream() で開き、基礎となる MAPI プロパティ ストリームと添付サブストレージにアクセスします。msg_document から msg_writer::to_bytes() または msg_writer::write_file() を使用して MSG ファイルを生成します。msg_document::major_version()、msg_document::minor_version() を介してバージョン メタデータにアクセスし、msg_document::strict() で厳密さをチェックします。msg_document::to_cfb_document() を使用して MSG ファイルから基礎となる CFB ドキュメントを抽出します。.msg ファイルを一括読み取り、メタデータまたは添付ファイルを抽出します。mapi_message::create() を使用して完全なメールを作成し、件名、本文、および HTML 本文を set_subject()、set_body()、set_html_body() で設定します。set_sender_name()、set_sender_email_address()、set_sender_address_type() を設定します。mapi_attachment::from_bytes() と mapi_attachment::from_stream() で読み込み、is_embedded_message() を使用して埋め込みメッセージを確認します。mapi_message::save() でシリアライズし、mapi_message::from_file() または mapi_message::from_stream() で再ロードします。.eml ファイル (RFC 5322 / MIME) を mapi_message::load_from_eml() を介して完全な mapi_message オブジェクトに解析します。mapi_message を save_to_eml() で MIME 形式にシリアライズします。.eml と .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と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);
}