Testen der SMTP-Kommunikation auf Exchange-Servern mithilfe von Telnet

Sie können Telnet zum Testen der SMTP-Kommunikation (Simple Mail Transfer Protocol) zwischen Messagingservern verwenden. SMTP ist das Protokoll, das zum Senden von E-Mail-Nachrichten von einem Messagingserver zu einem anderen verwendet wird. Die Verwendung von Telnet kann hilfreich sein, wenn Sie Probleme beim Senden oder Empfangen von Nachrichten haben, da Sie manuell SMTP-Befehle an einen Messagingserver senden können. Im Gegenzug gibt der Server Antworten zurück, die bei einer typischen Verbindung zurückgegeben würden. Diese Ergebnisse können manchmal hilfreich sein, um herauszufinden, warum keine Nachrichten gesendet oder empfangen werden können.

Sie können Telnet zum Testen der SMTP-Kommunikation für Folgendes verwenden:

  • Testen des Nachrichtenflusses vom Internet zu Ihrer Exchange-Organisation.

  • Testen des Nachrichtenflusses von Ihrem Exchange- zu einem anderen Nachrichtenserver im Internet.

Tipp

Wussten Sie, dass Sie zum Testen der SMTP-Verbindung anstelle von Telnet auch die Microsoft-Remoteverbindungsuntersuchung unter https://testconnectivity.microsoft.com/ verwenden können? Bei der Remoteverbindungsuntersuchung können Sie den gewünschten Verbindungstest, in diesem Fall Eingehende SMTP-E-Mail-Nachrichten, auswählen, und die angezeigten Anweisungen befolgen. Sie werden durch die Informationen geführt, die Sie eingeben müssen, der Test wird für Sie durchgeführt, und Sie erhalten dann die Ergebnisse. Probieren Sie es aus.

Was sollten Sie wissen, bevor Sie beginnen?

  • Geschätzte Zeit bis zum Abschließen des Vorgangs: 15 Minuten

  • Exchange-Berechtigungen gelten nicht für die Verfahren in diesem Thema. Diese Verfahren erfolgen im Betriebssystem des Exchange-Servers oder eines Clientcomputers.

  • In diesem Thema erfahren Sie, wie Sie den Telnet-Client verwenden, der in Windows enthalten ist. Für Telnet-Clients von Drittanbietern ist möglicherweise eine Syntax erforderlich, die sich von der in diesem Thema gezeigten Syntax unterscheidet.

  • Die Schritte in diesem Thema zeigen, wie Sie mithilfe von TCP-Port 25 eine Verbindung zu einem Internetserver herstellen, der anonyme Verbindungen zulässt. Wenn Sie versuchen, über das Internet eine Verbindung mit diesem Server herzustellen, müssen Sie sicherstellen, dass Ihr Exchange-Server über das Internet über TCP-Port 25 erreichbar ist. Wenn Sie versuchen, einen Server im Internet von Ihrem Exchange-Server aus zu erreichen, müssen Sie sicherstellen, dass Ihr Exchange-Server über TCP-Port 25 eine Verbindung mit dem Internet herstellen kann.

  • Sie haben wahrscheinlich bemerkt, dass einige Empfangsconnectors TCP-Port 25 verwenden. Dabei handelt es sich um interne Empfangsconnectors, die nicht zum Akzeptieren anonymer SMTP-Verbindungen verwendet werden.

  • Wenn Sie eine Verbindung auf einem Remotemessagingserver testen, sollten Sie die Schritte in diesem Thema auf Ihrem Exchange Server-Computer ausführen. Remotemessagingserver sind häufig so eingerichtet, dass sichergestellt wird, dass die IP-Adresse, von der die SMTP-Verbindung stammt, der Domäne in der E-Mail-Adresse des Absenders entspricht.

  • Informationen zu Tastenkombinationen für die Verfahren in diesem Thema finden Sie unter Tastenkombinationen in der Exchange-Verwaltungskonsole.

Tipp

Liegt ein Problem vor? Bitten Sie in den Exchange-Foren um Hilfe. Sie finden die Foren unter folgenden Links: Exchange Server, Exchange Online oder Exchange Online Protection.

Schritt 1: Installieren des Telnet-Clients auf Ihrem Computer

Auf den meisten Versionen von Windows müssen Sie den Telnet-Client installieren, bevor Sie ihn verwenden können. Installationsanweisungen finden Sie unter Installieren des Telnet-Clients.

Schritt 2: Suchen des vollqualifizierten Domänennamens (FQDN) oder der IP-Adresse des SMTP-Zielservers

Um über Telnet an Port 25 eine Verbindung mit einem SMTP-Server herzustellen, müssen Sie den vollqualifizierten Domänennamen (FQDN) (z. B. mail.contoso.com) oder die IP-Adresse des SMTP-Servers verwenden. Wenn Sie den FQDN oder die IP-Adresse nicht kennen, können Sie das Befehlszeilentool „Nslookup“ verwenden, um den MX-Datensatz für die Zieldomäne zu suchen.

Hinweis

Möglicherweise verhindern Netzwerkrichtlinien, dass Sie Nslookup zum Abfragen öffentlicher DNS-Server im Internet verwenden können. Alternativ können Sie eine der kostenlos verfügbaren Websites zur DNS-Suche oder zur Suche von MX-Datensätzen im Internet verwenden.

  1. Geben Sie an der Eingabeaufforderung nslookup ein, und drücken Sie dann die EINGABETASTE. Dieser Befehl öffnet die Nslookup-Sitzung.

  2. Geben Sie set type=mx ein, und drücken Sie dann die EINGABETASTE.

  3. Geben Sie den Namen der Domäne ein, für die Sie den MX-Datensatz suchen möchten. Um beispielsweise den MX-Datensatz für die Domäne „fabrikam.com“ zu suchen, geben Sie fabrikam.com. ein und drücken dann die EINGABETASTE.

    Hinweis

    Wenn Sie einen nachgestellten Zeitraum ( ) verwenden, verhindern Sie, dass dem Domänennamen versehentlich DNS-Standardsuffixe hinzugefügt werden.

    Die Ausgabe des Befehls sieht wie folgt aus:

    fabrikam.com mx preference=10, mail exchanger = mail1.fabrikam.com
    fabrikam.com mx preference=20, mail exchanger = mail2.fabrikam.com
    mail1.fabrikam.com internet address = 192.168.1.10
    mail2 fabrikam.com internet address = 192.168.1.20
    

    Sie können jeden beliebigen Hostnamen oder jede beliebige IP-Adresse verwenden, der bzw. die den MX-Datensätzen als SMTP-Zielserver zugeordnet ist. Ein niedrigerer Präferenzwert (Präferenz = 10 gegenüber 20) zeigt einen bevorzugten SMTP-Server an. Mehrere MX-Datensätze und unterschiedliche Präferenzwerte werden für Lastenausgleich und Fehlertoleranz verwendet.

  4. Wenn Sie bereit sind, die Nslookup-Sitzung zu beenden, geben Sie exit ein und drücken dann die EINGABETASTE.

Schritt 3: Verwenden von Telnet an Port 25 zum Testen der SMTP-Kommunikation

In diesem Beispiel werden wir die folgenden Werte verwenden. Wenn Sie die Befehle auf dem Server ausführen, ersetzen Sie diese Werte mit denjenigen des SMTP-Servers, der Domäne usw. Ihrer Organisation.

  • SMTP-Zielserver: mail1.fabrikam.com
  • Quelldomäne: contoso.com
  • E-Mail-Adresse des Absenders: chris@contoso.com
  • E-Mail-Adresse des Empfängers: kate@fabrikam.com
  • Nachrichtenbetreff: Test von Contoso
  • Nachrichtentext: Dies ist eine Testnachricht

Tipp

Bei den Befehlen im Telnet-Client wird nicht zwischen Groß- und Kleinschreibung unterschieden. Die SMTP-Befehlsverben wurden in diesem Beispiel aus Gründen der Klarheit mit Großbuchstaben geschrieben. Sie können die Rücktaste in der Telnet-Sitzung nicht verwenden, nachdem Sie eine Verbindung mit dem SMTP-Zielserver herstellen. Wenn Ihnen beim Eingeben eines SMTP-Befehls ein Fehler unterläuft, müssen Sie die EINGABETASTE drücken und den Befehl dann erneut eingeben. Nicht erkannte SMTP-Befehle oder Syntaxfehler führen zu eine Fehlermeldung, die in etwa wie folgt aussieht: 500 5.3.3 Unrecognized command.

  1. Öffnen Sie ein Eingabeaufforderungsfenster, geben Sie telnet ein, und drücken Sie dann die EINGABETASTE.

    Dieser Befehl öffnet die Telnet-Sitzung.

  2. Geben Sie set localecho ein, und drücken Sie dann die EINGABETASTE.

    Mit diesem optionalen Befehl können Sie währen der Eingabe die Zeichen anzeigen. Dieses Einstellung ist für einige SMTP-Server möglicherweise erforderlich.

  3. Geben Sie set logfile <filename> ein, und drücken Sie dann die EINGABETASTE.

    Dieser optionale Befehl aktiviert die Protokollierung und legt die Protokolldatei für die Telnet-Sitzung fest.. Wenn Sie nur einen Dateinamen angeben, befindet sich die Protokolldatei im aktuellen Ordner. Wenn Sie einen Pfad und einen Dateinamen angeben, muss sich der Pfad auf dem lokalen Computer befinden. Möglicherweise müssen Sie den Pfad und den Dateinamen im Windows DOS 8.3-Format (kurzer Name ohne Leerzeichen) eingeben. Der Pfad muss vorhanden sein, aber die Protokolldatei wird automatisch erstellt.

  4. Geben Sie OPEN mail1.fabrikam.com 25 ein, und drücken Sie dann die EINGABETASTE.

  5. Geben Sie EHLO contoso.com ein, und drücken Sie dann die EINGABETASTE.

  6. Geben Sie MAIL FROM:<chris@contoso.com> ein, und drücken Sie dann die EINGABETASTE.

  7. Geben Sie RCPT TO:<kate@fabrikam.com> NOTIFY=success,failure ein, und drücken Sie dann die EINGABETASTE.

    Der optionale NOTIFY-Befehl gibt die jeweiligen DSN-Nachrichten (delivery status notification, Benachrichtigung über den Zustellungsstatus) an (auch als Unzustellbarkeitsnachrichten oder Unzustellbarkeitsberichte bezeichnet), die SMTP bereitstellen muss. In diesem Beispiel fordern Sie eine DSN-Nachricht für eine erfolgreiche oder fehlgeschlagene Nachrichtenzustellung an.

  8. Geben Sie DATA ein, und drücken Sie dann die EINGABETASTE.

  9. Geben Sie Subject: Test from Contoso ein, und drücken Sie dann die EINGABETASTE.

  10. Drücken Sie die EINGABETASTE erneut.

    Zwischen dem Feld Betreff: und dem Nachrichtentext ist eine leere Zeile erforderlich.

  11. Geben Sie This is a test message ein, und drücken Sie dann die EINGABETASTE.

  12. Geben Sie einen Punkt ( . ) ein, und drücken Sie dann die EINGABETASTE.

  13. Um die Verbindung mit dem SMTP-Server zu trennen, geben Sie QUIT ein, und drücken Sie dann die EINGABETASTE.

  14. Um Ihre Telnet-Sitzung zu schließen, geben Sie quit ein und drücken dann die EINGABETASTE.

Nachfolgend sehen Sie, wie eine erfolgreiche Sitzung unter Verwendung der obigen Schritte aussieht:

C:\Windows\System32> telnet
Microsoft Telnet> set localecho
Microsoft Telnet> set logfile c:\TelnetTest.txt
Microsoft Telnet> OPEN mail1.fabrikam.com 25
220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at Fri, 5 Aug 2016 16:24:41 -0700
EHLO contoso.com
250-mail1.fabrikam.com Hello [172.16.0.5]
250-SIZE 37748736
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-X-ANONYMOUSTLS
250-AUTH NTLM
250-X-EXPS GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 XRDST
MAIL FROM: <chris@contoso.com>
250 2.1.0 Sender OK
RCPT TO: <kate@fabrikam.com> NOTIFY=success,failure
250 2.1.5 Recipient OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
Subject: test

This is a test message.
.
250 2.6.0 <c89b4fcc-3ad1-4758-a1ab-1e820065d622@mail1.fabrikam.com> [InternalId=5111011082268, Hostname=mail1.fabrikam.com] Queued mail for delivery
QUIT
221 2.0.0 Service closing transmission channel

Schritt 4: Erfolgs- und Fehlermeldungen in der Telnet-Sitzung

Dieser Abschnitt enthält Informationen zu den Erfolgs- und Fehlerantworten auf die Befehle, die im vorherigen Beispiel verwendet wurden.

Hinweis

Die dreistelligen SMTP-Antwortcodes, die in RFC 5321 definiert sind, sind für alle SMTP-Messagingserver gleich. Die Textbeschreibungen in den Antworten können geringfügig abweichen.

SMTP-Antwortcodes

SMTP-Server reagieren mit einer Vielzahl numerischer Antwortcodes im Format x.y.z auf Befehle. Dabei gilt:

  • X gibt an, ob der Befehl erfolgreich, fehlerhaft oder unvollständig war.
  • Y gibt die Art der Antwort an, die gesendet wurde.
  • Z stellt zusätzliche Informationen zu dem Befehl bereit.

Wenn eine Antwort von dem Server empfangen wird, der die Verbindung geöffnet hat, gibt diese Auskunft darüber, ob der Remoteserver den Befehl akzeptiert hat und bereit für den nächsten Befehl ist oder ob ein Fehler aufgetreten ist.

Die erste Ziffer (X) ist besonders wichtig, da sie die erfolgreiche oder fehlerhafte Ausführung des Befehls angibt, der gesendet wurde. Nachfolgend finden Sie die möglichen Werte sowie ihre Bedeutungen.

Antwortcode Bedeutung
2.y.z Der Befehl, der gesendet wurde, wurde auf dem Remoteserver erfolgreich abgeschlossen. Der Remoteserver ist bereit für den nächsten Befehl.
3.y.z Der Befehl wurde akzeptiert, aber der Remoteserver benötigt weitere Informationen, bevor der Vorgang abgeschlossen werden kann. Der sendende Server muss einen neuen Befehl mit den erforderlichen Informationen senden.
4.y.z Der Befehl wurde vom Remoteserver aus einem möglicherweise temporären Grund nicht akzeptiert. Der sendende Server sollte den Verbindungsversuch später wiederholen, um festzustellen, ob der Remoteserver den Befehl erfolgreich akzeptieren kann. Der sendende Server wiederholt die Verbindung weiter, bis eine erfolgreiche Verbindung hergestellt wurde (gekennzeichnet durch den Code 2.y.z) oder die Verbindung dauerhaft fehlschlägt (gekennzeichnet durch den Code 5.y.z).
Ein Beispiel für einen temporären Fehler ist wenig Speicherplatz auf dem Remoteserver. Sobald mehr Speicherplatz zur Verfügung gestellt wird, sollte der Remoteserver in der Lage sein, den Befehl erfolgreich zu akzeptieren.
5.y.z Der Befehl wurde vom Remoteserver aus einem nicht wiederherstellbaren Grund nicht akzeptiert. Der sendende Server wiederholt den Verbindungsversuch nicht und sendet einen Unzustellbarkeitsbericht an den Benutzer, der die Nachricht gesendet hat.
Ein Beispiel für einen nicht behebbaren Fehler ist eine Nachricht, die an eine E-Mail-Adresse gesendet wird, die es nicht gibt.

Die obige Tabelle basiert auf Informationen aus RFC 5321 (Simple Mail Transfer Protocol), Abschnitt 4.2.1. Zusätzliche Informationen, einschließlich Beschreibungen der zweiten (Y) und dritten (Z) Ziffer von SMTP-Antwortcodes, sind in diesem Abschnitt sowie in den Abschnitten 4.2.2 und 4.2.3 enthalten.

OPEN-Befehl

Erfolgreiche Antwort: 220 mail1.fabrikam.com Microsoft ESMTP MAIL Service ready at <day-date-time>

Fehlerantwort: Connecting to mail1.fabrikam.com...Could not open connection to the host, on port 25: Connect failed

Mögliche Fehlerursachen:

  • Der SMTP-Zieldienst ist nicht verfügbar.
  • Für die Zielfirewall gelten Einschränkungen.
  • Für die Quellfirewall gelten Einschränkungen.
  • Es wurde ein falscher FQDN oder eine falsche IP-Adresse für den SMTP-Zielserver angegeben.
  • Falsche Portnummer.

EHLO-Befehl

Erfolgreiche Antwort: 250 mail1.fabrikam.com Hello [<sourceIPaddress>]

Fehlerantwort: 501 5.5.4 Invalid domain name

Mögliche Fehlerursachen:

  • Ungültige Zeichen im Domänennamen.
  • Auf dem SMTP-Zielserver gelten Verbindungseinschränkungen.

Hinweis

EHLO ist das ESMTP-Verb (Extended Simple Message Transfer Protocol), das in RFC 5321 definiert ist. ESMTP-Server können ihre Funktionen während der ersten Verbindung bekannt geben. Diese Funktionen umfassen die maximal akzeptierte Nachrichtengröße und die unterstützten Authentifizierungsmethoden. HELO ist das ältere SMTP-Verb, das in RFC 821 definiert ist. Die meisten SMTP-Messagingserver unterstützen ESMTP und EHLO. Wenn der Nicht-Exchange-Server, zu dem Sie eine Verbindung herstellen möchten, EHLO nicht unterstützt, können Sie stattdessen HELO verwenden.

MAIL FROM-Befehl

Erfolgreiche Antwort: 250 2.1.0 Sender OK

Fehlerantwort: 550 5.1.7 Invalid address

Mögliche Fehlerursachen: Die E-Mail-Adresse des Absenders enthält einen Syntaxfehler.

Fehlerantwort: 530 5.7.1 Client was not authenticated

Mögliche Fehlerursachen: Der Zielserver akzeptiert keine anonymen Nachrichtenübermittlungen. Dieser Fehler wird angezeigt, wenn Sie versuchen, Telnet zum direkten Übermitteln einer Nachricht an einen Postfachserver zu verwenden, der keinen Empfangskonnektor aufweist, der so konfiguriert ist, dass anonyme Verbindungen akzeptiert werden.

RCPT TO-Befehl

Erfolgreiche Antwort: 250 2.1.5 Recipient OK

Fehlerantwort: 550 5.1.1 User unknown

Mögliche Fehlerursachen: Der angegebene Empfänger ist nicht vorhanden.