So überprüfen Sie eine SMTP-Verbindung mit einer manuellen Telnet-Sitzung

Vogel

07.02.2020

E-Mail

1 min read

So überprüfen Sie eine SMTP-Verbindung mit einer manuellen Telnet-Sitzung

Wichtige Erkenntnisse

    • Manual telnet testing ist eine schnelle, einfache Methode zur Diagnose von SMTP-Konnektivitäts- und Konfigurationsproblemen.

    • Verwenden Sie es, um zu überprüfen, ob ein SMTP-Server erreichbar, richtig konfiguriert und Verbindungen akzeptiert wird.

    • Der Test kann blockierte Ports, Relay-Beschränkungen, DNS-Fehler oder TLS-Kompatibilitätsprobleme aufdecken.

    • Wichtige SMTP-Befehle umfassen EHLO/HELO, MAIL FROM, RCPT TO, DATA und QUIT.

    • Port 25 ist Standard für Relay, während 465 und 587 für sichere Übermittlungen verwendet werden.

    • Base64-encoded authentication (AUTH LOGIN) ist erforderlich, wenn Server Anmeldeinformationen verlangen.

    • Tools wie Swaks oder integrierte E-Mail-Testplattformen können die diagnostischen Schritte von Telnet automatisieren und erweitern.

Q&A Highlights

  • Warum Telnet anstelle eines dedizierten Email-Testtools verwenden?

    Telnet bietet Ihnen direkte Sichtbarkeit in den rohen SMTP-Dialog. Es ist unschätzbar für die Fehlerbehebung auf Protokollebene und die Bestätigung von Serverantworten ohne Drittschicht.

  • Was ist der schnellste Weg, um festzustellen, ob mein SMTP-Port blockiert ist?

    Führen Sie telnet mail.example.com 25 aus. Wenn Sie „Connection refused“ erhalten, blockiert Ihr ISP oder Host wahrscheinlich den Port.

  • Muss ich mich authentifizieren, wenn ich mit telnet teste?

    Nur wenn der Mailserver eine Authentifizierung erfordert. Verwenden Sie den AUTH LOGIN-Befehl und senden Sie Ihren Benutzernamen und Ihr Passwort im Base64-Format kodiert.

  • Kann ich eine vollständige E-Mail über telnet senden?

    Ja. Nach DATA, fügen Sie Ihre Header und den Textkörper hinzu, enden Sie mit einem einzelnen Punkt (.) in einer eigenen Zeile, und geben Sie dann QUIT ein.

  • Ist telnet sicher für SMTP testing?

    Nein. Telnet überträgt Daten im Klartext. Verwenden Sie es nur zum Testen in sicheren, kontrollierten Umgebungen. Für sichere Verbindungen testen Sie über TLS mit Tools, die STARTTLS unterstützen.

In der Welt der E-Mail gibt es viele Facetten des Testens, aber einer der grundlegendsten Tests, die Sie durchführen können, ist einfach, per Telnet in einen gegebenen SMTP-Server zu gelangen. Dieser SMTP-Check ist nützlich, um festzustellen, ob die grundlegendsten Probleme existieren oder nicht.

In der Welt der E-Mail gibt es viele Aspekte zu testen, aber einer der grundlegendsten Tests, die Sie durchführen können, ist einfach, sich in einen bestimmten SMTP-Server hinein zu telneten. Dieser SMTP-Check ist nützlich, um festzustellen, ob die grundlegendsten Probleme existieren oder nicht.

  • Ist der Server online?

  • Gibt es eine Firewall, die die Kommunikation blockiert?

  • Erlaubt der Mailserver das Weiterleiten einer bestimmten Domain/E-Mail-Adresse?

  • Welche SMTP-Befehle unterstützt der Mailserver?

  • Antwortet der Server mit dem richtigen Hostnamen?

  • Funktioniert die Verbindung außerhalb jeglicher Drittanbieter-Software oder APIs?

Alle diese Fragen und mehr können mit einem einfachen Telnet-Test beantwortet werden.

Bevor wir beginnen, öffnen Sie sicher unser Begleitstück zu diesem Beitrag: Wohin werden Bounce-Nachrichten gesendet? in einem neuen Tab, damit Sie es lesen können, nachdem Sie mit diesem Blog fertig sind.

Als Hinweis: Die in den folgenden Beispielen verwendeten Befehle (sowie zusätzliche Befehle) sind in Abschnitt 4.1 von RFC 2821 behandelt.

Wie sende ich eine Email mit Telnet?

Das Senden von E-Mails über Telnet kann Ihnen helfen, Zustellbarkeitsprobleme innerhalb Ihrer aktuellen Konfiguration zu identifizieren.

Bevor Sie eine E-Mail mit Telnet senden, bestätigen Sie, dass Telnet auf Ihrem Computer sowohl installiert als auch aktiviert ist. Die meisten Computer sind mit einem vorinstallierten Telnet-Client ausgestattet. Bei den Windows-Versionen, die dies nicht tun, kann ein Telnet-Client installiert werden, indem Sie den Abschnitt „Programme und Funktionen“ in der Systemsteuerung öffnen und „Windows-Features aktivieren oder deaktivieren“ auswählen. Wenn dieses Fenster geöffnet ist, wählen Sie „Telnet-Client“ und klicken Sie dann auf OK.

Sobald ein Telnet-Client auf dem Server als installiert bestätigt wurde, öffnen Sie das Terminalfenster, in dem Sie Ihre Eingabeaufforderungsbefehle eingeben. Unter Windows verwenden Sie die Kombination Windows + R, geben „cmd“ ein und drücken die Eingabetaste. Für Mac-Benutzer finden Sie das Terminal-Symbol, indem Sie den Finder öffnen und auf der Seite Anwendungen nach „Dienstprogramme“ suchen oder „Terminal“ in die Launchpad-Suchfunktion eingeben.

Als Nächstes müssen wir einen Mailserver finden, bei dem wir uns anmelden können. Dafür benötigen wir den DNS-MX-Eintrag für eine bestimmte Domain. Dieser kann mit dem folgenden Befehl gefunden werden (für diese Beispiele wird port25.com verwendet, aber jede Domain kann ersetzt werden):

Windows:

nslookup -type=mx port25.com
Non-authoritative answer:
port25.com  MX preference = 100, mail exchanger = mail.port25.com

Linux:

nslookup -type=mx port25.com
Non-authoritative answer:
port25.com  mail exchanger = 100 mail.port25.com

SMTP verwendet einen von drei Ports — 25, 465 oder 587, die Microsoft Outlook häufig verwendet. Für die erweiterte Mail-Server-Konfiguration und -Optimierung siehe unseren Leitfaden zu PowerMTA-Konfigurationstipps. Wenn Ihr SMTP-Relay einen anderen Port als 25 verwendet, wie im Beispiel gezeigt, verwenden Sie den Port, der von der Antwort des Mail-Exchange-Servers auf das Nslookup angegeben wird. Sie können auch den Port, auf den Ihr SMTP angewiesen ist, überprüfen, indem Sie Ihren Administrator fragen oder sich beim Mail-Exchange-Server anmelden und die Protokolle überprüfen.

Als Nächstes benötigen wir den DNS-PTR für die IP, die wir verwenden werden.  Zuerst müssen wir wissen, welche IP-Adresse das Internet für uns sieht.  Dazu können wir eine Website wie:

http://whatismyipaddress.com/

Mit der IP-Adresse führen Sie den folgenden Befehl aus, wobei A.B.C.D die IP-Adresse ist.

Windows:

nslookup -type=ptr A.B.C.D
Non-authoritative answer: 
D.C.B.A.in-addr.arpa name = server.example.com

Linux:

nslookup -type=ptr A.B.C.D
Non-authoritative answer: 
D.C.B.A.in-addr.arpa name = server.example.com

server.example.com ist nur ein Beispiel und Ihre Ergebnisse werden anders sein.

Da wir nun den MX-Eintrag für port25.com und den PTR für die zu verwendende IP haben, ist es Zeit, sich beim SMTP-Server anzumelden. Dazu verwenden Sie den folgenden Befehl:

telnet mail.port25.com 25

Etwas Ähnliches wie das Folgende sollte nun angezeigt werden:

Trying 69.63.149.30...
Connected to mail.port25.com (69.63.149.30).
Escape character is '^]'.
220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready

Wenn Sie an dieser Stelle eine Fehlermeldung wie „Kann nicht verbinden“ erhalten, ist entweder die Portnummer korrekt oder der Mailserver hat Probleme.

Der erste Befehl, den wir an den Mailserver für unseren SMTP-E-Mail-Tester ausgeben müssen, ist EHLO  oder HELO.  Dies ist eine grundlegende Begrüßung, die die Kommunikation zwischen dem Telnet-Client und dem SMTP-Server startet.  Auch übergeben wird der DNS PTR für die IP-Adresse, von der aus wir verbinden, wie zuvor bestimmt.

EHLO server.example.com

Etwas Ähnliches wie das Folgende sollte zurückgegeben werden:

250-mail.port25.com says hello
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250-8BITMIME
250-XACK
250-XMRG
250-SIZE 54525952
250-VERP
250 DSN

Dies zeigt die SMTP-Befehle, die der SMTP-Server akzeptiert.  Nicht alle SMTP-Server unterstützen die gleichen Befehlssets. Zum Beispiel zeigt Yahoo nur Folgendes:

250-8BITMIME 
250-SIZE 41943040 
250 PIPELINING

Und aol zeigt nur einen mit:

250 DSN

Der nächste Befehl, den wir erteilen müssen, ist der Befehl MAIL FROM.  Damit wird die Adresse festgelegt, an die Rückläufer gesendet werden. Dies ist nicht dasselbe wie der von-Header, der die E-Mail-Adresse zeigt, die in einem E-Mail-Client angezeigt wird.

MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok

Stellen Sie sicher, dass Sie den Domainnamen verwenden, der der Domain Ihres Mail-Servers entspricht. Wenn die Domain Ihrer E-Mail beispielsweise anycompany.com ist, sollten Sie you@anycompany.com anstelle einer externen E-Mail wie you@free-mail-provider.com verwenden. Variationen in Domainnamen können dazu führen, dass eine Fehlermeldung angezeigt wird.

Nachdem der Befehl MAIL FROM gesendet wurde, können wir den Befehl RCPT TO  senden.  Dieser Befehl teilt dem SMTP-Mailserver mit, an wen die Nachricht gesendet werden soll. Dies kann mit dem To-Header identisch oder unterschiedlich sein, der die E-Mail-Adresse zeigt, die im E-Mail-Client angezeigt wird.

RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok

Überprüfen Sie die Empfängeradresse vor dem Senden des RCPT TO-Befehls — eine hier angezeigte Fehlermeldung kann auf einen falsch geschriebenen oder blockierten E-Mail-Empfänger hinweisen.

Der letzte Befehl, den Sie ausführen müssen, bevor Sie den Nachrichtentext starten, ist der Befehl DATA.  Dieser Befehl teilt dem SMTP-Mailserver mit, dass alles, was jetzt gesendet wird, der Nachrichtentext ist (der auch die Header enthält).

DATA 354 Nachricht senden

Es ist wichtig zu beachten, dass, wenn ein Mailserver PIPELINING unterstützt, wie es mail.port25.com tut, der SMTP-Mailserver möglicherweise auf die Ausgabe des DATA-Befehls wartet, bevor er auf andere Befehle nach dem EHLO/HELO reagiert.  In diesem Fall geben Sie die Befehle MAIL FROM, RCPT TO und DATA ein, bevor Sie auf eine Antwort warten.

Nachdem der DATA-Befehl gesendet wurde, können wir mit dem Senden des Nachrichteninhalts beginnen.  Dies beginnt mit den verschiedenen Headern. Eine Nachricht sollte mindestens einen An-, Von-, Betreff- und Datums-Header enthalten. Die hier eingegebenen Header werden dem Benutzer in seinem E-Mail-Client angezeigt.

From: "John Smith" <jsmith@port25.com>
To: "Jane Doe" <jdoe@port25.com>
Subject: test message sent from manual telnet session
Date: Wed, 11 May 2011 16:19:57 -0400

Mit den gesetzten Headern fügen wir nun eine leere Zeile mit einem Wagenrücklauf/Zeilenumbruch ein (drücken Sie einfach zweimal die Eingabetaste) und beginnen dann mit dem eigentlichen Nachrichtentext.

Hallo Welt, Dies ist eine Testnachricht, die von einer manuellen Telnet-Sitzung gesendet wurde. Mit freundlichen Grüßen, SMTP-Administrator

Nachdem die Nachricht fertiggestellt ist, müssen wir dem SMTP-Server mitteilen, dass wir mit der Nachricht fertig sind und dass der SMTP-Mail-Server sie akzeptieren soll. Dies geschieht mit einem Punkt auf einer separaten Zeile. Wenn beim Verfassen einer Nachricht ein Punkt auf einer separaten Zeile benötigt wird, müssen Sie 2 Punkte setzen, wobei der erste den zweiten entwertet.

.   250 2.6.0 Nachricht empfangen

Wenn Sie statt der „Empfangen“-Benachrichtigung eine Fehlermeldung erhalten, protokollieren Sie die relevanten Details und wenden Sie sich für weitere Unterstützung an Ihren E-Mail-Anbieter. Verbindungsprobleme können auch mit Sicherheitsprotokollen zusammenhängen - stellen Sie sicher, dass Sie TLS 1.2 oder höher für sichere Verbindungen verwenden.

Zum Schluss wird der Befehl QUIT  gesendet, um die Verbindung zu schließen:

QUIT 221 2.0.0 mail.port25.com sagt auf Wiedersehen

Damit hat der Mailserver die Nachricht nun zur Zustellung akzeptiert, Ihr Telnet-E-Mail-Sendetest ist abgeschlossen und sie sollte im Posteingang der RCPT-TO-Adresse liegen!!!

Hier sind alle Befehle ohne Unterbrechung:

telnet mail.port25.com 25
Trying 69.63.149.30...
Connected to mail.port25.com (69.63.149.30).
Escape character is '^]'.
  
220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready

EHLO server.example.com
250-mail.port25.com says hello
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250-8BITMIME
250-XACK
250-XMRG
250-SIZE 54525952
250-VERP
250 DSN

MAIL FROM:<support@port25.com>
250 2.1.0 MAIL ok

RCPT TO:<support@port25.com>
250 2.1.5 <support@port25.com> ok

DATA
354 send message

From: "John Smith" <jsmith@port25.com>
To: "Jane Doe" <jdoe@port25.com>
Subject: test message sent from manual telnet session
Date: Wed, 11 May 2011 16:19:57 -0400

Hello World,
This is a test message sent from a manual telnet session.
Yours truly,
SMTP administrator
.

250 2.6.0 message received

QUIT
221 2.0.0 mail.port25.com says goodbye

Das Senden einer E-Mail mit Telnet ermöglicht es Ihnen, die Verbindungsfähigkeiten schnell und kostengünstiger als mit robuster Diagnosetechnik oder -software zu testen. Für fortgeschrittenere SMTP-Testtools sollten Sie die Verwendung von Swaks mit SparkPost für umfassende E-Mail-Tests in Betracht ziehen.

Wie teste ich SMTP mit Telnet-Authentifizierung?

Da Sie nun wissen, wie man eine SMTP-Verbindung mit Telnet überprüft, werden wir Authentifizierungsverfahren besprechen. SMTP-Authentifizierung hilft, dass große Mengen an Spam nicht in die Inbox von Lesern gelangen, obwohl nicht alle Mail-Exchange-Server sie benötigen. Das Verständnis der Authentifizierung ist auch entscheidend, wenn es darum geht, E-Mail-Header zu analysieren, um die Zustellbarkeit zu überprüfen.

Der Hauptunterschied bei modernen Authentifizierungsprotokollen ist das Vorhandensein einer Base64-Kodierung. Base64 konvertiert binäre Daten in das ASCII-Textformat, das von Mail-Servern für eine erfolgreiche Datenübertragung benötigt wird. Es ist eine Möglichkeit, Ihre Anmeldedaten — eine Kombination aus Text — in einem numerischen Format darzustellen, das der Computer verstehen kann.

Sie können Ihr Base64 mit Software oder kostenlosen Online-Tools generieren. Sobald Sie die Informationen an den Mail-Server übermitteln, vergleicht dieser die Daten mit seinen Aufzeichnungen, um die Authentifizierung festzustellen.

Um die SMTP-Authentifizierung über Telnet zu testen, führen Sie die folgenden Schritte aus:

  • Öffnen Sie das Terminal und verbinden Sie sich mit dem Mail-Server unter Verwendung des Telnet-Servernamens und des Zugriffsbefehls — mail.port25.com im obigen Beispiel.

  • Begrüßen Sie den Server mit EHLO oder HELO, geben Sie AUTH LOGIN ein und warten Sie auf die Antwort des Computers.

  • Geben Sie den Base64-kodierten Benutzernamen ein und lassen Sie den Server antworten.

  • Geben Sie das in Base64 kodierte Passwort ein, und Sie sollten eine Antwort wie „Authentifizierung erfolgreich“ erhalten.

  • Fahren Sie fort mit MAIL FROM, RCPT TO, DATA und QUIT, um Ihre authentifizierte E-Mail zu senden.

Da Sie nun wissen, wie man eine SMTP-Verbindung mit Telnet überprüft, werden wir Authentifizierungsverfahren besprechen. SMTP-Authentifizierung hilft, dass große Mengen an Spam nicht in die Inbox von Lesern gelangen, obwohl nicht alle Mail-Exchange-Server sie benötigen. Das Verständnis der Authentifizierung ist auch entscheidend, wenn es darum geht, E-Mail-Header zu analysieren, um die Zustellbarkeit zu überprüfen.

Der Hauptunterschied bei modernen Authentifizierungsprotokollen ist das Vorhandensein einer Base64-Kodierung. Base64 konvertiert binäre Daten in das ASCII-Textformat, das von Mail-Servern für eine erfolgreiche Datenübertragung benötigt wird. Es ist eine Möglichkeit, Ihre Anmeldedaten — eine Kombination aus Text — in einem numerischen Format darzustellen, das der Computer verstehen kann.

Sie können Ihr Base64 mit Software oder kostenlosen Online-Tools generieren. Sobald Sie die Informationen an den Mail-Server übermitteln, vergleicht dieser die Daten mit seinen Aufzeichnungen, um die Authentifizierung festzustellen.

Um die SMTP-Authentifizierung über Telnet zu testen, führen Sie die folgenden Schritte aus:

  • Öffnen Sie das Terminal und verbinden Sie sich mit dem Mail-Server unter Verwendung des Telnet-Servernamens und des Zugriffsbefehls — mail.port25.com im obigen Beispiel.

  • Begrüßen Sie den Server mit EHLO oder HELO, geben Sie AUTH LOGIN ein und warten Sie auf die Antwort des Computers.

  • Geben Sie den Base64-kodierten Benutzernamen ein und lassen Sie den Server antworten.

  • Geben Sie das in Base64 kodierte Passwort ein, und Sie sollten eine Antwort wie „Authentifizierung erfolgreich“ erhalten.

  • Fahren Sie fort mit MAIL FROM, RCPT TO, DATA und QUIT, um Ihre authentifizierte E-Mail zu senden.

Da Sie nun wissen, wie man eine SMTP-Verbindung mit Telnet überprüft, werden wir Authentifizierungsverfahren besprechen. SMTP-Authentifizierung hilft, dass große Mengen an Spam nicht in die Inbox von Lesern gelangen, obwohl nicht alle Mail-Exchange-Server sie benötigen. Das Verständnis der Authentifizierung ist auch entscheidend, wenn es darum geht, E-Mail-Header zu analysieren, um die Zustellbarkeit zu überprüfen.

Der Hauptunterschied bei modernen Authentifizierungsprotokollen ist das Vorhandensein einer Base64-Kodierung. Base64 konvertiert binäre Daten in das ASCII-Textformat, das von Mail-Servern für eine erfolgreiche Datenübertragung benötigt wird. Es ist eine Möglichkeit, Ihre Anmeldedaten — eine Kombination aus Text — in einem numerischen Format darzustellen, das der Computer verstehen kann.

Sie können Ihr Base64 mit Software oder kostenlosen Online-Tools generieren. Sobald Sie die Informationen an den Mail-Server übermitteln, vergleicht dieser die Daten mit seinen Aufzeichnungen, um die Authentifizierung festzustellen.

Um die SMTP-Authentifizierung über Telnet zu testen, führen Sie die folgenden Schritte aus:

  • Öffnen Sie das Terminal und verbinden Sie sich mit dem Mail-Server unter Verwendung des Telnet-Servernamens und des Zugriffsbefehls — mail.port25.com im obigen Beispiel.

  • Begrüßen Sie den Server mit EHLO oder HELO, geben Sie AUTH LOGIN ein und warten Sie auf die Antwort des Computers.

  • Geben Sie den Base64-kodierten Benutzernamen ein und lassen Sie den Server antworten.

  • Geben Sie das in Base64 kodierte Passwort ein, und Sie sollten eine Antwort wie „Authentifizierung erfolgreich“ erhalten.

  • Fahren Sie fort mit MAIL FROM, RCPT TO, DATA und QUIT, um Ihre authentifizierte E-Mail zu senden.

Andere Neuigkeiten

Mehr lesen aus dieser Kategorie

A person is standing at a desk while typing on a laptop.

Die vollständige AI-native Plattform, die mit Ihrem Business skaliert.

A person is standing at a desk while typing on a laptop.

Die vollständige AI-native Plattform, die mit Ihrem Business skaliert.