
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 in Ihrer aktuellen Konfiguration zu identifizieren.
Bevor Sie eine E-Mail mit Telnet senden, vergewissern Sie sich, dass Telnet sowohl installiert als auch auf Ihrem Computer aktiviert ist. Die meisten Computer sind mit einem vorinstallierten Telnet-Client ausgestattet. Bei den Windows-Versionen, bei denen dies nicht der Fall ist, kann einer installiert werden, indem Sie den Abschnitt „Programme und Funktionen“ der Systemsteuerung öffnen und „Windows-Funktionen aktivieren oder deaktivieren“ auswählen. Wählen Sie in diesem Fenster „Telnet-Client“ aus und klicken Sie dann auf OK.
Sobald ein Telnet-Client auf dem Server installiert ist, öffnen Sie das Terminalfenster, in dem Sie Ihre Befehle eingeben werden. Unter Windows verwenden Sie die Windows + R-Taste, geben „cmd“ ein und drücken die Eingabetaste. Für Mac-Benutzer finden Sie das Terminalsymbol, indem Sie den Finder öffnen und auf der Seite „Programme“ nach „Dienstprogramme“ suchen oder „Terminal“ in der 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 einer bestimmten Domain. Dies kann mit folgendem Befehl gefunden werden (für diese Beispiele wird port25.com verwendet, aber jede andere Domain kann ersetzt werden):
Windows:
nslookup -type=mx port25.com
Keine zuständige Antwort:
port25.com MX-Präferenz = 100, Mail-Exchanger = mail.port25.com
Linux:
nslookup -type=mx port25.com
Keine zuständige Antwort:
port25.com Mail-Exchanger = 100 Mail.port25.com.
SMTP verwendet einen von drei Ports — 25, 465 oder 587, den Microsoft Outlook häufig verwendet. Für die erweiterte Mailserver-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 vom Mail-Exchange-Server in der Antwort auf die nslookup spezifizierten Port. Sie können den Port, auf den Ihr SMTP angewiesen ist, auch durch Befragung Ihres Administrators oder durch Anmeldung am Mail-Exchange-Server und Überprüfung der Protokolle verifizieren.
Als nächstes benötigen wir den DNS-PTR für die IP, die wir verwenden werden. Zuerst müssen wir herausfinden, was die IP-Adresse ist, die das Internet uns sieht. Dazu können Sie eine Website wie diese verwenden:
Mit der IP-Adresse laufen Sie den folgenden Befehl aus, wobei A.B.C.D die IP-Adresse ist.
Windows:
nslookup -type=ptr A.B.C.D
Keine zuständige Antwort:
D.C.B.A.in-addr.arpa Name = server.example.com
Linux:
nslookup -type=ptr A.B.C.D
Keine zuständige 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 jetzt den MX-Eintrag für port25.com und den PTR für die IP haben, die wir verwenden werden, 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 jetzt 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 „Verbindung kann nicht hergestellt werden“ erhalten, ist entweder die Portnummer korrekt oder der Mailserver hat Schwierigkeiten.
Der erste Befehl, den wir dem Mailserver für unseren SMTP-E-Mail-Tester erteilen müssen, ist der EHLO- oder HELO-Befehl. Dies ist ein einfacher Gruß, der die Kommunikation zwischen dem Telnet-Client und dem SMTP-Server startet. Außerdem wird der DNS-PTR für die IP-Adresse übergeben, von der aus wir uns vorher verbunden haben.
EHLO server.example.com
Etwas Ähnliches wie das Folgende 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 dieselben Befehlssätze. Beispielsweise zeigt Yahoo nur die folgenden:
250-8BITMIME 250-GRÖSSE 41943040 250 PIPELINING
Und AOL zeigt nur einen mit:
250 DSN
Der nächste Befehl, den wir erteilen müssen, ist der MAIL FROM-Befehl. Dies bestimmt die Adresse, an die Rückläufe gesendet werden. Dies ist nicht dasselbe wie der von-Header, der die E-Mail-Adresse ist, die im E-Mail-Client angezeigt wird.
MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok
Stellen Sie sicher, dass Sie den zum Domänennamen des Mailservers gehörenden Domänennamen verwenden. Beispielsweise, wenn die Domain Ihrer E-Mail anycompany.com ist, sollten Sie you@anycompany.com verwenden anstelle einer externen E-Mail wie you@free-mail-provider.com. Abweichungen in den Domänennamen können zu einer Fehlermeldung führen.
Jetzt, da der MAIL FROM-Befehl gesendet wurde, können wir den RCPT TO-Befehl senden. Dieser Befehl teilt dem SMTP-Mailserver mit, an wen die Nachricht gesendet werden soll. Dies kann derselbe oder ein anderer als der an-Header sein, bei dem es sich um die E-Mail-Adresse handelt, 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 des Empfängers, bevor Sie den RCPT TO-Befehl senden – eine Fehlermeldung hier kann auf einen falsch geschriebenen oder blockierten E-Mail-Empfänger hinweisen.
Der letzte Befehl, der ausgeführt werden muss, bevor mit dem Text der Nachricht begonnen wird, ist der DATA-Befehl. Dieser Befehl lässt den SMTP-Mailserver wissen, dass alles, was gesendet wird, der Text der Nachricht 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 es tut, der SMTP-Mailserver möglicherweise wartet, bis der DATA-Befehl erteilt wird, bevor auf andere Befehle nach dem EHLO/HELO-Befehl geantwortet wird. In diesem Fall geben Sie die MAIL FROM-, RCPT TO- und DATA-Befehle ein, bevor Sie auf eine Antwort warten.
Jetzt, da der DATA-Befehl gesendet wurde, können wir mit dem Senden des Nachrichtentextes beginnen. Dies beginnt mit den verschiedenen Headern. Eine Nachricht sollte mindestens einen an, von, Betreff und Datum-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
Wenn die Header gesetzt sind, fügen wir nun eine leere Zeile mit einem Wagenrücklauf/Zeilenvorschub hinzu (einfach zweimal die Eingabetaste drücken) und beginnen dann mit dem eigentlichen Nachrichtentext.
Hello World, Dies ist eine Testnachricht, die aus einer manuellen Telnet-Sitzung gesendet wurde. Hochachtungsvoll, SMTP-Administrator
Wenn die Nachricht abgeschlossen ist, müssen wir dem SMTP-Server mitteilen, dass die Nachricht fertig ist und wir möchten, dass der SMTP-Mailserver sie akzeptiert. Dies geschieht mit einem Punkt auf einer eigenen Zeile. Wenn während des Schreibens einer Nachricht ein Punkt auf einer eigenen Zeile benötigt wird, müssen Sie zwei Punkte setzen, wobei der erste den zweiten maskiert.
. 250 2.6.0 Nachricht erhalten
Wenn Sie statt der „erhalten“-Benachrichtigung eine Fehlermeldung erhalten, protokollieren Sie die relevanten Details und kontaktieren Sie Ihren E-Mail-Anbieter für weitere Unterstützung. Verbindungsprobleme können auch mit Sicherheitsprotokollen zusammenhängen – stellen Sie sicher, dass Sie TLS 1.2 oder höher verwenden für sichere Verbindungen.
Zu guter Letzt wird der QUIT-Befehl gesendet, um die Verbindung zu schließen:
QUIT 221 2.0.0 mail.port25.com sagt auf Wiedersehen
Mit diesem Befehl hat der Mailserver die Nachricht nun für die Zustellung akzeptiert, Ihr Telnet-E-Mail-Sendetest ist abgeschlossen und sie sollte sich im Eingang der RCPT TO-Adresse befinden!!!
Hier sind alle Befehle ohne Unterbrechung:
telnet mail.port25.com 25 Versuchen 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: test message sent from manual telnet session Date: Wed, 11 May 2011 16:19:57 -0400 Hello World, Dies ist eine Testnachricht, die aus einer manuellen Telnet-Sitzung gesendet wurde. Hochachtungsvoll, SMTP-Administrator . 250 2.6.0 Nachricht erhalten QUIT 221 2.0.0 mail.port25.com sagt auf Wiedersehen
Das Senden einer E-Mail mit Telnet ermöglicht es Ihnen, die Verbindungsmöglichkeiten schnell und kostengünstiger als robuste Diagnosegeräte oder Software zu testen. Für fortgeschrittenere SMTP-Testtools sollten Sie Swaks mit SparkPost verwenden für umfassende E-Mail-Tests in Betracht ziehen.