SMTP/Analyse: Unterschied zwischen den Versionen
K Textersetzung - „<div style="column-count:3">“ durch „<div style="column-count:2">“ |
|||
Zeile 123: | Zeile 123: | ||
== Anhang == | == Anhang == | ||
=== Siehe auch === | === Siehe auch === | ||
<div style="column-count: | <div style="column-count:2"> | ||
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree> | <categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree> | ||
</div> | </div> |
Aktuelle Version vom 28. Juni 2025, 11:11 Uhr
SMTP/Analyse - SMTP mit telnet und openssl testen
Beschreibung
Testen, ob ein bestimmter Rechner in der Lage ist, E-Mails über einen SMTP-Server zu versenden
- Die Verwendung von Telnet oder Openssl ist eine gute Möglichkeit, um Verbindungsprobleme zu testen und zu beheben
Installation
sudo apt-get install telnet openssl
Verbinden mit dem SMTP-Server
- Telnet
Um eine Verbindung zu mail.foxtom.de herzustellen, geben Sie den folgenden Befehl ein:
$ telnet smtp.domain.com 25
Wenn die Verbindung hergestellt ist, erhalten Sie eine Ausgabe ähnlich der folgenden zurück:
Versucht 159.122.219.43...Verbunden mit smtp.sendgrid.net.Escape-Zeichen ist '^]'.220 SG ESMTP-Dienst bereit unter ismtpd0001p1lon1.sendgrid.net
Es ist wichtig zu wissen, dass wir eine unverschlüsselte Verbindung aufgebaut haben
- Das bedeutet, dass alle Informationen im Klartext an den Server gesendet werden
- Da wir uns authentifizieren und Passwörter senden müssen, empfehle ich eine Verbindung über SSL oder TLS, wenn Ihr Server dies unterstützt
- Openssl
Um eine Verbindung über das TLS-Protokoll an Port 587 herzustellen, verwenden Sie:
$ openssl s_client -starttls smtp -connect mail.foxtom.de:587
Um SSL auf Port 465 zu verwenden:
$ openssl s_client -connect mail.foxtom.de:465
Sie erhalten eine Vielzahl von Ausgaben zur SSL-Sitzung und den verwendeten Zertifikaten, aber danach sehen Sie eine ähnliche Bestätigung wie beim Telnet-Befehl (einen 220- oder 250-Statuscode mit einer Meldung)
Beispiel
220 SG ESMTP-Dienst bereit unter mx10.foxtom.de
Mit dem Server sprechen
Nun müssen wir uns identifizieren und die SMTP-Konversation mit dem Befehl EHLO einleiten
- Dieser Befehl benötigt eine IP-Adresse oder einen Domänennamen als Argument:
EHLO foxtom.de
Auf den meisten SMTP-Servern erhalten Sie eine Liste von Befehlen zurück, wenn Sie den Befehl Extended Hello (EHLO) verwenden:
250-smtp.sendgrid.net250-8BITMIME250-PIPELINING250-SIZE 31457280250-AUTH EINFACHE ANMELDUNG250 AUTH=EINFACHE ANMELDUNG
Authentifizieren Sie sich
Zeit, sich anzumelden! In der vorherigen Ausgabe wurden der AUTH-Befehl und die verfügbaren Mechanismen aufgeführt
- In diesem Fall PLAIN und LOGIN
PLAIN verwenden
Der PLAIN-Mechanismus erwartet eine base64-kodierte Zeichenfolge, die sowohl den Benutzernamen als auch das Kennwort enthält, denen jeweils ein NULL-Byte vorangestellt ist
Führen Sie diesen Befehl aus, um diese Zeichenfolge unter Verwendung der base64-Binärdatei zu erzeugen
$ echo -ne "\0Benutzername\0Passwort" | base64 AHVzZXJuYW1lAHBhc3N3b3Jk
Beachten Sie, dass bei Sendgrid der Benutzername apikey und das Passwort der API-Schlüssel ist, den Sie generiert haben (wie in der Dokumentation beschrieben)
Nun können Sie diese base64-kodierte Zeichenfolge an den AUTH-Befehl in Ihrer Openssl- oder Telnet-Sitzung übergeben:
AUTH PLAIN AHVzZXJuYW1lAHBhc3N3b3Jk
Das Ergebnis sollte sein:
235 Authentifizierung erfolgreich
LOGIN verwenden
Der LOGIN-Mechanismus erwartet ebenfalls einen base64-kodierten Benutzernamen und ein Passwort, allerdings separat
Erzeugen Sie zunächst die base64-kodierten Zeichenketten
$ echo -ne "benutzername" | base64 dXNlcm5hbWU=
echo -ne "Passwort" | base64 cGFzc3dvcmQ=
und authentifizieren Sie sich beim SMTP-Server:
AUTH LOGIN
Sie werden zuerst nach dem Benutzernamen und dann nach dem Passwort gefragt
- Die gesamte Konversation wird so aussehen:
334 VXNlcm5hbWU6dXNlcm5hbWU=334 UGFzc3dvcmQ6cGFzc3dvcmQ=235 Authentifizierung erfolgreich
E-Mail senden
Jetzt geht es ans Eingemachte! Wir brauchen mindestens diese Angaben, um eine E-Mail versenden zu können:
- Der Absender (MAIL FROM)
- Der Empfänger (RCPT TO)
- und den Nachrichtentext (DATA)
Sie müssen immer mit dem Befehl MAIL FROM beginnen, da dies dem SMTP-Server mitteilt, dass eine neue Mail-Transaktion gestartet wird
Danach folgen die Adresse des Empfängers und schließlich der Betreff und der Text der Nachricht
- Sowohl die Betreffzeile als auch der Nachrichtentext werden über den DATA-Befehl übergeben
- Ich empfehle auch, den From: Header immer wieder in den DATA-Befehl aufzunehmen
Sobald wir bereit sind, unsere Nachricht zu senden, beenden wir sie mit einem einzelnen Punkt (.)
So sieht das aus, wenn Sie alles zusammensetzen:
MAIL FROM: from@domain.com 250 Absenderadresse akzeptiert rcpt an: john@doe.com 250 Empfängeradresse akzeptiert DATEN 354 Fortfahren Von: from@domain.com Betreff: Testnachricht! Dies ist eine Testmeldung! . 250 Ok: in der Warteschlange als bazLUK4DEBqH25dH6iZuNg
Sie sollten am Ende eine Bestätigung (250 Ok) erhalten, dass die Nachricht angenommen wurde
- Hinweis
-
- Wenn Sie die Verbindung mit openssl statt mit telnet hergestellt haben, müssen Sie darauf achten, dass Sie den Befehl rcpt to in Kleinbuchstaben eingeben
- Wenn Sie in der Client-Sitzung R drücken, wird openssl angewiesen, die TLS-Verbindung neu auszuhandeln
Geben Sie QUIT ein, um die Sitzung zu beenden
Anhang
Siehe auch
Links
Weblinks