Transportagenten in Exchange Server

Mit Transport-Agents können Sie benutzerdefinierte Software von Microsoft, Drittanbietern oder Ihrer Organisation auf einem Exchange-Server installieren. Diese Software kann dann E-Mail-Nachrichten verarbeiten, die die Transportpipeline passieren. In Microsoft Exchange Server 2016 oder 2019 besteht die Transportpipeline aus den folgenden Prozessen:

  • Front-End-Transportdienst auf Postfachservern
  • Dem Transportdienst auf Postfachservern
  • Dem Postfach-Transportdienst auf Postfachservern
  • Dem Transportdienst auf Edge-Transport-Servern

Weitere Informationen zur Transportpipeline finden Sie unter Nachrichtenfluss und Transportpipeline.

Exchange-Transport bietet Erweiterbarkeit über das Microsoft Exchange Server Transport Agents SDK. Die Exchange-Version des SDK ermöglicht Es Drittanbietern, die folgenden vordefinierten Klassen zu implementieren:

  • SmtpReceiveAgent
  • RoutingAgent
  • DeliveryAgent

Bei Einhaltung von Bibliotheken im SDK werden die resultierenden Assemblys bei Exchange registriert, wodurch die Agents geladen und ihre Ereignishandler in bestimmten Phasen der SMTP-Sitzungen oder der Nachrichtenverarbeitung aufgerufen werden. Diese Phasen oder Ereignisse sind Teil der Agent-Definitionen. Die Agent-Registrierungsinformationen werden in einer XML-Konfigurationsdatei gespeichert.

In der folgenden Liste werden die Anforderungen für die Verwendung von Transport-Agents in Exchange erläutert.

  • Der Transportdienst auf Postfachservern und Edge-Transport-Servern unterstützt alle vordefinierten Klassen im SDK vollständig.
  • Der Front-End-Transportdienst unterstützt nur die SmtpReceiveAgent-Klasse im SDK, und Agents von Drittanbietern können nicht für das OnEndOfData-SMTP-Ereignis ausgeführt werden.
  • Der Postfachtransportdienst unterstützt das SDK überhaupt nicht, sodass Sie keine Agents von Drittanbietern im Postfachtransportdienst verwenden können.

Transport-Agent-Verwaltung

Die Transport-Agent-Cmdlets müssen zwischen dem Transportdienst und dem Front-End-Transportdienst unterscheiden. Transport-Agent-Verwaltungs-Cmdlets bearbeiten die Konfigurationsdatei agents.config unter %ExchangeInstallPath%TransportRoles\Shared.

Weitere Informationen finden Sie unter Verwalten von Transport-Agents in Exchange Server.

Transport-Agents und SMTP-Ereignisse

Transport-Agents verwenden SMTP-Ereignisse. Diese Ereignisse werden ausgelöst, wenn Nachrichten die Transportpipeline durchlaufen. SMTP-Ereignisse erlauben Transport-Agents den Zugriff auf Nachrichten an bestimmten Punkten während der SMTP-Konversation und beim Routing von Nachrichten durch die Organisation.

SMTP-Empfang ist im Front-End-Transportdienst auf Postfachservern, im Transportdienst auf Postfachservern und Edge-Transport-Servern und im Postfachtransport-Übermittlungsdienst auf Postfachservern vorhanden. Das Kategorisierungsmodul existiert nur im Transportdienst auf Postfachservern und Edge-Transport-Servern. Weitere Informationen zu Transportdiensten und dem Kategorisierungsmodul finden Sie unter E-Mail-Routing in Exchange Server.

In den folgenden Tabellen sind die SMTP-Ereignisse aufgeführt, die Zugriff auf Nachrichten in der Transportpipeline bieten.

SMTP-Empfangsereignisse

Sequence SMTP-Ereignis Beschreibung
1 OnConnectEvent Dieses Ereignis wird bei der Erstverbindung von einem Remote-SMTP-Host ausgelöst.
2 OnHeloCommand Dieses Ereignis wird ausgelöst, wenn der HELO Befehl vom SMTP-Remotehost ausgegeben wird.
3 OnEhloCommand Dieses Ereignis wird ausgelöst, wenn der EHLO Befehl vom SMTP-Remotehost ausgegeben wird.
4 OnStartTlsCommand Dieses Ereignis wird ausgelöst, wenn der STARTTLS Befehl vom SMTP-Remotehost ausgegeben wird.
5 OnAuthCommand Dieses Ereignis wird ausgelöst, wenn der AUTH Befehl vom SMTP-Remotehost ausgegeben wird.
6 OnProcessAuthentication Dieses Ereignis wird ausgelöst, wenn die Authentifizierung am Remote-SMTP-Host verarbeitet wird.
7 OnEndOfAuthentication Dieses Ereignis wird ausgelöst, wenn der Remote-SMTP-Host die Authentifizierung abgeschlossen hat.
8 OnXSessionParamsCommand Dieses Ereignis wird ausgelöst, wenn der XSESSIONPARAMS Befehl vom SMTP-Remotehost ausgegeben wird.
9 OnMailCommand Dieses Ereignis wird ausgelöst, wenn der MAIL FROM Befehl vom SMTP-Remotehost ausgegeben wird.
10 OnRcptToCommand Dieses Ereignis wird ausgelöst, wenn der RCPT TO Befehl vom SMTP-Remotehost ausgegeben wird.
11 OnDataCommand Dieses Ereignis wird ausgelöst, wenn der DATA Befehl (Text) oder BDAT (Binärdaten) vom SMTP-Remotehost ausgegeben wird.
12 OnEndOfHeaders Dieses Ereignis wird ausgelöst, wenn der Remote-SMTP-Host die Übermittlung der E-Mail-Nachrichtenkopfzeilen abgeschlossen hat. Dies wird durch eine Leerzeile (<CRLF>) angegeben, die die Nachrichtenkopfzeilen und den Nachrichtentext trennt.
13 OnProxyInboundMessage Dieses Ereignis wird ausgelöst, wenn eine eingehende SMTP-Sitzung vom Front-End-Transportdienst an den Transportdienst auf einem Postfachserver weitergeleitet oder weitergeleitet wird.
14 OnEndOfData Dieses Ereignis wird ausgelöst, wenn der SMTP-Remotehost einen Datenendebefehl ausgibt:
  • Bei Textsitzungen, die mit dem DATA Befehl gestartet werden, ist <CRLF>.<CRLF>der Indikator für das Datenende .
  • Bei binären Sitzungen, die mit dem BDAT Befehl gestartet werden, lautet BDAT LASTder Indikator für das Datenende .
** OnHelpCommand Dieses Ereignis wird ausgelöst, wenn der HELP Befehl vom SMTP-Remotehost ausgegeben wird.
** OnNoopCommand Dieses Ereignis wird ausgelöst, wenn der NOOP Befehl vom SMTP-Remotehost ausgegeben wird.
** OnReject Dieses Ereignis wird ausgelöst, wenn der empfangende SMTP-Host einen temporären oder permanenten Benachrichtigungscode (auch als DSN, Nichtzustellbarkeitsbericht, NDR oder Unzustellbarkeitsnachricht bezeichnet) an den sendenden SMTP-Host ausgibt.
** OnRsetCommand Dieses Ereignis wird ausgelöst, wenn der RSET Befehl vom sendenden SMTP-Host ausgegeben wird.
15 OnDisconnectEvent Dieses Ereignis wird beim Trennen der Verbindung der SMTP-Konversation vom empfangenden oder sendenden SMTP-Host ausgelöst. Dies geschieht in der Regel, wenn der QUIT Befehl vom SMTP-Remotehost ausgegeben wird.

** Diese Ereignisse können jederzeit nach OnConnectEvent und vor OnDisconnectEvent auftreten.

Kategorisierungsereignisse

Sequence Kategorisierungsereignis Beschreibung
1 OnSubmittedMessage Dieses Ereignis wird ausgelöst, wenn eine Nachricht in der Übermittlungswarteschlange des Transportdiensts auf dem empfangenden Exchange-Server eingeht.
2 OnResolvedMessage Dieses Ereignis wird ausgelöst, nachdem alle Empfänger aufgelöst wurden, jedoch bevor der nächste Hop für die einzelnen Empfänger bestimmt wurde. Das Routingereignis OnResolvedMessage ermöglicht nachfolgenden Ereignissen die Außer-Kraft-Setzung des standardmäßigen Routingverhaltens mithilfe der SetRoutingOverride -Methode auf Empfängerbasis.
3 OnRoutedMessage Dieses Ereignis wird ausgelöst, nachdem Nachrichten kategorisiert, Verteilerlisten erweitert und Empfänger aufgelöst wurden.
4 OnCategorizedMessage Dieses Ereignis wird ausgelöst, wenn das Kategorisierungsmodul die Verarbeitung der Nachricht abgeschlossen hat.

Priorität von Transport-Agents

Zwei Faktoren bestimmen die Reihenfolge, in der Transport-Agents auf Nachrichten in der Transportpipeline reagieren:

  1. Das SMTP-Ereignis, in dem der Transport-Agent registriert wird, und der Zeitpunkt, zu dem das SMTP-Ereignis Nachrichten verarbeitet.
  2. Der Prioritätswert, der dem Transport-Agent zugewiesen wird, wenn mehrere Agents für dasselbe SMTP-Ereignis registriert sind. Die höchste Priorität ist 1. Ein höherer Ganzzahlwert steht für eine niedrigere Agent-Priorität.

Angenommen, dass Sie z. B. die folgenden Transport-Agents konfiguriert haben:

  • Transport-Agent A mit der Priorität 1 und Transport-Agent C mit der Priorität 2 sind für das SMTP-Ereignis OnEndOfHeaders registriert.
  • Transport-Agent B mit der Priorität 4 ist für das SMTP-Ereignis OnMailCommand registriert.

Transport-Agent B wird zuerst auf Nachrichten angewendet, da das Ereignis OnMailCommand die Nachrichten vor dem Ereignis OnEndOfHeaders verarbeitet. Wenn die Nachrichten das Ereignis OnEndOfHeaders erreichen, wird Transport-Agent A vor Transport-Agent C angewendet, da Transport-Agent A eine höhere Priorität (geringerer Ganzzahlwert) als Transport-Agent C hat.

Integrierte Transport-Agents

Exchange Server enthält viele integrierte Transport-Agents, die Features wie Antispam, Transportregeln und Journaling bereitstellen. Die meisten der integrierten Transport-Agenten auf Exchange-Postfachservern sind unsichtbar und können von den Cmdlets zur Verwaltung der Transport-Agenten nicht verwaltet werden. Praktisch alle integrierten Transport-Agents, die sichtbar und verwaltbar sind, befinden sich im Transportdienst auf Postfachservern und Edge-Transport-Servern.

Die interessantesten integrierten Transport-Agents auf Postfachservern werden in der folgenden Tabelle beschrieben. Bitte beachten Sie, dass die Tabelle viele der unsichtbaren und nicht zu verwaltenden Transport-Agents enthält.

Interessante integrierte Transport-Agents auf Postfachservern

Name des Agents Verwaltbar? Priorität SMTP- oder Kategorisierungsereignisse
Transportregel-Agent Ja 1 OnResolvedMessage
DLP-Richtlinien-Agent Ja 2 OnResolvedMessage
Aufbewahrungsrichtlinien-Agent Ja 3 OnResolvedMessage
Aufsichtsbeauftragter Ja 4 OnResolvedMessage
Malware-Agent Ja 5 OnSubmittedMessage
SMS-Routing-Agent Ja 6 OnSubmittedMessage
SMS-Zustellungs-Agent Ja 7 n/v
Löschen des Smtp-Agents für Systemtest Ja 8 OnEndOfHeaders
Drop Routing-Agent für Systemtest Ja 9 OnCategorizedMessage
Journal-Agent Nein Nicht konfigurierbar OnRoutedMessage
Journalberichtentschlüsselungs-Agent Nein Nicht konfigurierbar OnCategorizedMessage
RMS-Entschlüsselungs-Agent Nein Nicht konfigurierbar OnSubmittedMessage
RMS-Verschlüsselungs-Agent Nein Nicht konfigurierbar OnSubmittedMessage

OnRoutedMessage

RMS-Protokoll-Entschlüsselungs-Agent Nein Nicht konfigurierbar OnEndOfData

Interessante integrierte Transport-Agents auf Edge-Transport-Servern

Auf Edge-Transport-Servern sind die meisten integrierten Transport-Agents sichtbar und durch die Cmdlets zur Verwaltung von Transport-Agents oder durch andere featurespezifische Cmdlets verwaltbar.

Die interessantesten integrierten Transport-Agents auf Edge-Transport-Servern werden in der folgenden Tabelle beschrieben. Bitte beachten Sie, dass die Tabelle keine unsichtbaren oder unverwaltbaren Transport-Agents enthält.

Name des Agents Verwaltbar? Priorität SMTP- oder Kategorisierungsereignisse
Verbindungsfilter-Agent Ja 1 OnConnectEvent

OnMailCommand

OnRcptCommand

OnEndOfHeaders

Adressumschreibungs-Agent für eingehende Nachrichten Ja 2 OnRcptCommand

OnEndOfHeaders

Edge-Regel-Agent Ja 3 OnEndOfData
Inhaltsfilter-Agent* Ja 4 OnEndOfData
Absender-ID-Agent* Ja 5 OnEndOfHeaders
Absenderfilter-Agent* Ja 6 OnMailCommand

OnEndOfHeaders

Empfängerfilter-Agent Ja 7 OnRcptCommand
Protokollanalyse-Agent* Ja 8 OnConnectEvent

OnEndOfHeaders

OnEndOfData

OnReject

OnRsetCommand

OnDisconnectEvent

Anlagenfilter-Agent Ja 9 OnEndOfData
Adressumschreibungs-Agent für ausgehende Nachrichten Ja 10 OnSubmittedMessage

OnRoutedMessage

* Diese Antispam-Agents können Sie auch auf Postfachservern installieren und konfigurieren. Weitere Informationen finden Sie unter Aktivieren der Antispamfunktionen auf Postfachservern.

Problembehandlung von Transport-Agents

Zur Behebung von Problemen mit Transport-Agents können Sie die folgenden Features nutzen:

  • Get-TransportPipeline: Dieses Cmdlet zeigt die SMTP-Ereignisse und die entsprechenden Transport-Agents an, bei denen Nachrichten auf dem Exchange-Server auftreten. Weitere Informationen finden Sie unter Anzeigen von Transport-Agents in der Transportpipeline in Exchange Server.

  • Pipelineablaufverfolgung: Die Pipelineablaufverfolgung erstellt eine genaue Momentaufnahme einer Nachricht, bevor und nachdem sie auf jeden Transport-Agent trifft. Dadurch können Sie nach Transport-Agents suchen, die unerwartete Ergebnisse herbeiführen. Weitere Informationen finden Sie unter Pipelineablaufverfolgung.