In Kürze werde ich eine Anleitung über die Einrichtung eines Backup-MX schreiben. Vorbereitend darauf, möchte ich hier kurz zeigen, wie mit telnet eine Mail an einen Mailserver verfasst und abgeschickt werden kann.

Wir können damit testen ob eine Mail ankommt, wir können testen ob Backscatter-Angriffe funktionieren, wir können mit telnet und leicht abgewandelten Befehlen auch testen, ob unser SMTP-Server ein offenes Relay ist und vieles mehr. Auf letzteres gehe ich hier nicht ein – das mache ich vielleicht später gesondert.

Schritt 1: Verbindung zum SMTP-Server herstellen

Wir verbinden uns via Telnet mithilfe der IP und dem SMTP-Port (oder dem String smtp) zum Mailserver.

telnet meinmailserver.de smtp

Anstelle von “smtp” können wir auch einfach eine “25” schreiben. Das ist der Standard-SMTP-Port. Und anstelle einer Domain ist es auch möglich, schlichtweg eine IP einzugeben. Dann ersparen wir die DNS-Abfrage.
Der SMTP-Server quittiert uns nun, dass wir verbunden sind:

Trying 123.123.123.123…
Connected to meinmailserver.de.
220 meinmailserver.de ESMTP Postfix (Debian/GNU)

Schritt 2: Selbst identifizieren

Wir sagen dem Mailserver, wer wir sind. Das passiert mit dem “HELO” Befehl. Normalerweise sollte auf HELO entweder unser Rechnername, unsere Domain oder ähnliches folgen. Es reicht aber auch, wenn wir einfach unseren Namen schreiben.

helo maltris

Der Server quittiert uns nun mit einem 250, dass unser “HELO” angekommen ist. Manche Mailserver schreiben auch noch nette Nachrichten zurück wie “Hello, how can i help you?”.

250 meinmailserver.de

Schritt 3: E-Mail kommt von … ?

Mit “MAIL FROM:” teilen wir dem Mailserver mit, von welcher Adresse unsere Mail kommt. Bei mir ist das meine Standard-Mailadresse “m@maltris.org”.

mail from: m@maltris.org

Auch das quittiert uns der Mailserver wieder, diesmal mit einer Nachricht wie der folgenden.

250 2.1.0 Ok

Schritt 4: E-Mail soll an … ?

Mit “RCPT TO:” sagen wir dem Mailserver, an welche Adresse die Mail gehen soll. In meinem Fall ist das “info@anderedomain.de”.

rcpt to: info@anderedomain.de

Auch das wird uns der Mailserver bei Erfolg wieder quittieren. Andernfalls wird er uns zum Beispiel mitteilen, dass die Mailadresse bei ihm nicht existiert oder aus anderen Gründen der Empfang blockiert wurde.

250 2.1.5 Ok

Schritt 5: Datenkanal öffnen

Mit “DATA” öffnen wir den Datenkanal zum Mailserver. Nun können wir den Inhalt der Mail komponieren. Also Betreff, Text, Sender, Empfänger und alles was man noch so kennt. Auch CC und BCC sind hier möglich.

data

Der Mailserver quittert uns das öffnen des Kanals und teilt uns mit, wie unser Inhalt abzuschließen sei.

354 End data with <CR><LF>.<CR><LF>

Schritt 6: Mailinhalt eingeben und abschicken

Nun geben wir allerlei Mailinhalt ein. Seit “DATA” können wir auch einwandfrei die Entertaste verwenden. Ich möchte hier nur eine Testmail verschicken, also beschränke ich den Inhalt auf “From”, “To”, “Subject” und den Inhalt (Content).

From: m@maltris.org
To: info@anderedomain.de
Subject: Das ist ein Betreff
Und hier wird der komplette Inhalt reingeschrieben.
.

Ganz wichtig ist hierbei der Punkt in der letzten Zeile. Wenn die Zeile nur einen Punkt enthält, heißt das, dass die Daten fertig sind und der Datenkanal wieder geschlossen werden kann. Betätigen wir nach dem Punkt in der letzten Zeile die Entertaste, wird keine neue Zeile begonnen, sondern die Daten abgeschlossen. Der Mailserver quittiert uns nun, dass die Mail in seine Warteschlage aufgenommen wurde.

250 2.0.0 Ok: queued as 23AD88C0E2

Schritt 7: telnet-Verbindung beenden

Nachdem der Server uns mitteilte, dass die Mail erfolgreich in die Warteschlange aufgenommen wurde, schließen wir die telnet-Verbindung wieder mit dem Befehl “QUIT”.

quit

Der Server sagt uns jetzt noch Tschüss.

221 2.0.0 Bye

Und trennt die Verbindung.

Connection closed by foreign host.

PS: Groß- und Kleinschreibung ist bei den Befehlen nicht relevant. Deshalb habe ich auch bei den Befehlen klein und in den Erklärungen groß geschrieben.

 

3 thoughts on “E-Mail via telnet an einen SMTP-Server senden

Leave a Reply

Your email address will not be published. Required fields are marked *