Benutzung von E-Mail über Telnet

SMTP over Telnet

Einführend zuerst ein Mitschnitt einer Telnet-Session. Telnet kann man über die Konsole (Windows-Deutsch: Eingabeaufforderung) starten. Im folgenden sind die roten, grünen und blauen Eingaben vom Benutzer, die schwarzen Zeilen sind die Meldungen des Mailservers.

telnet smtp.web.de 25
220 smtp.web.de ESMTP Web.de V4.91#2 Sun, 24 Nov 2002 16:51:20 +0100

helo deinrechnername
250 smtp.web.de Hello deinrechnername [219.99.999.999]

mail from:< account@web.de>
250 <account@web.de> is syntactically correct

rcpt to:<empfaenger@provider.tld>
250 <empfaenger@provider.tld> verified

data
354 Enter message, ending with "." on a line by itself
To: Anton aus Tirol <anton@tirol.at>
From: Hugo Schlau <hugo@schlaumeier.de>
Subject: Jodeln ;-)

Servus Anton!

Hoffe du hast das Jodeln noch nicht verlernt!

Viele Grüße,
Bastard from Hell
.
250 OK id=18Z6Uc-0001wm-00

Quit
221 smtp.web.de closing connection

Verbindung zu Host verloren.

Hier wird eine E-mail an empfaenger@web.de geschickt. Als Absender taucht beim Empfänger Hugo Schlau auf, und die E-Mail scheint vermeintlich an jemand anderen, an Anton aus Tirol addressiert zu sein. Aber warum bekommt Empfänger eine E-Mail, die für Anton aus Tirol bestimmt ist? Gehen wir obigen Mitschnitt mal Zeile für Zeile durch:

telnet smtp.web.de 25
220 smtp.web.de ESMTP Web.de V4.91#2 Sun, 24 Nov 2002 16:51:20 +0100

Man gibt also in seiner Konsole ‘telnet smtp.web.de 25’ ein, und erhält nach geglückter Verbindung die Rückantwort vom Server "220 smtp.web.de ESMTP Web.de ...".
Telnet ist dabei der Programmname des gleichnamigen Dienstes. Es folgt mit smtp.web.de die Adresse des Mail-Relay, auf den man connecten will. In diesem Fall auf den SMTP-Server von web.de. Die Zahl 25 in der Konsoleneingabe gibt den well-known tcp/udp Port an. Der Port ist eine Art Adressnummer zwischen Transport-und Anwendungsschicht im ISO/OSI Schichtenmodell. Die sog. "well known Ports" werden von der Internetorganisation IANA vergeben, und dienen höheren Protokollen von tcp/udp aus adressiert zu werden.
In der Serverrückantwort sieht man, dass web.de das ESMTP-Protokoll (Enchanced Simple Mail Transfer Protocoll) unterstützt. ESMTP ist eine Erweiterung zu SMTP, die im wesentlichen mit den Features des Status über die Mail Auslieferung (RFC 1891), als auch über das Authentifizierungs-Kommando AUTH bereichert wurde.

helo deinrechnername
250 smtp.web.de Hello deinrechnername [219.99.999.999]

Das helo deinrechnername muss man blind eingeben, also nicht wundern, wenn es nicht auf der Konsole während der Eingabe erscheint. Mit helo stellt man sich sozusagen dem Mail-Server vor, der Text hinter helo (in unserem Fall deinrechnername) spielt dabei keine Rolle, er kann im Prinzip frei gewählt werden..
Der Server grüßt zurück und zeigt u.a. in den eckigen Klammer die IP des Benutzers.

mail from:< account@web.de>
250 <account@web.de> is syntactically correct

Hier gibt man das Envelope-from an, also die Absenderadresse, die in den Envelope eingetragen wird. Bei web.de wird die Eingabe nicht nur syntaktisch überprüft, sondern auch ob man berechtigt ist. Daher muss sich bei web.de mittels POP zuerst authentifizieren bevor man SMTP benutzen kann. Diese Authentifizierungsprüfung fehlt bei sog. Open Relay Servern, weshalb diese Server zu Spamschleudern verkommen.

rcpt to:< empfaenger@provider.tld>
250 <empfaenger@provider.tld> verified

Anschließend wird die E-Mail-Adresse des Empfängers eingetragen, die natürlich stimmen muss, damit sie auch denjenigen erricht dem man schreiben will. Hier wird als Envelope-to empfaenger@provider.tld eingetragen.

Damit hätten wir den Envelope (zur Erinnerung: den "Briefumschlag" einer Mail) erstellt, und können nun zum Content kommen.

data
354 Enter message, ending with "." on a line by itself

Mit dem Schlüsselwort data legt man im folgenden den Content (bestehend aus Header und Body) fest.

To: Anton aus Tirol <anton@tirol.at>
From: Hugo Schlau <hugo@schlaumeier.de>
Subject: Jodeln ;-)
 

Als erstes schreiben wir den Header. In blauer Farbe sind dabei die Schlüsselwörter für den Header. Man beachte, dass man hier beliebiges reinschreiben kann. So erscheint für dem Empfänger die Mail an Anton aus Tirol mit der Mailadresse anton@tirol.at adressiert zu sein. Da die Angaben im Content im Prinzip nur für MUA (Mail User Agent- also dem Client wie z.B. Netscape, Outlook,...) gedacht sind, und nichts mit der Übertragung der MTA (Mail-Server) zu tun haben, ist es übertragungstechnisch vollkommen irrelevant, ob die eingebenen Namen und Adressen stimmen oder nicht.
Somit wird sich empfaenger@provider.tld (den wir im Envelope-to eingetragen haben) wundern, warum er eine Mail bekommt, die scheinbar für Anton aus Tirol bestimmt ist.
Einschub: um dieses Phönomen zu erreichen, gibt es allerdings viel trivialere Methoden, nämlich mittels BCC (Blind Carbon Copy). Dabei wird anton@tirol.at als Empfänger eingetragen und im BCC Feld des MUA der wahre Empfänger der Mail (in unserem Beispiel empfaenger@provider.tld).
Genauso tückisch ist, dass er als Absender Hugo Schlau angezeigt bekommt, der aber keineswegs der wahre Absender sein muß.
Man kann nach Belieben weitere Header-Zeilen schreiben, z.B. den Betreff der mit dem Schlüsselwort Subject eingeleitet. wird. Die Reihenfolge der eingegebenen Zeilen ist ebenso beliebig. Zwischen Header und Body steht dann eine Leerzeile.

Servus Anton!

Hoffe du hast das Jodeln noch nicht verlernt!

Viele Grüße,
Bastard from Hell

.
250 OK id=18Z6Uc-0001wm-00

Im folgenden wird dann der eigentliche Text der E-Mail geschrieben. Allerdings muß man wie schon die Befehle zuvor alles in der Konsole blind eingeben. Hat man seine Nachricht geschrieben, so schreibt man in einer extra Zeile nur einen .
Damit wird das Ende der Eingaben erkannt, und wenn alles geklappt hat, gibt der Server 250 OK zurück.


Hinweis: SMTP-Kommandos sind nicht Case-sensitiv.