.TNEF オプション番号
Transport Neutral Encapsulation Format (TNEF) は Microsoft 独自のもので、Messaging Application Programming Interface (MAPI) に基づいて電子メールの添付ファイルをカプセル化します。 Microsoft Outlook と Microsoft Exchange Server は TNEF を完全にサポートしますが、後で TNEF を MAPI にデコードし、フォーマットされたメールを表示します。 TNEF エンコーディングの電子メール添付ファイルは、MS-TNEF の MIME タイプを持ち、winmail/win.dat として保存されます。 winmail .dat の添付ファイルには、次の情報がカプセル化されています。
メッセージ | OLE オブジェクト | Outlook の機能 |
---|---|---|
元のメッセージの添付ファイル元のフォーマットされたバージョンフォント、テキスト サイズ、およびテキストの色 |
TNEF をサポートしていないその他の電子メール サービスでは、TNEF 形式のメッセージにプレーン テキストが表示されます。 Outlook は、リッチ フォーマットのメッセージを TNEF ファイル (OLE) または特定の Outlook 機能 (フォーム、投票ボタン、会議出席依頼) に埋め込みます。 Outlook 電子メール クライアント内で明示的な TNEF エンコーディングを許可することはできませんが、電子メールの送信に RTF 形式を選択すると、暗黙的に TNEF エンコーディングが容易になります。
TNEF ファイル形式
TNEF データ アルゴリズムは、豊富な階層メッセージ プロパティからフラット化された構造を確立します。これらのフラット化された構造は、特定のプロパティで構成されるシリアル データ ストリームを表すために使用されます。
プロパティがグループで発生したり、複数の値を持つ場合、特定のデータ配置を強制するためにストリームにカウントとパディングが含まれる場合があります。このアルゴリズムの使用が有利な特徴的な状況は、サポートのないメッセージング環境です。このような環境では、豊富なメッセージ プロパティが TNEF ライターによってシリアル データ ストリームにエンコードされます。さらに、基になる TNEF に属さないプロパティは、送信中にカプセル化できます。これらのカプセル化されたプロパティは、TNEF を介してデコードすることで利用可能になり、元のメッセージのすべてのプロパティをクライアント アプリケーションで利用できるようになります。
TNEF では、すべての数値データ型がリトル エンディアンであり、そのサイズは 1 バイトを超えています。リトル エンディアン以外のプラットフォームでこれらの数値を処理するには、適切な変換を行って正しい値を取得する必要があります。文字列値は、[RFC5234] 仕様に従って Augmented Backus-Naur Form (ABNF) 形式で表されます。文字列がヌル文字で終了する場合、それも含まれます。たとえば、"worker@specimen.com" %x00
。
TNEF 属性と処理規則
TNEF のデータ ストリームは、レガシ バージョン番号、署名、プリミティブ キー値、およびコード ページを表す属性で始まります。このコード ページは、エンコーダーが ANSI 属性とプロパティを記録するときに生成されます。その後、ストリームは、最初にメッセージ属性が並び、次に添付属性が続く一連の属性になりました。さまざまなメッセージと添付ファイルの特性が、attMsgProps、attAttachment、attRecipTable などの特別な属性に含まれています。 TNEF ストリームに表示される属性には、メッセージ プロパティを使用するために必要な構造、メッセージ プロパティ、および変換が含まれます。各アトリビュートは、アトリビュートの ID、サイズ、データ、チェックサム、用途に応じたレベルで構成されます。
プロトコルおよびその他のアルゴリズムとの関係
豊富なメッセージ形式をネイティブに表示するメカニズムが不十分なシステムでは、転送に TNEF データ アルゴリズムが必要です。メディア タイプ ms-TNEF を使用すると、アルゴリズムの出力は、添付ファイル (winmail.dat) と [RFC2045] で指定された MIME の本文部分で構成されます。プレーン テキストのメッセージ本文は、[MSDN-UAF] 仕様に従って UUENCODE を使用して送信され、このメッセージ本文または同等のメソッドが受信側でデコードされます。さらに、TNEF は、SMTP、POP3、IMAP4 などのさまざまなインターネット プロトコルを使用してメッセージ データを送信でき、RFC2045 標準に従って MIME を統合します。
適用性ステートメント
単純なメッセージ送信に加えて、TNEF の元のアプリケーションは、メッセージ クラスを使用し、トランスポート プロトコルで元のサポートがない追加機能をサポートするために作成されました。このアプリケーションは、最新のメッセージング クライアントが現在使用しているリッチ メッセージ プロパティと名前付きプロパティの送信のためにさらに改良されました。元の実装に準拠するために、元の属性構文が維持され、特別な属性が新しいメッセージ プロパティを個別に保持します。