Freigeben über


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

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

Gilt für: Exchange Server 2013

Verwandte Codeausschnitte und Beispiel-Apps:

Mit den Klassen SmtpReceiveAgentFactory und SmtpReceiveAgent können Sie das Verhalten des Front-End-Transportdiensts auf einem Clientzugriffsserver oder den Transportdienst auf einem Postfachserver erweitern. Sie können diese Klassen verwenden, um Transport-Agents zu implementieren, die darauf ausgelegt sind, auf Nachrichten zu reagieren, die in Ihrer Organisation eingehen.

Die Klassen SmtpReceiveAgentFactory und SmtpReceiveAgent enthalten die ereignisse, die in der folgenden Tabelle aufgeführt sind.

Tabelle 1. SmtpReceiveAgent-Klassenereignisse

Document.SelectionChanged -Ereignis Beschreibung
OnAuthCommand
Verwenden Sie dies, wenn ihr Agent Informationen benötigt, die nur im SMTP AUTH-Befehl bereitgestellt werden, z. B. ein Agent, der Versuche zur Übermittlung einer Nachricht basierend auf dem Typ der verwendeten Authentifizierungsmethode akzeptiert oder ablehnt.
OnConnect
Verwenden Sie dies, wenn Ihr Agent Informationen benötigt, die nur bereitgestellt werden, wenn eine Verbindung über SMTP mit dem Front-End-Transportdienst geöffnet wird, z. B. ein Agent, der eine Aktion basierend auf der Adresse oder Domäne des SMTP-Remoteservers ausführt.
OnDataCommand
Verwenden Sie dieses Ereignis, wenn Ihr Agent Informationen benötigt, die im SMTP-DATENbefehl angegeben sind.
OnDisconnect
Verwenden Sie dies, wenn Ihr Agent Informationen benötigt, die zum Zeitpunkt der Trennung verfügbar sind, z. B. das aktuelle Datum und die aktuelle Uhrzeit, um Zeitberechnungen durchzuführen.
OnEhloCommand
Verwenden Sie dies, wenn Ihr Agent Informationen benötigt, die im SMTP-EHLO-Befehl bereitgestellt werden. Beispielsweise, wenn Ihr Agent Nachrichten basierend auf der im EHLO-Befehl angegebenen Identität akzeptiert oder ablehnt.
OnEndOfAuthentication
Verwenden Sie dies, wenn Ihr Agent Informationen benötigt, die verfügbar sind, nachdem der Remoteserver den Authentifizierungsprozess abgeschlossen hat. Beispielsweise für einen Agent, der eine Aktion für eine Nachricht basierend auf den Authentifizierungsinformationen durchführt, die vom REMOTE-SMTP-Server oder -Client bereitgestellt werden.
OnEndOfData
Verwenden Sie dies, wenn Ihr Agent eine Aktion basierend auf den in der Nachricht verfügbaren Daten ausführen muss. Dieses Ereignis wird nicht im Front-End-Transport-Dienst ausgelöst. Wenn Ihr Transport-Agent dieses Ereignis verwenden muss, müssen Sie es auf einem Postfachserver installieren.
OnEndOfHeaders
Verwenden Sie dies, wenn ihr Agent eine Aktion basierend auf Informationen ausführen muss, die in den Kopfzeilen der gesendeten Nachricht verfügbar sind.

Erstellen eines benutzerdefinierten SmtpReceiveAgent-Transport-Agents

Im folgenden Verfahren wird beschrieben, wie Sie einen benutzerdefinierten SmtpReceiveAgent-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.Smtp;
       using Microsoft.Exchange.Data.Transport.Email;
       using Microsoft.Exchange.Data.TextConverters;
    
    

    Sie finden diese Namespaces auf Ihrem Exchange 2013-Server. Wenn Sie einen Verweis auf diese Namespaces hinzufügen, haben Sie Zugriff auf die SmtpReceiveAgent-Member sowie auf andere Klassen, die im Beispiel Exchange 2013: Erstellen eines Transport-Agent-Beispiels für die Textkonvertierung verwendet werden.

  2. Implementieren Sie die abgeleitete Klasse für die SmtpReceiveAgentFactory-Klasse.

       public class BodyConversionFactory : SmtpReceiveAgentFactory
       {
           /// <summary>
           /// Create a new BodyConversion
           /// </summary>
           /// <param name="server">Exchange server</param>
           /// <returns>A new BodyConversion</returns>
           public override SmtpReceiveAgent CreateAgent(SmtpServer server)
           {
               return new BodyConversion();
           }
       }
    
    

    Dieser Code instanziiert die abgeleitete Klasse und überschreibt die CreateAgent-Methode, um eine Instanz des neuen benutzerdefinierten Agents zu erstellen.

  3. Definieren Sie Ihren Agent.

      public class BodyConversion : SmtpReceiveAgent
       {
           // Your custom code goes here
           /// <summary>
           /// The constructor registers an end of data event handler.
           /// </summary>
           public BodyConversion()
           {
               Debug.WriteLine("[BodyConversion] Agent constructor");
               this.OnEndOfData += new EndOfDataEventHandler(this.OnEndOfDataHandler);
           }
       }
    
    

    Nachdem Sie die Agentklasse definiert haben, können Sie Ihre benutzerdefinierten Funktionen hinzufügen. In diesem Beispiel wird das OnEndOfData-Ereignis an den benutzerdefinierten Ereignishandler umgeleitet.

Siehe auch