Share via


トランスポート エージェントの概要

 

適用先: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

トピックの最終更新日: 2007-07-17

トランスポート エージェントを使用すると、Microsoft Exchange Server 2007 を実行しているコンピュータに、Microsoft、サード パーティ ベンダ、または組織によって作成されたカスタム ソフトウェアをインストールできます。これにより、このソフトウェアは、ハブ トランスポート サーバーまたはエッジ トランスポート サーバーのトランスポート パイプラインを通過する電子メール メッセージを処理できます。カスタムのトランスポート エージェントは、スパム対策プログラムやウイルス対策プログラムなど組織が必要とするトランスポート機能を、追加機能として Exchange 2007 に提供します。

トランスポート エージェントは、通常、Exchange 2007 と共に動作するように設計されているアプリケーションの一部として自動的にインストールされます。しかし、Exchange 2007 組織を経由して配信されるメールを管理する独自のトランスポート エージェントを、組織で開発したい場合もあるでしょう。

Caution注意 :
トランスポート エージェントは、受信したすべての電子メール メッセージにフル アクセスできます。Exchange では、トランスポート エージェントの動作に制限はありません。動作が不安定であったり、セキュリティに不備があったりするトランスポート エージェントは、Exchange の安定性やセキュリティに影響する場合があります。したがって、トランスポート エージェントをインストールするときは、信頼性があり、テスト環境で十分にテストされたエージェントだけをインストールする必要があります。

新しいトランスポート エージェントを作成する方法の詳細については、Microsoft Exchange Server 2007 SDK のトランスポート エージェントに関するページを参照してください (このサイトは英語の場合があります)。

Exchange 2007 のトランスポート パイプラインの詳細については、「トランスポートのアーキテクチャ」を参照してください。

トランスポート エージェントと SMTP イベント

Exchange 2007 用に作成されたトランスポート エージェントは、SMTP (簡易メール転送プロトコル) イベントを使用します。これらのイベントは、トランスポート パイプラインをメッセージが通過すると発生します。SMTP イベントによって、トランスポート エージェントは、SMTP の対話中および組織内でのメッセージ ルーティング中の特定の時点でのメッセージに対するアクセス権を与えられます。表 1 は、トランスポート パイプラインでメッセージに対するアクセス権を付与する SMTP イベントの一覧です。

表 1   SMTP イベント

順序 SMTP イベント 説明

1

OnConnectEvent

このイベントは、リモート SMTP ホストからの最初の接続時に発生します。

2

OnHeloCommand

このイベントは、リモート SMTP ホストによって SMTP コマンド HELO が発行されると発生します。

3

OnEhloCommand

このイベントは、リモート SMTP ホストによって SMTP コマンド EHLO が発行されると発生します。

4

OnAuthCommand

このイベントは、リモート SMTP ホストによって SMTP コマンド AUTH が発行されると発生します。

5

OnEndOfAuthentication

このイベントは、リモート SMTP ホストが認証を完了すると発生します。

6

OnMailCommand

このイベントは、リモート SMTP ホストによって SMTP コマンド MAIL FROM が発行されると発生します。

7

OnRcptCommand

このイベントは、リモート SMTP ホストによって SMTP コマンド RCPT TO が発行されると発生します。

8

OnDataCommand

このイベントは、リモート SMTP ホストによって SMTP コマンド DATA が発行されると発生します。

9

OnEndOfHeaders

このイベントは、リモート SMTP ホストが電子メール メッセージのヘッダーの送信を完了すると発生します。

10

OnEndOfData

このイベントは、データの最後を意味する <CRLF>.<CRLF> をリモート SMTP ホストが発行すると発生します。

**

OnHelpCommand

このイベントは、リモート SMTP ホストによって SMTP コマンド HELP が発行されると発生します。このイベントは、SMTP イベント OnConnectEvent の発生後から SMTP イベント OnDisconnectEvent の発生前までの間であれば、いつでも発生する可能性があります。

**

OnNoopCommand

このイベントは、リモート SMTP ホストによって SMTP コマンド NOOP が発行されると発生します。このイベントは、SMTP イベント OnConnectEvent の発生後から SMTP イベント OnDisconnectEvent の発生前までの間であれば、いつでも発生する可能性があります。

**

OnReject

このイベントは、受信側の SMTP ホストが送信側の SMTP ホストに対して、一時的または永続的な配信状態通知 (DSN) コードを発行すると発生します。このイベントは、SMTP イベント OnConnectEvent の発生後から SMTP イベント OnDisconnectEvent の発生前までの間であれば、いつでも発生する可能性があります。

**

OnRsetCommand

このイベントは、送信側 SMTP ホストによって SMTP コマンド RSET が発行されると発生します。このイベントは、SMTP イベント OnConnectEvent の発生後から SMTP イベント OnDisconnectEvent の発生前までの間であれば、いつでも発生する可能性があります。

11

OnDisconnectEvent

このイベントは、受信側または送信側のいずれかの SMTP ホストによって、SMTP 対話の接続が切断されると発生します。

12

OnSubmittedMessage

このイベントは、受信側 SMTP ホストの発信キューにメッセージが送信されると発生します。メッセージが SMTP 送信、MAPI 送信、ピックアップ ディレクトリ、または再生ディレクトリのいずれを経由して到着したかにかかわらず、すべてのメッセージに対してこのイベントが発生します。

13

OnResolvedMessage

このイベントは、すべての受信者が解決された後で、各受信者の次ホップが決定される前に発生します。OnResolvedMessage ルーティング イベントでは、受信者ごとの SetRoutingOverride メソッドを使用して、後続のイベントで既定のルーティング動作を変更することができます。

note注 :
OnResolvedMessage ルーティング イベントは、Exchange 2007 Service Pack 1 (SP1) でのみ使用できます。

14

OnRoutedMessage

このイベントは、メッセージが分類され、配布リストが展開され、受信者が解決された後で発生します。

トランスポート エージェントは、表 1 に示したいずれの SMTP イベントに対しても登録できますが、通常は、トランスポート エージェントが対象とする処理によって、どの SMTP イベントで実行されるかが決まります。

スパム対策エージェントの場合、メッセージのコンテンツの有効性以外で最も考慮する必要がある重要な点は、どの時点で有効なスパム メッセージを識別し、拒否するかということです。スパムであると確認されたメッセージをすばやく拒否するほど、組織のコストは減少します。SMTP イベント OnEndOfData より前に発生するすべてのイベントでは、受信側 SMTP ホストが配信不能レポート (NDR) を生成する必要はありません。SMTP イベント OnEndOfData が到着するまではメッセージのコンテンツが完全に配信されないため、NDR は生成されません。したがって、この状態では、送信側 SMTP ホストにメッセージの最終的な配信の責任があります。受信側 SMTP ホストへの配信が SMTP イベント OnEndOfData より前に失敗した場合、送信側 SMTP ホストがメッセージの送信者に対して NDR を生成する必要があります。SMTP イベント OnEndOfData の到着後であれば、受信側 SMTP ホストがメッセージのコンテンツを完全に受け取っています。このため、受信側 SMTP ホストが、メッセージを正しく配信する責任と、メッセージの送信者に対して NDR を生成および送信する責任を負うことになります。したがって、受信側 SMTP ホストがメッセージのコンテンツを格納し、メッセージの送信者に対する NDR を生成する必要性が生じる可能性を低減するには、スパム対策エージェントが SMTP イベント OnEndOfData より前に、自身を SMTP イベントに登録することが重要です。

一方、ウイルス対策エージェントの場合、最も考慮する必要がある重要な点は各メッセージを確実にスキャンすることです。すべてのメッセージを確認しなければならないエージェントは、SMTP イベント OnSubmittedMessage に対して構成される必要があります。トランスポート パイプラインを通過するすべてのメッセージに対して、SMTP イベント OnSubmittedMessage が発生します。これは、このイベントが、リモート ホストからの SMTP 送信、メールボックス サーバーの役割を実行しているコンピュータからの MAPI 送信、カスタム アプリケーションが使用するピックアップ ディレクトリ、サード パーティの電子メール アプリケーションが使用する再生ディレクトリなど、想定されるすべての送信エントリ ポイントの後で発生するからです。

トランスポート エージェントの優先順位

Exchange 2007 では、Exchange に組み込まれているトランスポート エージェントおよびカスタム アプリケーションによって追加されたトランスポート エージェントの優先度を指定できます。トランスポート エージェントの優先度を指定すると、メッセージを最初に処理するエージェントを制御できます。トランスポート エージェントには、1 以上の優先度を割り当てることができます。優先度が 1 に近いトランスポート エージェントが先にメッセージに適用されます。ただし、トランスポート エージェントに対してユーザーが割り当てた優先度は、メッセージに適用されるトランスポート エージェントの順序の決定に使用される 1 つの要素でしかありません。トランスポート エージェントの優先度を決定するもう 1 つの要素は、トランスポート エージェントが登録された SMTP イベントが SMTP イベントの順序のどの位置にあるかということです。

上記の表 1 に示したように、SMTP イベントがトランスポート パイプラインを通過するメッセージに適用される順序は決まっています。たとえば、SMTP イベント OnConnectEvent は常に、SMTP イベント OnHeloCommand または OnEhloCommand の前に発生します。トランスポート エージェントは特定の SMTP イベントに対して登録されるため、SMTP イベント OnEhloCommand に対して登録されたトランスポート エージェントに割り当てられた優先度に関係なく、SMTP イベント OnConnectEvent に対して登録されたトランスポート エージェントが、常に先にメッセージに対して適用されます。

たとえば、次のようにトランスポート エージェントを構成したとします。

  • トランスポート エージェント AgentA の優先度は 1 で、SMTP イベント OnEndofHeaders に対して登録
  • トランスポート エージェント AgentB の優先度は 4 で、SMTP イベント OnMailCommand に対して登録

Get-TransportAgent コマンドレットを使用して登録されたエージェントの一覧を表示すると、トランスポート エージェント AgentA はトランスポート エージェント AgentB より優先度が高く表示されます。しかし、トランスポート パイプラインをメッセージが通過すると、トランスポート エージェント AgentB が、トランスポート エージェント AgentA より先にメッセージに適用されます。これは、メッセージに対して、SMTP イベント OnEndOfHeaders より前に SMTP イベント OnMailCommand が発生するためです。

トランスポート エージェントに対してユーザーが割り当てた優先度は、同じ SMTP イベントに 2 つ以上のトランスポート エージェントが登録されている場合に使用されます。トランスポート エージェント AgentA とトランスポート エージェント AgentB が両方とも SMTP イベント OnEndofHeaders に対して登録されている場合、メッセージに対してこのイベントが発生すると、トランスポート エージェント AgentA がトランスポート エージェント AgentB より先にメッセージに適用されます。トランスポート エージェント AgentB が SMTP イベント OnEndOfHeadersOnMailCommand の両方に対して登録されている場合、エージェントはメッセージに 2 回適用されます。SMTP イベント OnMailCommand に対して登録されているため、トランスポート エージェント AgentB が最初に適用されます。その後、トランスポート エージェント AgentA とトランスポート エージェント AgentB の両方が登録されている SMTP イベント OnEndOfHeaders がメッセージに対して発生すると、トランスポート エージェント AgentA が適用されます。これは、トランスポート エージェント AgentB より優先度が高いからです。最後に、2 回目のトランスポート エージェント AgentB が適用されます。

組み込みのトランスポート エージェント

Exchange 2007 には、トランスポート ルールやジャーナリングなどの機能を提供する既定のトランスポート エージェントが組み込まれています。既定では、次の表に示すトランスポート エージェントが、ハブ トランスポート サーバーおよびエッジ トランスポート サーバーにインストールされます。また、この表では、各エージェントの詳細情報が記載されている項目も示しています。

Table 2   ハブ トランスポート サーバーのトランスポート エージェント

エージェント名 優先度 SMTP イベント 説明

トランスポート ルール エージェント

1

OnRoutedMessage

トランスポート ルールの概要

ジャーナリング エージェント

2

OnSubmittedMessage、OnRoutedMessage

ジャーナリングの概要

Active Directory Rights Management Services (AD RMS) プレライセンス エージェント

note注 :
AD RMS プレライセンス エージェントは、Exchange 2007 SP1 でのみ使用できます。既定では無効になっています。

3

OnRoutedMessage

AD RMS プレライセンス エージェントについて

Table 3   エッジ トランスポート サーバーのトランスポート エージェント

エージェント名 優先度 SMTP イベント 関連項目

接続フィルタ エージェント

1

OnConnectEvent、OnMailCommand、OnRcptComand、OnEndOfHeaders

接続フィルタ

アドレス書き換え受信エージェント

2

OnRcptCommand、OnEndOfHeaders

アドレス書き換えの計画

エッジ ルール エージェント

3

OnEndOfData

トランスポート ルールの概要

コンテンツ フィルタ エージェント

4

OnEndOfData

コンテンツ フィルタ

Sender ID エージェント

5

OnEndOfHeaders

Sender ID

送信者フィルタ エージェント

6

OnMailCommand、OnEndOfHeaders

送信者のフィルタ

受信者フィルタ エージェント

7

OnRcptCommand

受信者のフィルタ

プロトコル分析エージェント

8

OnEndOfHeaders、OnEndOfData、OnReject、OnRsetCommand、OnDisconnectEvent

プロトコル ログの管理

添付ファイル フィルタ エージェント

9

OnEndOfData

添付ファイル フィルタ

アドレス書き換え送信エージェント

10

OnRcptCommand、OnEndOfHeaders

アドレス書き換えの計画

トランスポート エージェント関連のトラブルシューティング

トランスポート エージェントを使用すると、Exchange を使用して組織内の電子メール メッセージ フローを制御できます。これにより、組織を電子メール インフラストラクチャに強制的に適合させるのではなく、Exchange インフラストラクチャを組織の要件に適合させることができます。環境をカスタマイズすると、環境がより複雑になります。発生する問題のトラブルシューティングと、行った変更が期待どおりにメッセージに適用されることの確認に役立つように、Exchange には次の機能が用意されています。

  • Get-TransportPipeline コマンドレット**   Get-TransportPipeline** コマンドレットは、有効にされたすべてのトランスポート エージェントと、そのエージェントに対して登録されていて、Microsoft Transport サービスが起動されてからコマンドレットが実行されるまでの間にメッセージに対して発生した SMTP イベントを表示します。詳細については、「トランスポート パイプラインのトランスポート エージェントを表示する方法」を参照してください。

    note注 :
    Get-TransportPipeline コマンドレットで表示される情報は、トランスポート パイプラインを経由してメッセージが送信された後にのみ生成されます。また、メッセージを処理したトランスポート エージェントのみが表示されます。
  • パイプライン トレース   パイプライン トレースを使用すると、各トランスポート エージェントで処理される前後の全メッセージの正確なスナップショットを作成できます。パイプライン トレースにより、期待どおりではない結果を生成したトランスポート エージェントを判別したり、トランスポート エージェントが期待どおりに動作したことを確認したりできます。詳細については、「パイプライン トレースを使用したトランスポート エージェント問題の診断」を参照してください。

詳細情報

トランスポート エージェントの詳細については、以下のトピックを参照してください。

参照している情報が最新であることを確認したり、他の Exchange Server 2007 ドキュメントを見つけたりするには、Exchange Server TechCenter を参照してください。