Email per SMTP über Telnet verschicken

Datum: 17.01.2014
Betriebssystem: Linux

Ein bewährtes Mittel zur Fehlersuche bei Problemen mit der Zustellung von Emails. Falls man den MX-Server der Emailadresse, an die das Testemail gehen soll, nicht kennt, kann man das mittels dig leicht herausfinden:

$ dig somewhere.at -t mx

Zu diesem Mailserver verbindet man sich auf Port 25:

$ telnet mx-server.somewhere.at 25

Dann kann es eigentlich schon losgehen:

HELO mailman.flashcom.at
MAIL FROM: fuppsi@flashcom.at
RCPT TO: someone@somewhere.at
DATA
From: <fuppsi@flashcom.at>
To: <someone@somewhere.at>
Subject: treffendes betreff

fuppsi-schwuppsi
.
quit

Nach der Begrüßung durch den Server stellt man sich gehörig vor (HELO, für authentifizierten Versand EHLO). Was man dabei angibt ist ziemlich kreuzegal.

Danach müssen Absender (MAIL FROM, auch Envelope-Sender genannt) und Empfänger (RCPT TO, auch Envelope-Recipient genannt) angegeben werden. Die Übertragung der eigentlichen Nachricht wird durch DATA eingeleitet und einen einzelnen Punkt in einer sonst leeren Zeile beendet.

Der Header der Email (in unserem Beispiel From, To und Subject) wird von der eigentlichen Nachricht durch eine Leerzeile getrennt.

Mit quit wird die SMTP-Sitzung schließlich beendet. Möglich wäre auch der Versand einer weiteren Email.

Im Beispiel oben wurden die Antworten des Servers weggelassen, die durchaus auch eine Fehlermeldung beinhalten können. Gründe dafür gibt es hinreichend.

Bei einer Telnet-Sitzung egal, beim Nachbasteln in einer Programmiersprache allerdings zu beachten ist, dass alle Zeilen der Email-Nachricht mit <CR><LF> abgeschlossen werden müssen.

Fragen, Anmerkungen, Korrekturen zu diesem Artikel »