So überprüfen Sie eine SMTP-Verbindung mit einer manuellen Telnet-Sitzung
Vogel
07.02.2020
1 min read

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 25aus. 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 dannQUITein.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:
Linux:
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:
Mit der IP-Adresse führen Sie den folgenden Befehl aus, wobei A.B.C.D die IP-Adresse ist.
Windows:
Linux:
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:
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:
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:
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.
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:
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.



