SMTP

Die Abkürzung SMTP steht für Simple Mail Transfer Protocol, das Internet E-Mail Protokoll. Es ist im RFC 821 definiert. SMTP ist ein Protokoll aus der TCP/IP Verarbeitungsschicht und benutzt den 'well-kown-port' 25 des TCP Protokolls.

Das Internet E-Mail-System besteht aus zwei Komponenten, dem Message Transfer Agent (MTA) und dem User Agent (UA). Der MTA hat die Aufgabe, E-Mails über die verschiedenen Teilnetzwerke des Internet an ihren Bestimmungsort zu vermitteln. Als User-Agent wird jene Software bezeichnet, die vom Benutzer verwendet wird, um elektronische Nachrichten zu erstellen, zu versenden, und zu empfangen. Der einem UA nächstgelegene MTA wird als sein lokaler MTA bezeichnet. Dieser lokale MTA speichert in einer Datei, der Mailbox, alle Nachrichten die für diesen UA ankommen. Über den UA der auf diese Mailbox zugreift, erhält der Benutzer schliesslich seine Post. Die Vermittlung der Nachrichten zwischen den MTAs geschieht mittels SMTP. Nach dem Verbindungsaufbau mit dem TCP-Port 25 auf der Zielmaschine wartet der Client-MTA, bis er vom Server-MTA die Nachricht '220 READY FOR MAIL' erhält. Der Client antwortet darauf mit 'HELO', wartet die darauffolgende Identifikation des Servers ab, und beginnt unmittelbar mit der Übertragung der zu versendenden Nachrichten (Scheller et al., 1994). Kurioserweise sind alle SMTP-Befehle aus heute nicht mehr nachvollziehbarer Gründe genau vier Zeichen lang. An einem Rechner, der unter dem Betriebsystem UNIX läuft und über einen MTA (z.B. sendmail oder smail) verfügt, kann man die Befehle übrigens mit Hilfe des weiter unten beschriebenen Protokolls/Programms 'TELNET' durch Eingabe von 'telnet hostname 25' ausprobieren. Nachstehende Tabelle gibt einen Überblick über die wichtigsten Befehle im SMTP-Protokoll:

HELP Gib ein Liste der verfügbaren Befehle zurück.
HELO Senderidentifikation
MAIL Beginn der Mailtransaktion
RCPT Identifikation des Empfängers
VRFY Bestätigung einer Benutzeridentifikation
DATA Beginn des Datentransfers; endet mit <cr><lf>.<cr><lf>
NOOP no operation, erwarte OK
QUIT Verbindungsabbau

Arbeitet der Benutzer an einem Rechner der nicht über einen eigenen MTA verfügt, oder wird die Post aus Sicherheitsgründen nicht direkt von jedem Host aus dem Internet geholt, sondern von einem speziellen E-Mail Server, dann müssen die Benutzer eine Möglichkeit haben, mit diesem Mail-Server in Kontakt zu treten. Ein einfaches Protokoll, dass das leistet ist das POP3 (Post Office Protocol) Protokoll. Es bietet dem Benutzer bzw. dem Anwendungsprogramm Befehle zu An- und Abmelden, Herunterladen und Löschen von Nachrichten. das Protokoll selbst weiss nichts von SMTP und besteht aus ASCII Klartext. Es benutzt den (wellknown-) TCP Port 110 und ist in RFC1225 definiert. Ein verbessertes Zugriffsprotokoll auf Mail-Server ist IMAP (Interactive Mail Access Protocol) das in RFC 1064 definiert ist. Es erweitert die Funktion der Mailbox um einige datenbankähnliche Funktionalitäten und erlaubt es dem Benutzer die eingetroffene Post auf dem Server zu belassen, so dass es seine Post auch an anderen (mobilen!) Maschinen noch ansehen kann (Tanebaum, 1998). Zur Adressierung von elektronischen Nachrichten wird im Internet das Domain-Namesystem (DNS) benutzt. Die Adresse besteht aus einer Benutzeridentifikation und einem Domainnamen (Rechnername); beide Teile werden von dem Zeichen '@' =at getrennt: benutzer@domain. Alternative aber veraltete Schreibweisen sind '§' statt '@' oder domain!benutzer.

MIME

Das SMTP-Protokoll besitzt einen entscheidenden Nachteil: Es ist nur in der Lage, 7-Bit-ASCII-Zeichen zu übertragen. Um die Übertragung von binärer Dateien mit Graphiken, Sprache, Programmen oder mit Ausgabe-Dateien von Standardprogrammen aus der PC- oder MacIntosh-Welt zu ermöglichen und zu standardisieren, wurde SMTP um die MIME-Spezifikation (Multipurpose Internet Mail Extensions) erweitert. MIME integriert in das Versenden elektronischer Nachrichten das Abbilden von 8-Bit auf 7-Bit Code ohne das noch ein zusätzliches Programm dafür eingesetzt werden muss (z.B. uuencode). Voraussetzung für den Empfang und die korrekte Darstellung ist natürlich, dass die beiden beteiligten UAs den MIME Standard unterstützen (Kyas, 1994).