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
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 .
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.
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.