Transport-Agents
Gilt für: Exchange Server 2013
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 2013 besteht die Transportpipeline aus den folgenden Prozessen:
Dem Front-End-Transport-Dienst auf Clientzugriffsservern
Dem Transportdienst auf Postfachservern
Dem Postfach-Transportdienst auf Postfachservern
Dem Transportdienst auf Edge-Transport-Servern
Weitere Informationen zur Transportpipeline finden Sie unter Nachrichtenübermittlung.
Wie bei den vorherigen Versionen von Exchange ermöglicht der Exchange 2013-Transport die Erweiterbarkeit über das Transport-Agents-SDK für Microsoft Exchange Server 2013. Die Exchange 2013-Version des SDK basiert auf der Microsoft .NET Framework Version 4.0 und ermöglicht Es Drittanbietern, die folgenden vordefinierten Klassen zu implementieren:
SmtpReceiveAgent
RoutingAgent
DeliveryAgent
Wenn sie mit Bibliotheken im SDK abgeglichen werden, werden die sich ergebenden Assemblys mit Exchange 2013 registriert, wodurch die Agents geladen und ihre Ereignishandler in bestimmten Phasen der SMTP-Sitzungen oder während 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 2013 erläutert.
Der Transportdienst auf Postfachservern und Edge-Transport-Servern unterstützt alle vordefinierten Klassen im SDK vollständig. Daher sollten alle Transport-Agents von Drittanbietern, die für die Hub-Transport- oder Edge-Transport-Serverrollen in Microsoft Exchange Server 2010 geschrieben wurden, im Transportdienst in Exchange 2013 funktionieren.
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.
Die Unterstützung für Legacytransport-Agents, die auf Versionen vor .NET Framework, Version 4.0, basieren, ist nicht standardmäßig aktiviert, kann aber von Ihnen aktiviert werden. Anweisungen finden Sie unter Aktivieren der Unterstützung für Transport-Agents einer Vorversion.
Updates für die Transport-Agent-Verwaltung
Aufgrund der Updates der Exchange 2013-Transportpipeline müssen die Transport-Agent-Cmdlets zwischen dem Transportdienst und dem Front-End-Transportdienst unterscheiden, insbesondere wenn der Clientzugriffsserver und der Postfachserver auf demselben Computer installiert sind. Weitere Informationen finden Sie unter Verwalten von Transport-Agents.
Transport-Agent-Verwaltungs-Cmdlets bearbeiten eine Konfigurationsdatei unter %ExchangeInstallPath%TransportRoles\Shared
. Für den Transportdienst auf Postfachservern und Edge-Transport-Servern ist agents.config
die Datei . Für den Front-End-Transportdienst auf Clientzugriffsservern ist fetagents.config
die Datei . Beide Dateien verwenden dasselbe Format wie in Exchange 2010. Weitere Informationen zur Verwaltung von Transport-Agents finden Sie unter Verwalten von Transport-Agents.
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.
Bitte beachten Sie, dass in Exchange 2013 SMTP-Empfangsereignisse zur Verfügung stehen. SMTP Receive ist im Front-End-Transportdienst auf Clientzugriffsservern, dem Transportdienst auf Postfachservern und Edge-Transport-Servern sowie dem Postfachtransport-Zustellungsdienst auf Postfachservern verfügbar. 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 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 mittels Relay oder Proxyweiterleitung durch den Front-End-Dienst auf einem Clientzugriffsserver an den Transportdienst auf einem Postfachserver gesendet wird. |
14 | OnEndOfData | Dieses Ereignis wird ausgelöst, wenn der Remote-SMTP-Host den Befehl "end of data" 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 LAST der 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 endgültigen Code für die Benachrichtigung über den Übermittlungsstatus 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 | SMTP-Ereignis | Beschreibung |
---|---|---|
1 | OnSubmittedMessage | Dieses Ereignis wird ausgelöst, wenn eine Nachricht in der Übermittlungswarteschlange im Transportdienst auf dem empfangenden Postfachserver oder Edge-Transport-Server ankommt. |
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 entscheiden über die Reihenfolge, in der Transport-Agents Nachrichten in der Transportpipeline verarbeiten:
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 2013 enthält viele integrierte Transport-Agents, die Funktion wie Antispam, Transportregeln und Journale bieten. Die meisten der integrierten Transport-Agents auf Exchange 2013-Postfachservern und Clientzugriffsservern sind unsichtbar und können durch die Cmdlets zur Verwaltung von Transport-Agents nicht bearbeitet werden. Praktisch alle integrierten Transport-Agents, die sichtbar sind und verwaltet werden können, 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 |
Malware-Agent | Ja | 2 | OnSubmittedMessage |
SMS-Routing-Agent | Ja | 3 | OnSubmittedMessage |
SMS-Zustellungs-Agent | Ja | 4 | N/V |
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 |
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.
Interessante integrierte Transport-Agents auf Edge-Transport-Servern
Name des Agents | Verwaltbar? | Priorität | SMTP- oder Kategorisierungsereignisse |
---|---|---|---|
Verbindungsfilter-Agent | Ja | 1 |
OnConnectEvent OnMailCommand OnRcptComand OnEndOfHeaders |
Adressumschreibungs-Agent für eingehende Nachrichten | Ja | 2 |
OnRcptComand 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 einem Postfachserver.
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.
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.