次の方法で共有


TNEF カスタム添付ファイル処理を使用したメッセージの送信

適用対象: Outlook 2013 | Outlook 2016

メッセージを送信するときに添付ファイルの処理をカスタマイズするには:

  1. IStream インターフェイスとメッセージを OpenTnefStreamEx 関数に渡して、TNEF オブジェクトを取得します。

  2. IMAPIProp::GetPropList メソッドを呼び出して、メッセージに対して定義されているすべてのプロパティの一覧を取得します。

  3. メッセージング システムでサポートされているすべてのプロパティを除外するには、 IMAPIProp メソッドを使用します。 適切なタイミングで、これらのプロパティをメッセージング システムで必要な形式でメッセージング システムに書き込みます。

  4. ITnef::AddProps メソッドを呼び出して、TNEF_PROP_MESSAGE_ONLY フラグを設定して、メッセージのプロパティ (つまり、添付ファイルのプロパティを追加しない) のみを追加します。

  5. これらの項目を使用して ITnef::AddProps を呼び出します。TNEF_PROP_EXCLUDE フラグ、 PR_ATTACH_DATA_BIN (PidTagAttachDataBinary) または PR_ATTACH_DATA_OBJ (PidTagAttachDataObject) プロパティを含むプロパティ タグ配列、および処理する添付ファイルを指定する添付ファイル識別子。

  6. ITnef::SetProps メソッドを使用して、PR_ATTACH_TRANSPORT_NAME (PidTagAttachTransportName) プロパティ タグを、メッセージング システムに対する添付ファイルを識別する一意の文字列を使用して、添付ファイルにメッセージング システムでサポートできないファイル名がある場合に追加します。 たとえば、同じ元のファイル名を持つ複数の添付ファイルや、メッセージング システムの有効なファイル名ではないファイル名などです。 この文字列は、タグ付けされたメッセージ テキストに添付ファイル タグを書き込み、添付ファイルをデータに関連付けるときに、キー番号と共に使用されます。 詳細については、「 TNEF タグ付きメッセージ テキスト」を参照してください。

  7. 添付ファイルごとに AddProps 呼び出しと SetProps 呼び出しを繰り返します。

  8. ITnef::Finish メソッドを呼び出して、要求されたすべてのプロパティが追加された後にメッセージを TNEF ストリームにエンコードします。

  9. ITnef::OpenTaggedBody メソッドを呼び出して、タグ付けされたメッセージ テキストを取得します。 このタグ付きテキストは、 IStream インターフェイスのメソッドを使用して読み取られ、メッセージング システムの添付モデルを使用してエンコードされ、メッセージング システムに書き出されます。

  10. IUnknown::Release メソッドを呼び出して ITnef オブジェクトを解放します。

  11. メッセージング システムの添付ファイル モデルを使用して、残りの添付ファイルをメッセージング システムに書き込みます。

トランスポート プロバイダーは、前に説明した手順を使用して添付ファイルを処理する必要があります。 それが不可能な場合、トランスポート プロバイダーは、カスタマイズされた添付ファイル処理に次の手順を使用する必要があります。

  1. トランスポート プロバイダーは、すべての添付ファイルの PR_ATTACH_TRANSPORT_NAME プロパティに、メッセージング システムの有効な添付ファイル識別子である一意の値が含まれていることを確認します。

  2. その後、トランスポート プロバイダーは、添付ファイルごとに ITnef::AddProps を 1 回呼び出し、TNEF_PROP_CONTAINED フラグを渡します。