
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.
Business in a box.
Entdecken Sie unsere Lösungen.
Sprechen Sie mit unserem Vertriebsteam
In der Welt der E-Mail gibt es viele Aspekte zu testen, aber einer der grundlegendsten Tests, die Sie durchführen können, besteht darin, einfach in einen bestimmten SMTP-Server zu telneten. Diese SMTP-Prüfung ist nützlich, um festzustellen, ob die grundlegendsten Probleme vorhanden sind oder nicht.
Läuft der Server?
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 korrekten Hostnamen?
Funktioniert die Verbindung außerhalb jeglicher Drittanbieter-Software oder APIs?
All diese Fragen und mehr können mit einem einfachen Telnet-Test beantwortet werden.
Bevor wir beginnen, öffnen Sie unbedingt unser Begleitdokument 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) werden 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 in Ihrer aktuellen Konfiguration zu erkennen.
Bevor Sie eine E-Mail über Telnet senden, stellen Sie sicher, dass Telnet auf Ihrem Computer sowohl installiert als auch aktiviert ist. Die meisten Computer sind mit einem vorinstallierten Telnet-Client ausgestattet. Für diejenigen Windows-Versionen, die dies nicht tun, kann einer installiert werden, indem Sie den Abschnitt „Programme und Funktionen“ der Systemsteuerung öffnen und „Windows-Features aktivieren oder deaktivieren“ auswählen. Wählen Sie in diesem geöffneten Fenster „Telnet-Client“ und klicken Sie anschließend auf OK.
Sobald überprüft wurde, dass ein Telnet-Client auf dem Server installiert ist, öffnen Sie das Terminalfenster, in dem Sie Ihre Befehlseingaben eingeben. Unter Windows verwenden Sie die Windows-Taste + R, geben „cmd“ ein und drücken die Eingabetaste. Für Mac-Benutzer finden Sie das Terminal-Symbol, indem Sie den Finder öffnen und nach „Dienstprogramme“ auf der Anwendungsseite suchen oder „Terminal“ in der Suchfunktion des Launchpad eingeben.
Als Nächstes müssen wir einen Mailserver finden, bei dem wir uns anmelden können. Dazu benötigen wir den DNS-MX-Eintrag für eine bestimmte Domain. Dies 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
Nicht autorisierte Antwort:
port25.com MX-Präferenz = 100, Mail-Exchanger = mail.port25.com
Linux:
nslookup -type=mx port25.com
Nicht autorisierte Antwort:
port25.com Mail-Exchanger = 100 mail.port25.com.
SMTP verwendet einen von drei Ports — 25, 465 oder 587, die häufig von Microsoft Outlook verwendet werden. Wenn Ihr SMTP-Relay einen anderen Port als 25 verwendet, wie im Beispiel gezeigt, verwenden Sie den Port, der in der Antwort des Mail-Exchange-Servers auf das Nslookup angegeben ist. Sie können auch den Port überprüfen, auf den Ihr SMTP angewiesen ist, 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 uns als besitzend ansieht. Um dies zu finden, können wir eine Website wie die folgende verwenden:
Führen Sie mit der IP-Adresse den folgenden Befehl aus, wobei A.B.C.D die IP-Adresse ist.
Windows:
nslookup -type=ptr A.B.C.D
Nicht autorisierte Antwort:
D.C.B.A.in-addr.arpa Name = server.example.com
Linux:
nslookup -type=ptr A.B.C.D
Nicht autorisierte Antwort:
D.C.B.A.in-addr.arpa Name = server.example.com
server.example.com ist nur ein Beispiel und Ihre Ergebnisse werden unterschiedlich sein.
Da wir nun den MX-Eintrag für port25.com und den PTR für die IP, die wir verwenden werden, haben, ist es an der Zeit, sich beim SMTP-Server anzumelden. Verwenden Sie dazu den folgenden Befehl:
telnet mail.port25.com 25
Etwas Ähnliches wie das folgende sollte nun angezeigt werden:
Versuche 69.63.149.30... Verbunden mit mail.port25.com (69.63.149.30). Escape-Zeichen ist '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP-Dienst bereit
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 senden müssen, um unseren SMTP-E-Mail-Tester zu starten, ist EHLO oder HELO. Dies ist eine einfache Begrüßung, die die Kommunikation zwischen dem Telnet-Client und dem SMTP-Server startet. Auch wird der DNS-PTR für die IP-Adresse weitergegeben, von der wir uns wie zuvor bestimmt verbinden.
EHLO server.example.com
Etwas Ähnliches sollte zurückgegeben werden:
250-mail.port25.com sagt hallo 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 Befehlssätze. Yahoo zeigt zum Beispiel nur folgendes an:
250-8BITMIME 250-SIZE 41943040 250 PIPELINING
Und aol zeigt nur einen mit:
250 DSN
Der nächste Befehl, den wir ausgeben müssen, ist der MAIL FROM Befehl. Dies bestimmt die Adresse, an die Rückläufer gesendet werden. Dies ist nicht dasselbe wie die From-Header, die die E-Mail-Adresse ist, 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 Mailservers 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 eine Fehlermeldung verursachen.
Nachdem der MAIL FROM-Befehl gesendet wurde, können wir den RCPT TO-Befehl senden. Dieser Befehl teilt dem SMTP-Mailserver mit, wem die Nachricht gesendet werden soll. Dies kann dasselbe oder anders als die To-Header sein, die die E-Mail-Adresse ist, die im E-Mail-Client angezeigt wird.
RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok
Überprüfen Sie die Adresse Ihres Empfängers genau, bevor Sie den RCPT TO-Befehl senden — eine Fehlermeldung, die hier angezeigt wird, kann auf einen falsch geschriebenen oder blockierten E-Mail-Empfänger hinweisen.
Der letzte Befehl, der vor dem Start des Nachrichtentextes auszuführen ist, ist der DATA-Befehl. Dieser Befehl teilt dem SMTP-Mailserver mit, dass alles, was nun 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 mail.port25.com, der SMTP-Mailserver möglicherweise wartet, bis der DATA-Befehl ausgegeben wird, bevor er auf andere Befehle nach dem EHLO/HELO reagiert. In diesem Fall geben Sie die MAIL FROM-, RCPT TO- und DATA Befehle ein, bevor Sie auf eine Antwort warten.
Nachdem der DATA-Befehl gesendet wurde, können wir mit dem Senden der Nachrichteninhalte beginnen. Dies beginnt mit den verschiedenen Headern. Eine Nachricht sollte mindestens einen To-, From-, Betreff- und Datumsheader 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: Testnachricht, die aus einer manuellen Telnet-Sitzung gesendet wurde Date: Wed, 11 May 2011 16:19:57 -0400
Nachdem die Header festgelegt sind, fügen wir eine leere Zeile mit einem Wagenrücklauf/Zeilenumbruch ein (einfach zwei Mal die Eingabetaste drücken) und beginnen dann mit dem eigentlichen Nachrichtentext.
Hallo Welt, dies ist eine Testnachricht, die aus einer manuellen Telnet-Sitzung gesendet wurde. Mit freundlichen Grüßen, SMTP-Administrator
Nachdem die Nachricht abgeschlossen ist, müssen wir dem SMTP-Server mitteilen, dass wir mit der Nachricht fertig sind und dass der SMTP-Mailserver sie akzeptieren soll. Dies wird mit einem Punkt auf einer eigenen Zeile gemacht. Wenn während des Schreibens einer Nachricht ein Punkt auf einer eigenen Zeile benötigt wird, müssen Sie 2 Punkte eingeben, wobei der erste den zweiten ausweicht.
. 250 2.6.0 Nachricht empfangen
Wenn Sie anstelle der „empfangen“ Benachrichtigung eine Fehlermeldung erhalten, protokollieren Sie die relevanten Details und kontaktieren Sie Ihren E-Mail-Anbieter für weitere Unterstützung.
Zuletzt wird der QUIT-Befehl gesendet, um die Verbindung zu schließen:
QUIT 221 2.0.0 mail.port25.com sagt auf Wiedersehen
Damit hat der Mailserver die Nachricht zur Zustellung akzeptiert, Ihr Telnet-E-Mail-Test ist abgeschlossen, und sie sollte im Posteingang der RCPT TO-Adresse liegen!!!
Hier sind alle Befehle ohne Unterbrechung:
telnet mail.port25.com 25 Versuche 69.63.149.30... Verbunden mit mail.port25.com (69.63.149.30). Escape-Zeichen ist '^]'. 220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP-Dienst bereit EHLO server.example.com 250-mail.port25.com sagt hallo 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 Nachricht senden From: "John Smith" <jsmith@port25.com> To: "Jane Doe" <jdoe@port25.com> Subject: Testnachricht, die aus einer manuellen Telnet-Sitzung gesendet wurde Date: Wed, 11 May 2011 16:19:57 -0400 Hallo Welt, dies ist eine Testnachricht, die aus einer manuellen Telnet-Sitzung gesendet wurde. Mit freundlichen Grüßen, SMTP-Administrator . 250 2.6.0 Nachricht empfangen QUIT 221 2.0.0 mail.port25.com sagt auf Wiedersehen
Das Senden einer E-Mail mit Telnet ermöglicht es Ihnen, Verbindungsmöglichkeiten schnell und kostengünstiger als mit robuster Diagnosetechnik oder Software zu testen.