Zum Inhalt springen

SMTP/Analyse: Unterschied zwischen den Versionen

Aus Foxwiki
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:3">
<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

  1. https://www.foxtom.de/2018/12/test-smtp-with-telnet-or-openssl/