2013 年の DeliveryAgent トランスポート エージェントExchangeする
2013 で使用するカスタム DeliveryAgent トランスポート エージェントを作成するExchangeします。
製品: Exchange Server 2013
DeliveryAgentFactory <Manager> クラスとDeliveryAgentクラスは、2013 メールボックス サーバー上のトランスポート サービスで実行するように設計されたトランスポート エージェントの基本クラスExchange Serverです。 次の表に示す DeliveryAgent クラスによって提供されるイベントに対して 、DeliveryAgent トランスポート エージェントにハンドラーを実装できます。
表 1.DeliveryAgent クラスのイベント
イベント | 説明 |
---|---|
OnCloseConnection |
最後のメール アイテムが配信され、接続が閉じられた後に発生します。 |
OnDeliverMailItem |
メール アイテムの配信準備が整ったときに発生します。 |
OnOpenConnection |
配信エージェントが、メール配信のために起動されたときに発生します。 |
カスタム DeliveryAgent トランスポート エージェントの作成
次に示す手順では、カスタムの DeliveryAgent トランスポート エージェントを作成する方法について説明しています。
トランスポート エージェントを作成するには
名前空間に参照を追加します。
using Microsoft.Exchange.Data.Transport; using Microsoft.Exchange.Data.Transport.Delivery;
該当する名前空間は、Exchange サーバーで見つかります。 これらの名前空間への参照を追加すると 、DeliveryAgent メンバーにアクセス できます。
DeliveryAgentFactory クラスの派生クラスを実装 <Manager> します。
public class MyDeliveryAgentFactory : DeliveryAgentFactory<MyDeliveryAgentFactory.MyDeliveryAgentManager> { static MyDeliveryAgentFactory() { } public override DeliveryAgent CreateAgent(SmtpServer server) { return new MyDeliveryAgent(server); } public sealed class MyDeliveryAgentManager : DeliveryAgentManager { /// <summary> /// Gets the supported delivery protocol. /// </summary> public override string SupportedDeliveryProtocol { get { return "MyProtocol"; } } } }
このコードでは、派生クラスのインスタンスを作成し、CreateAgent メソッドをオーバーライドして、新しいカスタム エージェントのインスタンスを作成するようにします。 このクラスの別のメソッド (Close など) も、カスタム コードを実行するようにオーバーライドできます。 DeliveryAgentManagerクラスは、SupportedDeliveryProtocolプロパティをオーバーライドし、エージェントが使用するプロトコルを設定するために作成されます。
エージェントを定義します。
public class MyDeliveryAgent : DeliveryAgent { public MyDeliveryAgent(SmtpServer server) { this.OnCloseConnection += CloseConnection; this.OnDeliverMailItem += DeliverMailItem; this.OnOpenConnection += OpenConnection; } }
独自のエージェント クラスを定義すると、カスタムの機能を追加できるようになります。 この例では、OnCloseConnection、OnDeliverMailItem、OnOpenConnectionの 3 つのイベントがカスタム イベント ハンドラーにリダイレクトされます。