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.

7fee5659-17ca-4ed0-9e01-97592772cb9e

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.

MAIL

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:

  • GSSAPI   Generic Security Services Application Programming Interface; eine Methode, welche die Authentifizierung durch Kerberos ermöglicht.
  • NTLM   Windows NT and LAN Manager; eine Methode, welche die Authentifizierung über das Protokoll Windows NT Herausforderung/Rückmeldung ermöglicht.
  • LOGIN   AUTH LOGIN, eine Standardauthentifizierungsmethode, bei der ein Benutzername und Kennwort verwendet werden, die mit Base 64 codiert sind.

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.

noteAnmerkung:
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-Protokollsicherheits­senke 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.