SMTP:Das Simple Mail
Transfer Protocol ist das Protokoll für das Versenden von E-Mail
(electronic mail) und ebenfalls in der Aplication Layer über Port 25
zu finden. Zum E-Mail versenden werden zusätzlich zwei Komponenten
benötigt. Zum einen der Message Transfer Agent und zum anderen der
User Agent. MTA sorgt für die Übermittlung im Internet und benutzt
dazu SMTP. UA wird vom User zum Erstellen und Verwalten von E-Mails
auf dem Rechner benutzt und kontaktiert zum Senden und Empfangen der
E-Mails einen MTA (lokaler MTA). Ankommende E-Mails werden in
entsprechende Mailboxes abgelegt.
Nach einem Verbindungsaufbau wartet der
Sender-MTA auf eine Nachricht "220 READY FOR MAIL". Danach wird der Befehl HELO
zurückgesendet und es wird eine Identifikation des Empfänger-Servers erwartet.
Danach beginnt die eigentliche Datenübertragung.
Einige Befehle (alle auf vier Buchstaben
beschränkt):
- HELP - Liste aller verfügbaren Befehle
- HELO - Senderidentifikation
- MAIL - Beginn der Transaktion
- RCPT - Identifikation des Empfängers
- VRFY - Bestätigung der
Benutzeridentifikation
- DATA - Beginn des Datentransfers
- NOOP - No Operation (OK erwartet)
- QUIT - Ende der Verbindung
Nach Aufbau einer Verbindung wird das MAIL
Kommando (MAIL <SP> FROM:<reverse-path> <CRLF>) mit der Absenderidentifikation
geschickt. Die Absenderadresse (reverse-path) dient zum Versenden von
Fehlermeldungen. Werden E-Mails vom angegebenen Server akzeptiert, folgt vom
Empfänger das OK (Report: 250 OK). Danach kommt wiederum vom Sender das
RCPT-Kommando (RCPT <SP> TO:<forward-path> <CRLF>) mit dem entsprechenden
Empfängernamen (forward-path). Ist der Name auf dem Zielsystem registriert, wird
vom Empfänger erneut ein OK gesendet. Ansonsten wird der Empfänger
zurückgewiesen. Es können auch mehrere Empfänger angegeben werden (jeweils ein
RCPT Befehl).
Ist ein Empfänger unbekannt wird das "550
Failure Reply" zurückgesendet. Wird mindestens ein Empfänger akzeptiert beginnt
der Sender mit dem Befehl DATA die eigentliche Datenübertragung. Nach Empfang
der Daten kommt vom Zielserver ein OK zur Bestätigung. Die Daten, also der
eigentliche Messagebody, enthalten einen Header, der die bekannten Felder Date,
Subject, To, CC und From enthält.
Ein SMTP-Sever kann auch Informationen
speichern, die zur Weiterleitung einer falsch adressierten E-Mail dienen. Als
Rückmeldung kommt hier "251 User not local; will forward to <forward-path>" bei
einer zuverlässigen Weiterleitung, bzw. "551 User not local; please try
<forward-path>" bei einem Versuch. Bei letzterem muss allerdings der Sender die
Weiterleitung übernehmen.
Zusätzliche Befehle sind:
- VRFY - gibt bei einer Anfrage nach einem
User dessen vollständigen Namen bzw. die bekannte Adresse
- EXPN - gibt die User einer Mailingliste an
Unter "mailing" versteht man die Zuordnung
einer E-Mail in eine Mailbox. "Sending" ist die Lieferung zum entsprechenden
Rechner.
Die E-Mail Nachricht an sich besteht ebenfalls
aus einem Header und dem eigentlichen Inhalt, der durch eine Leerzeile getrennt
ist.
Im Header sind u.a. folgende Felder enthalten:
- Date: Zeitpunkt des Absendens
- From: Absender (dieses Feld oder das
Sender-Feld müssen vorhanden sein)
- Subjekt: Betreff, Überschrift
- Sender: ist optional wenn From ausgefüllt
ist
- Reply-to: Angabe einer gesonderten
Antwortadresse
- To: Hauptempfänger
- cc: weitere Empfänger der Mail (carbon copy
- Kopie)
- Comment: optionaler Kommentar zur Nachricht
- In-Reply-to: vorangegangene E-Mails, auf die
geantwortet wurde
- Message-ID: eindeutige ID einer Mail
- Return-Path: Informationen über die genutzte
Route
- bcc: weitere Empfänger, bleiben für To: und
cc: unsichtbar
Die Adressierung erfolgt über den DNS, indem
vor den Domainnamen der Username (Empfänger) gefolgt von einem @
angegeben wird. Die E-Mail wird dann an den zugehörigen Mailserver
geleitet. Da nicht jeder einen eigenen MTA besitzt und nicht jeder
Server für E-Mails verantwortlich ist, müssen die Mailserver vom
Empfänger kontaktiert werden. Das Verwalten von E-Mails läuft dann
über
POP3
(RFC1225) auf Port 110.