SMTP-Protokollerweiterungen
Letztes Änderungsdatum des Themas: 2006-11-03
Das erweiterte Warteschlangenmodul ist nicht der einzige Verteiler von COM-Ereignissen im SMTP-Dienst. Das SMTP-Protokollmodul ist ebenfalls ein wichtiger Verteiler von COM-Ereignissen, insbesondere von SMTP-Ereignissen. Das zentrale SMTP-Protokollmodul ist für die gesamte normale SMTP-Kommunikation verantwortlich und verwaltet die meisten standardmäßigen SMTP-Diensterweiterungen (d. h. den ESMTP-Standard (Extended Simple Mail Transfer Protocol), der in RFC 821 und RFC 1869 definiert ist). SMTP kann mithilfe von Protokollereignissen bearbeitet werden. Auf diese Weise ist es möglich, neue ESMTP-Befehle hinzuzufügen oder sogar die Wirkung vorhandener Befehle zu ändern. Exchange Server 2003 verwendet diese Protokollereignisse zur Implementierung Exchange-spezifischer erweiterter SMTP-Befehle, um effizienter als über das normale SMTP mit anderen Exchange-Servern in der Organisation zu kommunizieren.
Wenn Sie über Telnet eine Verbindung mit dem TCP-Anschluss des virtuellen SMTP-Servers herstellen, können Sie überprüfen, ob die erweiterten SMTP-Befehle für Exchange Server 2003 geladen sind. Wie die folgende Abbildung zeigt, gibt die Serverantwort die Funktionen an, die vom virtuellen SMTP-Server unterstützt werden, wenn Sie den Befehl EHLO senden, um eine ESMTP-Verbindung zu starten. Wenn Sie den Befehl HELP senden, werden die Standardbefehle aufgelistet.
In der folgenden Tabelle werden die SMTP-Funktionen erläutert, die der erweiterte SMTP-Dienst von Exchange unterstützt.
In Exchange Server 2003 unterstützte SMTP-Funktionen
SMTP-Serverantwort | Beschreibung |
---|---|
8BITMIME |
Gibt an, dass der lokale virtuelle SMTP-Server 8-Bit-MIME-Nachrichten unterstützt. |
AUTH, AUTH GSSAPI NTLM LOGIN und AUTH=LOGIN |
Signalisiert, dass der lokale virtuelle SMTP-Server die SMTP-Diensterweiterung für die Authentifizierung unterstützt. Mit den zusätzlichen Angaben nach dem Schlüsselwort AUTH werden die unterstützten Authentifizierungsmechanismen angegeben. |
BDAT, CHUNKING |
Eine Alternative zum Befehl DATA, der zwei Argumente annimmt. Wenn ein virtueller SMTP-Server auf das Schlüsselwort EHLO mit CHUNKING antwortet, zeigt der SMTP-Server an, dass er den Befehl BDAT unterstützt und Nachrichten in Abschnitten entgegennimmt. Das erste Argument gibt die Länge des binären Datenpakets an, sodass der SMTP-Host nicht ständig nach dem Ende der Daten suchen muss. Der empfangende Server zählt die Bytes in der Nachricht und geht bei Erreichen der vom Befehl BDAT gesendeten Nachrichtengröße davon aus, dass alle Nachrichtendaten empfangen wurden. Das zweite Argument gibt an, ob es sich bei dem Datenpaket um das letzte Paket der aktuellen Übertragung handelt. Das zweite Argument ist optional. |
BINARYMIME |
Gibt an, dass der virtuelle SMTP-Server Nachrichten entgegennimmt, die binäre Daten ohne Transportcodierung enthalten. Dazu wird beim Befehl MAIL der Parameter BODY mit dem Wert "BINARYMIME" verwendet. Wenn der SMTP-Server einen MAIL-Befehl mit dem Wert BINARYMIME für den Parameter BODY akzeptiert, gibt der Server an, dass alle Bits in jedem mit dem Befehl BDAT übergebenen Oktett erhalten bleiben. Die SMTP-Erweiterung BINARYMIME kann nur zusammen mit CHUNKING verwendet werden. |
DATA |
Wird von einem Remotehost gesendet, um die Übertragung des Nachrichteninhalts zu initiieren. |
DSN |
Ein ESMTP-Befehl, der Benachrichtigungen über den Übermittlungsstatus ermöglicht, wie sie in RFC 1891 definiert sind. |
EHLO |
Wird von einem Client gesendet, um den Beginn einer ESMTP-Sitzung zu signalisieren. Der Server kann in seiner Antwort auf EHLO angeben, ob er ESMTP-Befehle unterstützt (Abbildung 6.14). |
ENHANCEDSTATUSCODES |
Gibt an, dass der SMTP-Server erweiterte Fehlerstatuscodes ausgibt. Den Textteilen aller SMTP-Statusantworten außer der Begrüßungsformel und Antworten auf HELO oder EHLO wird ein in RFC 1893 definierter Statuscode vorangestellt. |
ETRN |
Wird von einem SMTP-Server gesendet, um den lokalen virtuellen Server aufzufordern, alle E-Mail-Nachrichten zu senden, die sich in der Warteschlange des Servers befinden und die für die im Befehl ETRN angegebenen Domänen bestimmt sind. |
HELO |
Wird von einem Client gesendet, um sich selbst zu identifizieren, in der Regel mit einem Domänennamen, und um den Beginn einer normalen SMTP-Sitzung zu signalisieren. |
HELP |
Gibt eine Liste von SMTP-Befehlen zurück, die vom virtuellen SMTP-Server bei normalen SMTP-Sitzungen (im Gegensatz zu ESMTP-Sitzungen) unterstützt werden. |
Kennzeichnet den Beginn einer Nachrichtenübertragung durch Identifizierung des Absenders der Nachricht;wird im Formular MAIL FROM verwendet. |
|
PIPELINING |
Bietet die Option, einen Strom von Befehlen zu senden, ohne auf eine Antwort nach jedem Befehl warten zu müssen. |
QUIT |
Signalisiert das Ende einer normalen oder erweiterten SMTP-Sitzung. |
RCPT |
Identifiziert die Empfänger der Nachricht; wird im Formular RCPT TO verwendet. |
RSET |
Hebt die gesamte Nachrichtentransaktion auf und setzt den Puffer zurück. |
SIZE |
Bietet einen Mechanismus, durch den der virtuelle SMTP-Server die maximal unterstützte Nachrichtengröße angeben kann. Kompatible Server müssen Größenerweiterungen bieten, um die maximale Nachrichtengröße anzugeben, die akzeptiert werden kann. Remotehosts sollten keine Nachrichten senden, die die vom Server angegebene Größe überschreiten. |
STARTTLS |
Gibt an, dass der SMTP-Server sicheres SMTP über TLS unterstützt. Die SMTP-Diensterweiterung für sicheres SMTP über TLS ist in RFC 2487 definiert. |
TURN |
Ermöglicht, dass die Rollen von Remotehost und lokalem Host getauscht werden und E-Mail-Nachrichten in die umgekehrte Richtung gesendet werden können, ohne dass eine neue Verbindung hergestellt werden muss. |
VRFY |
Stellt sicher, dass ein Postfach für die Nachrichtenübermittlung zur Verfügung steht. Zum Beispiel stellt VRFY TED sicher, dass ein Postfach für Ted auf dem lokalen Server vorhanden ist. Dieser Befehl ist in Exchange 2003 standardmäßig verfügbar, dient jedoch nicht zur Überprüfung von Benutzern. Der Server informiert den Remotehost darüber, dass die Identität des Benutzers zwar nicht bestätigt werden kann, dass Nachrichten jedoch akzeptiert werden. Die Serverantwort hat folgendes Format: 252 2.1.5 Cannot VRFY user, but will take message for <Ted@TailspinToys.com> |
XEXCH50 |
Bietet die Möglichkeit, während einer Exchange Server 2003-Kommunikation zwischen Servern erweiterte Eigenschaften für den Umschlag des Nachrichtentransports im MDBEF (Message Database Encoding Format) zu senden. |
X-EXPS GSSAPI NTLM LOGIN, X-EXPS=LOGIN |
X-EXPS ist ein proprietärer Befehl von Exchange. Er ist mit AUTH vergleichbar, da er die Methoden angibt, die von Servern mit Exchange Server 2003 und Exchange 2000 Server für die Authentifizierung verwendet werden können. Hierzu gehören folgende Methoden:
|
X-LINK2STATE |
Erweitert den SMTP-Dienst um Unterstützung der Verbindungsstatusübermittlung. Einzelheiten zum Verbindungsstatusalgorithmus, mit dem Verbindungsstatusinformationen innerhalb und zwischen Routinggruppen übermittelt werden, finden Sie unter Nachrichtenroutingarchitektur. |
Anmerkung: |
---|
Alle Exchange-spezifischen SMTP-Befehle beginnen mit „X-“(ohne die Anführungszeichen). Wenn diese Befehle nicht in der EHLO-Antwort des virtuellen SMTP-Servers aufgeführt werden, wird auf dem Server die Windows Server 2003-Basisversion des SMTP-Diensts ausgeführt. In diesem Fall müssen Sie Exchange Server 2003 und etwaige Service Packs neu installieren. |
Protokollereigniskategorien
Das SMTP-Protokollmodul löst Protokollereignisse aus, um die Kommunikation zwischen Hosts zu steuern. Es gibt drei Haupttypen von Ereignissen, die in einer solchen Kommunikation über SMTP auftreten können:
- Der SMTP-Dienst empfängt einen SMTP-Befehl Diese Ereignisse treten auf, wenn eine SMTP-Remotehost oder -Client eine Verbindung mit dem lokalen SMTP-Dienst herstellt und durch Senden des Befehls HELO oder EHLO eine Sitzung einrichtet. Ereignisse dieser Kategorie sind OnInboundCommand-SMTP-Ereignisse in eingehenden Verbindungen.
- Der SMTP-Dienst empfängt eine SMTP-Antwort Diese Ereignisse treten auf, wenn der lokale SMTP-Dienst von einem SMTP-Remotehost oder -Client Antworten auf ausgehende SMTP-Befehle empfängt. Ereignisse dieser Kategorie sind OnServerResponse-SMTP-Ereignisse in ausgehenden Verbindungen.
- Der SMTP-Dienst sendet einen SMTP-Befehl Diese Ereignisse treten auf, wenn der lokale SMTP-Dienst eine Verbindung mit einem SMTP-Remotehost herstellt und zur Übertragung von Nachrichten eine Sitzung einrichtet. Ereignisse dieser Kategorie sind die SMTP-Ereignisse OnSessionBegin, OnMessageStart, OnPerRecipient, OnBeforeData und OnSessionEnd in ausgehenden Verbindungen.
In der folgenden Tabelle wird ein Überblick über die Zwecke der einzelnen SMTP-Ereignisse gegeben.
Protokollereignisse im SMTP-Dienst
Ereignis | Beschreibung |
---|---|
OnInboundCommand |
Tritt auf, wenn der SMTP-Dienst einen SMTP-Befehl empfängt, der einer Ereignissenke die Möglichkeit zu einer Antwort gibt. |
OnServerResponse |
Tritt auf, wenn der SMTP-Dienst eine SMTP-Antwort auf einen zuvor gesendeten SMTP-Befehl empfängt. |
OnSessionBegin |
Tritt auf, bevor der Befehl EHLO übertragen wird. |
OnMessageStart |
Tritt auf, bevor der Befehl MAIL FROM übertragen wird. |
OnPerRecipient |
Tritt auf, bevor der Befehl RCPT TO übertragen wird. |
OnBeforeData |
Tritt auf, bevor der Protokollbefehl DATA übertragen wird. |
OnSessionEnd |
Tritt auf, bevor der Befehl QUIT übertragen wird. |
Exchange-spezifische SMTP-Protokollerweiterungen
Das Exchange Server 2003-Installationsprogramm registriert Exchange-spezifische SMTP-Protokollerweiterungen für die folgenden SMTP-Protokollfunktionen:
XEXCH50 Diese Funktion wird mithilfe von neun Ereignissenken implementiert, um die vollständige Kommunikation zwischen zwei Servern zu unterstützen, auf denen Exchange Server ausgeführt wird. In der folgenden Tabelle sind die Protokollereignisse den entsprechenden XEXCH50-Ereignissenken zugeordnet. Alle XEXCH50-Senken sind in peexch50.dll implementiert. Diese Datei befindet sich im Verzeichnis \Programme\Exchsrvr\bin.
Protokollerweiterungen für den Befehl XEXCH50
Ereignissenke Protokollereignis Beschreibung Senke des Exchange SMTP-Protokolls XEXCH50 für bevorstehende Datenübertragung
OnBeforeData
Benachrichtigt die XEXCH50-Senke über die bevorstehende Übertragung des Protokollbefehls DATA. Die XEXCH50-Senke hat nun die Möglichkeit, den SMTP-Dienst zu veranlassen, anstelle des Starts einer XEXCH50-Kommunikation einen XEXCH50-Befehl zu senden.
Senke des Exchange SMTP-Protokolls XEXCH50 für eingehende EHLO-Befehle
OnInboundCommand
Benachrichtigt die XEXCH50-Senke über den Empfang eines EHLO-Befehls.
Senke des Exchange SMTP-Protokolls XEXCH50 für eingehende XEXCH50-Befehle
OnInboundCommand
Implementiert den XEXCH50-Befehl zum Start einer XEXCH50-Kommunikation.
Senke des Exchange SMTP-Protokolls XEXCH50 für eingehende MAIL-Befehle
OnInboundCommand
Implementiert den MAIL-Befehl in einer XEXCH50-Kommunikation.
Senke des Exchange SMTP-Protokolls XEXCH50 für eingehende RCPT-Befehle
OnInboundCommand
Ermöglicht es dem lokalen virtuellen SMTP-Server, die Empfängerinformationen in einer eingehenden XEXCH50-Kommunikation zu empfangen.
Senke des Exchange SMTP-Protokolls XEXCH50 für Empfängerinformationen
OnPerRecipient
Ermöglicht es dem lokalen virtuellen SMTP-Server, die Empfängerinformationen in einer ausgehenden XEXCH50-Kommunikation zu senden.
Senke des Exchange SMTP-Protokolls XEXCH50 für EHLO-Antworten
OnServerResponse
Ermöglicht es dem lokalen virtuellen SMTP-Server, nach dem Senden eines EHLO-Befehls an den Remotehost eine Antwort zu empfangen. Die Antwort vom Remotehost weist möglicherweise darauf hin, dass XEXCH50-Kommunikationen unterstützt werden. Exchange nimmt XEXCH50 in die Liste der unterstützten Befehle auf, die an den die Verbindung herstellenden Host zurückgesendet werden (Abbildung 6.14).
Senke des Exchange SMTP-Protokolls XEXCH50 für Antworten
OnServerResponse
Ermöglicht es dem lokalen virtuellen SMTP-Server, nach dem Senden eines ausgehenden XEXCH50-Befehls eine Antwort zu empfangen. Wenn beispielsweise der lokale SMTP-Dienst einen XEXCH50-Befehl ohne vorherige Authentifizierung gesendet hat, antwortet der Remoteserver mit: 504 Zuerst Authentifizierung erforderlich.
Senke des Exchange SMTP-Protokolls XEXCH50 für RCPT-Antworten
OnServerResponse
Ermöglicht es dem lokalen virtuellen SMTP-Server, für jeden in einem ausgehenden RCPT-Befehl angegebenen Empfänger eine Antwort vom Exchange-Remoteserver zu empfangen. Möglicherweise liegt eine Empfängeradresse in einem falschen Format vor oder der Server kann Nachrichten nicht weiterleiten. Wenn die Empfängerangaben korrekt sind, sendet der virtuelle SMTP-Remoteserver die Adresse zusammen mit Statusinformationen an den lokalen SMTP-Dienst zurück, z. B.: 250 2.1.5 administrator@tailspintoys.com.
X-LINK2STATE Diese Funktion wird mithilfe von fünf Ereignissenken implementiert. Wie in der folgenden Tabelle dargestellt, wird eine Ereignissenke jedoch für zwei verschiedene Ereignisse verwendet. Sämtliche X-LINK2STATE-Ereignissenken sind in Xlsasink.dll im Verzeichnis \Programme\Exchsrvr\bin implementiert.
Protokollerweiterungen für den Befehl X-LINK2STATE
Ereignissenke Protokollereignis Beschreibung X-LSA-Senke des Handlers für eingehende EHLO-Befehle
OnInboundCommand
Benachrichtigt die X-LINK2STATE-Ereignissenken über den Empfang eines eingehenden EHLO-Befehls.
X-LSA-Senke des Handlers für eingehende Befehle
OnInboundCommand
Benachrichtigt die X-LINK2STATE-Ereignissenken über den Empfang eines eingehenden X-LINK2STATE-Befehls.
X-LSA-Senke
OnMessageStart, OnSessionEnd
Signalisiert den Start (Befehl MAIL) und das Ende (Befehl QUIT) einer ausgehenden X-LINK2STATE-Kommunikation. Da der virtuelle SMTP-Remoteserver der endgültige Empfänger des übertragenen Orginfo-Pakets ist, müssen in einem ausgehenden RCPT-Befehl keine Empfänger angegeben werden. Diese Ereignissenke überträgt die Verbindungsstatusinformationen.
X-LSA-Senke für den Antworthandler
OnServerResponse
Antwortet auf einen eingehenden X-LINK2STATE-Befehl mit Informationen über die Übertragungsweise von Verbindungsstatusinformationen. Beispiel für eine Antwort: 200 LAST CHUNK={00000029} MULTI (5) ({00000010} DONE_RESPONSE). Auf diese Weise wird der letzte Datenteil gekennzeichnet, der vom virtuellen SMTP-Server gesendet wurde.
X-LSA-Senke des Handlers für EHLO-Antworten
OnServerResponse
Beantwortet einen eingehenden EHLO-Befehl durch Auflisten des X-LINK2STATE-Befehls in der Serverantwort.
X-EXPS Diese Funktion wird mit fünf Ereignissenken implementiert, wie in der folgenden Tabelle angegeben. Alle Protokollsicherheitserweiterungen sind in Exps.dll im Verzeichnis \Programme\Exchsrvr\bin implementiert.
X-EXPS-Protokollsicherheitserweiterungen
Ereignissenke Protokollereignis Beschreibung Exchange SMTP-Protokollsicherheitssenke für EXPS-EOD
OnInboundCommand
Signalisiert das Ende der Datenübertragung (_EOD).
Exchange SMTP-Protokollsicherheitssenke für EXPS-AUTH
OnInboundCommand
Signalisiert einen eingehenden AUTH-Befehl.
Exchange SMTP-Protokollsicherheitssenke für EHLO
OnInboundCommand, OnServerResponse
Signalisiert einen eingehenden EHLO-Befehl und antwortet auf EHLO durch Auflisten des X-EXPS-Befehls in der Serverantwort.
Exchange SMTP-Protokollsicherheitssenke für MAIL
OnInboundCommand, OnServerResponse, OnMessageStart
Signalisiert den Start der Datenübertragung. Diese Ereignissenke ist für alle relevanten MAIL-Befehlsszenarien implementiert. Sie verarbeitet Ereignisse, die einen eingehenden MAIL-Befehl melden, auf einen eingehenden MAIL-Befehl antworten und einen ausgehenden MAIL-Befehl senden können.
Exchange SMTP-Protokollsicherheitssenke für EXPS
OnInboundCommand, OnServerResponse, OnMessageStart
Signalisiert den Start einer X-EXPS-Sitzung. Diese Ereignissenke ist für alle relevanten X-EXPS-Befehlsszenarien implementiert. Sie verarbeitet Ereignisse, die einen eingehenden X-EXPS-Befehl melden, auf einen eingehenden X-EXPS-Befehl antworten und einen ausgehenden X-EXPS-Befehl senden können.
Kontrolle unerwünschter Werbe-E-Mails Diese Funktion wird mithilfe von drei Ereignissenken implementiert, die Sender- und Empfängerinformationen über eingehende SMTP-Verbindungen verarbeiten (siehe folgende Tabelle). Die Ereignissenken für die Kontrolle unerwünschter Werbe-E-Mails sind in Turflist.dll im Verzeichnis \Programme\Exchsrvr\bin implementiert.
SMTP-Erweiterungen für die Kontrolle unerwünschter Werbe-E-Mails
Ereignissenke Protokollereignis Beschreibung Senke des Handlers für eingehende RCPT-Befehle
OnInboundCommand
Signalisiert einen eingehenden RCPT-Befehl mit einer Empfängeradresse, die überprüft werden soll.
TURF-Senke des Handlers für eingehende MAIL-Befehle
OnInboundCommand
Signalisiert einen eingehenden MAIL-Befehl mit einer Empfängeradresse, die überprüft werden soll.
Senke des Handlers für eingehende EOD-Befehle
OnInboundCommand
Signalisiert einen eingehenden _EOD-Befehl.
Weitere Informationen
Vollständige Informationen zu SMTP finden Sie unter SMTP-Server.