Freigeben über


Erstellen eines DeliveryAgent-Transport-Agents für Exchange 2013

Erfahren Sie, wie Sie einen benutzerdefinierten DeliveryAgent-Transport-Agent für die Verwendung mit Exchange 2013 erstellen.

Gilt für: Exchange Server 2013

Die Klassen DeliveryAgentFactory<Manager> und DeliveryAgent sind die Basisklassen für Transport-Agents, die für die Ausführung im Transportdienst auf einem Exchange Server 2013-Postfachserver konzipiert sind. Sie können Handler in Ihrem DeliveryAgent-Transport-Agent für die Ereignisse implementieren, die von der DeliveryAgent-Klasse bereitgestellt werden, die in der folgenden Tabelle aufgeführt sind.

Tabelle 1. Ereignisse der DeliveryAgent-Klasse

Document.SelectionChanged -Ereignis Beschreibung
OnCloseConnection
Tritt ein, nachdem das letzte E-Mail-Element zugestellt wurde und die Verbindung geschlossen wurde.
OnDeliverMailItem
Tritt auf, wenn ein E-Mail-Element bereit für die Zustellung ist.
OnOpenConnection
Tritt auf, wenn der Zustellungs-Agent für die E-Mail-Zustellung geöffnet wird.

Erstellen eines benutzerdefinierten DeliveryAgent-Transport-Agents

Im folgenden Verfahren wird beschrieben, wie Sie einen benutzerdefinierten DeliveryAgent-Transport-Agent erstellen.

So erstellen Sie den Transport-Agent

  1. Fügen Sie Verweise auf die Namespaces hinzu.

         using Microsoft.Exchange.Data.Transport;
         using Microsoft.Exchange.Data.Transport.Delivery;
    
    

    Sie finden diese Namespaces auf Ihrem Exchange-Server. Durch Hinzufügen eines Verweises auf diese Namespaces haben Sie Zugriff auf die DeliveryAgent-Member .

  2. Implementieren Sie die abgeleitete Klasse für die DeliveryAgentFactory<Manager-Klasse> .

       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"; }
               }
           }
       }
    
    

    Dieser Code instanziiert die abgeleitete Klasse und überschreibt die CreateAgent-Methode , um eine Instanz Ihres neuen benutzerdefinierten Agents zu erstellen. In dieser Klasse können auch zusätzliche Methoden wie Close überschrieben werden, um benutzerdefinierten Code auszuführen. Eine DeliveryAgentManager-Klasse wird erstellt, um die SupportedDeliveryProtocol-Eigenschaft zu überschreiben und das Protokoll festzulegen, das Ihr Agent verwenden wird.

  3. Definieren Sie Ihren Agent.

       public class MyDeliveryAgent : DeliveryAgent
       {
           public MyDeliveryAgent(SmtpServer server)
           {
               this.OnCloseConnection += CloseConnection;
               this.OnDeliverMailItem += DeliverMailItem;
               this.OnOpenConnection += OpenConnection;
           }
       }
    
    

    Nachdem Sie Ihre Agent-Klasse definiert haben, können Sie benutzerdefinierte Funktionen hinzufügen. In diesem Beispiel werden die drei Ereignisse OnCloseConnection, OnDeliverMailItem und OnOpenConnection an Ihre benutzerdefinierten Ereignishandler umgeleitet.

Siehe auch