Share via


Exchange Server 2003 のメッセージ処理

 

Exchange 2003 におけるメッセージ転送は、主に SMTP サービスのタスクです。Exchange 2003 SMTP トランスポート エンジンは、メッセージの最終的な送信先に関係なく、すべてのメッセージ処理にかかわります。メッセージは、同じサーバー上、同じルーティング グループ内の別のサーバー上、別のルーティング グループ内のサーバー上、または外部のメッセージング システム内のサーバー上のユーザー宛てに送信することができます。次の図は、Exchange Server 2003 の SMTP トランスポート アーキテクチャを示しています。SMTP トランスポート エンジンのコンポーネントおよびそれらの役割の詳細については、「SMTP トランスポートのアーキテクチャ」を参照してください。

687c72ff-79bd-4217-bddf-67848b23dabc

Exchange Server 2003 では、SMTP トランスポート エンジンは次のようにメッセージを処理します。

  1. メッセージは、SMTP、リモート プロシージャ コール (RPC)、X.400、または MAPI 転送プロトコルを介して受信されます。これらのプロトコルの概要を次の表に示します。

    受信メッセージ転送プロトコル

    転送プロトコル コメント

    SMTP

    Exchange 2000 および Exchange Server 2003 サーバーは、SMTP を使用して相互に通信します。Exchange 以外のホストと、POP3 および IMAP4 クライアントも、SMTP を使用して Exchange Server 2003 を実行しているサーバーにメッセージを転送します。これらのメッセージは SMTP プロトコル サービスを介して受信されます。このサービスは、メッセージをファイル システムの \Exchsrvr\Mailroot\vsi 1\Queue フォルダに保存してから発信前のキューに転送します。Exchange 2003 サーバー上の各 SMTP 仮想サーバーは、Exchsrvr\Mailroot\ フォルダの下に固有のサブディレクトリを保持します。たとえば、既定の SMTP 仮想サーバーの Mailroot フォルダ パスは \Exchsrvr\Mailroot\vsi 1 です。

    SMTP サービスにメッセージを送信する別の方法として、SMTP 仮想サーバーの Mailroot フォルダの下にある \Pickup サブディレクトリを使用することもできます。メッセージ ファイルが RFC-822 形式でなければ、SMTP サービスはメッセージを取得して正常に処理することができません。したがって、このメッセージ転送も SMTP ベースと見なされます。

    RPC

    Exchange 5.5 サーバーは、RPC を使用してローカル サイトで相互に通信します。Exchange 5.5 のメッセージ転送エージェント (MTA) は、メッセージング コネクタの定義を必要とせず、RPC を使用してローカル サイトで電子メール メッセージを相互に転送します。Exchange Server 2003 が既存の Exchange 5.5 サイト内に展開されている場合、メッセージは Microsoft Exchange MTA Stacks サービスを使用して RPC 経由で Exchange 5.5 と交換されます。

    サイト コネクタを使用する場合、異なるサイトにある Exchange 5.5 サーバーも RPC を使用して相互に通信します。リモート サイトの Exchange 5.5 サーバーに接続するルーティング グループ コネクタを展開すると、Exchange 2003 はサイト コネクタと通信できます。この場合、Exchange 5.5 との下位互換性保持のため、ルーティング グループ コネクタは、SMTP ではなく RPC に自動的に切り替わります。

    X.400

    リモートの X.400 メッセージ転送エージェント (MTA) とメッセージを交換する場合は、X.400 コネクタを構成する必要があります。前述のように、Exchange 組織内でルーティング グループを相互に接続するために X.400 コネクタを使用することもできます。Microsoft Exchange MTA Stacks サービスは、受信 X.400 メッセージを受け取ってそれらのメッセージを Exchange ストアに渡します。その後、Exchange ストア ドライバがメッセージを発信前のキューに格納します。X.400 アーキテクチャの詳細については、「X.400 トランスポートのアーキテクチャ」を参照してください。

    MAPI

    Microsoft Outlook などの MAPI ベースのクライアントと、Connector for Lotus Notes や Connector for Novell GroupWise などの MAPI ベースのメッセージング コネクタは、Exchange ストアと直接通信します。たとえば、MAPI クライアントは、ユーザーのメールボックスの送信トレイ フォルダに送信メッセージを格納し、その後 Exchange ストアにメッセージの転送を通知します。一方、MAPI ベースのメッセージング コネクタは、受信メッセージ キューとして Exchange ストアの MTS-IN フォルダを使用します。これらのコネクタは、受信メッセージを Exchange 形式に変換してから MTS-IN フォルダに格納します。どちらの場合も、MAPI メッセージは Exchange ストアに格納され、Exchange ストア ドライバがそれらのメッセージを発信前のキューに格納します。MAPI ベースのメッセージング コネクタの詳細については、「ゲートウェイ メッセージング コネクタのアーキテクチャ」を参照してください。

  2. 発信前のキューは、アドバンスド キュー エンジンのエントリ ポイントです。メッセージが発信前のキューに格納されると、ウイルス対策用のイベント シンクなどのカスタム SMTP 処理コードはそのメッセージを処理します。次に、アドバンスド キュー エンジンは、SMTP トランスポート エンジンの内部コンポーネントであるカテゴライザがそのメッセージをさらに処理できるように、メッセージを分類前のキューに移動します。

  3. カテゴライザは、受信者と送信者のアドレスを解決し、メールが有効なグループを展開します。そして制限を確認し、送信者単位と受信者単位の制限を適用します。受信者のメールボックスがローカルの Exchange Server 2003 組織にある場合、カテゴライザは、各受信者のプロパティに受信者のホーム サーバーの完全修飾ドメイン名 (FQDN) を設定することによって、受信者をローカルとマークします。これは重要なルーティング手順です。その後、アドバンスド キュー エンジンは受信者のホーム サーバーの FQDN を使用してメッセージ転送パスを決定します。

  4. 分類後、アドバンスド キュー エンジンはメッセージを分類後のキューに格納します。ここで、ローカル受信者のメッセージとリモート システム上の受信者のメッセージを次のように区別する必要があります。

    • ローカル配信   ローカル受信者の場合、ルーティングはスキップされます。メッセージに、対象のメールボックスを保持するメールボックス ストアがスタンプされます。アドバンスド キュー エンジンはそのメッセージをローカル配信キューに転送します。Exchange ストア ドライバはローカル配信キューからメッセージを取得し、それを受信者のメールボックスに格納します。

    • リモート配信   SMTP トランスポート エンジンは送信先への使用可能な転送パスを見つける必要があるので、ルーティング エンジンは、ローカル以外の受信者宛てのメッセージをすべて処理する必要があります。同様に、アドバンスド キュー エンジンは、メッセージをルーティング前のキューに転送し、ルーティング エンジンを呼び出して送信先アドレス (内部受信者の場合は受信者のホーム サーバーの FQDN、外部受信者の場合は SMTP ドメイン名) をルーティング エンジンに渡します。ルーティング エンジンは、メッセージが使用する次ホップを呼び出し側に返し、次の表に示すようにそのホップを分類します。

      リモート配信用のホップの種類

      ホップの種類 コメント

      次ホップの宛先がローカル サーバー

      トランスポート エンジンがメッセージを Exchange MTA に渡す必要があることを示します。メッセージは RPC 経由でローカル ルーティング グループ内の Exchange 5.5 サーバーに転送されるか、X.400 コネクタ経由でリモートの X.400 MTA に転送されるか、MAPI ベースのメッセージング コネクタ (Connector for Lotus Notes、Connector for Novell GroupWise など) 経由で Exchange 以外のメッセージング システムに転送されます。

      次ホップの宛先がローカル ルーティング グループ内のサーバー

      トランスポート エンジンがメッセージを既定の SMTP 仮想サーバーに渡す必要があることを示します。メッセージは、SMTP を介して送信先に転送されます。

      次ホップの宛先がリモート ルーティング グループ内のサーバー

      トランスポート エンジンがメッセージをローカル Exchange サーバー上のルーティング グループ コネクタに渡す必要があることを示します。ただし、この種類のホップは、SMTP を介して転送されたメッセージのみに適用されます。X.400 コネクタを使用してルーティング グループを接続する場合、トランスポート エンジンはメッセージを Exchange MTA に渡します (つまり、次ホップの宛先はローカル サーバーになります)。

      次ホップの宛先が Exchange 組織の外部にあるサーバー

      トランスポート エンジンがメッセージを外部のメッセージング システムに転送できる SMTP コネクタまたは SMTP 仮想サーバーに渡す必要があることを示します。この場合も、この種類のホップは、SMTP を介して到達できる送信先のみ参照します。Exchange MTA によって制御される MAPI ベースのコネクタで接続された Exchange 以外のメッセージング システム宛てのメッセージは、トランスポート エンジンによって Exchange MTA に渡されます (つまり、次ホップの宛先はローカル サーバーとなります)。

      次ホップの宛先が現在到達できないサーバー

      送信先パスは存在するが、そのパスに現在到達できないことを示します。トランスポート エンジンは、転送パスが再び利用可能になるまで、またはメッセージの有効期限が切れて NDR と共にメッセージを送信者に返すことが必要になるまでメッセージを保持します。

      次ホップの宛先が到達できないサーバー

      最終的な送信先パスが存在せず、トランスポート エンジンが NDR と共にメッセージを送信者に返すことを示します。

  5. アドバンスド キュー エンジンは、次ホップの種類に関する情報と送信先をキャッシュに格納し、対応するリンク キューにメッセージを移動します。リンク キューは動的であり、キュー マネージャによって管理されます。各リンク キューの名前は、そのリモート配信先と同じです。

    note注 :
    リンク キューが存在して Exchange システム マネージャのキュー ビューアで使用できるのは、メッセージが対応する送信先への転送を待機しているときのみです。リンク キューは、その中の最後のメッセージが送信されてから約 1 分後に有効期限が切れます。
  6. Exchange MTA キュー以外のリンク キュー内のメッセージは、SMTP プロトコル エンジンを使用して転送されます。Exchange MTA キュー内のメッセージは、Exchange ストア内の Exchange MTA 送信メッセージ キューに転送されます。このキューは、MTS-OUT という名前のシステム フォルダです。このタスクを実行するのは Exchange ストア ドライバです。Exchange MTA は、メッセージを取得してから MTARoute.dll を使用してルーティング エンジンと通信し、適切で利用できるコネクタを決定します。メッセージの転送先が Exchange 以外のメッセージング システムへのコネクタの場合、Exchange MTA は Exchange ストア内のそのコネクタの送信メッセージ キュー (コネクタの MTS-OUT フォルダ) にメッセージを格納します。それ以外の場合、MTA は RPC または X.400 コネクタを使用して直接メッセージを転送します。Exchange MTA の詳細については、「X.400 トランスポートのアーキテクチャ」を参照してください。