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:
|
** | 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:
- Das SMTP-Ereignis, in dem der Transport-Agent registriert wird, und der Zeitpunkt, zu dem das SMTP-Ereignis Nachrichten verarbeitet.
- 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.