Outlook MAPI プロパティへのアクセスと管理

MAPI properties は、Microsoft Outlook メッセージで使用されるメタデータ項目で、送信者、受信者、件名、添付ファイル、カスタムデータなどの属性を定義します。

Aspose.Email for C++ は、開発者がこれらのプロパティにプログラムでアクセス、変更、削除できるようにします。 MapiMessage オブジェクト、添付ファイル、名前付きプロパティ。

この MapiProperty クラスは MAPI プロパティを表し、以下を含みます:

  • Name – プロパティの文字列識別子です。
  • Tag – プロパティを参照するために使用される数値識別子です。
  • Data – プロパティの値を表すバイト配列です。

MAPI プロパティの読み取り

Aspose.Email はプロパティタグを使用して MAPI プロパティを読み取ることができます。

次のコードサンプルは、MAPI メッセージファイル(.msg)から件名プロパティを読み取り表示する方法を示しています。

  1. Outlook メッセージファイルが保存されているディレクトリパスを取得します。
  2. Outlook メッセージファイル("message.msg")を次にロードします: MapiMessage オブジェクト。
  3. メッセージから MAPI プロパティのコレクションにアクセスします。
  4. 件名プロパティを次で取得してみてください: PR_SUBJECT (ANSI) タグ。
  5. ANSI の件名プロパティが見つからない場合、Unicode の件名プロパティを次で取得してみてください: PR_SUBJECT_W.
  6. 件名プロパティが存在する場合、その文字列値をコンソールに出力します。

MAPI プロパティを設定

MAPI プロパティは、メッセージまたは受信者に対して設定でき、カスタム属性、メールの種類、同期状態などを定義します。

以下のコードサンプルは、MAPI メッセージを作成し、送信者および受信者の詳細、メッセージフラグ、変更時刻などの複数のカスタム MAPI プロパティを設定し、メッセージをファイルに保存する方法を示しています。

注意: ConvertDateTime() ヘルパーは、System::DateTime を MAPI 互換の filetime バイト配列に変換し、日付/時刻プロパティに次のように使用します:

int64_t filetime = t.ToFileTime();

System::ArrayPtr<uint8_t> d = System::MakeArray<uint8_t>(8, 0);

d[0] = (uint8_t)(filetime & 0xFF);

d[1] = (uint8_t)((filetime & 0xFF00) >> 8);

d[2] = (uint8_t)((filetime & 0xFF0000) >> 16);

d[3] = (uint8_t)((filetime & 0xFF000000) >> 24);

d[4] = (uint8_t)((filetime & 0xFF00000000) >> 32);

d[5] = (uint8_t)((filetime & 0xFF0000000000) >> 40);

d[6] = (uint8_t)((filetime & 0xFF000000000000) >> 48);

d[7] = (uint8_t)(((uint64_t)filetime & 0xFF00000000000000) >> 56);

名前付き MAPI プロパティを読む

Named MAPI properties は、ユーザーまたはアプリケーションによって追加されるカスタムプロパティです。

Aspose.Email は、これらのプロパティをメッセージおよび添付ファイルから読み取ることができます。

MSG ファイルから名前付き MAPI プロパティを読み取る

以下のコードサンプルは、MAPI メッセージ ファイルをロードし、そのすべての名前付き MAPI プロパティを取得し、特定の名前付きプロパティ("TEST" と "MYPROP")の値を検索・表示するためにそれらを反復処理する方法を示しています。プロパティコレクションを列挙し、名前識別子に基づいて条件付きで処理することで、MAPI メッセージ内のカスタムまたは拡張プロパティにアクセスする方法を示します。

添付ファイル内の名前付き MAPI プロパティへのアクセス

添付ファイル内の名前付き MAPI プロパティも同様に取得できます:

MAPI プロパティの削除

以下のコードサンプルに示すように、メッセージや添付ファイルから標準および名前付き MAPI プロパティの両方を削除できます。