Ablauf einer SMTP-Sitzung

Genauer Ablauf einer SMTP-Sitzung



Ablauf einer SMTP-Sitzung

Eine SMTP-Sitzung beginnt, wenn der Client eine TCP-Verbindung auf Port 25 des Servers öffnet. Als positive Antwort sendet der Server >>220<< (Dienst verfügbar). Im Fehlerfall wird >>421<< (Dienst nicht verfügbar) zurückgegeben und die übertragung geschlossen.


SMTP-Befehle
Der Client sendet >>einen HELO-Befehl<< an den Server und übergibt als Parameter seinen Hostnamen (weist sich damit dem Server gegenüber aus).

Der Server antwortet mit >>250<< (OK) und sendet eine Zeichenkette, die ihn identifiziert. Mögliche Fehler-Codes sind >>500<<,
>>501<<,
>>504<< und
>>221<<.


Unterstützt der Server die SMTP-Erweiterung >>ESMTP<< (RFC 1425), versteht er das HELO-Kommando des Clients, das als Parameter die Server-Domain plus Top-Level-Domain enthält. Bei einer positiven Bestätigung des HELO-Kommandos befinden sich Client und Server im Ausgangszustand, d.h. es läuft gerade keine andere Mail-Transaktion ab und alle Datenstrukturen sind mit Null initialisiert.


Mail-Befehl
Mit dem >>MAIL<<-Befehl leitet der Client die Transaktion ein, in deren Verlauf eine Email an einen oder mehrere Empfänger versendet wird. Als Parameter sendet er den Reverse-Pfad, der außer der Mailbox des Empfängers weitere SMTP-Server enthalten
kann. Sobald der Server diesen Befehl erhält, löscht er die Puffer für Forward- und Reverse-Pfad sowie für die Mail-Daten, trägt den Reverse-Pfad in den Reverse-Pfad-Buffer ein und sendet
250 (OK) an den Client.

Als Fehler-Codes können
>>421<<,
>>451<<,
>>452<<,
>>500<<,
>>501<< und
>>552<< gesendet werden.


RCPT-Befehl
Mit dem >>RCPT<<-Befehl (Recipient) identifziert der Client den Empfänger der E-Mail. Als Parameter übergibt er den Forward-Pfad, der ähnlich wie der Reverse-Pfad das Postfach des Empfängers sowie optional eine Liste mit: >>Relay-Hosts<< enthalten kann. Für mehrere Empfänger werden mehrere RCPT-Befehle abgesetzt.

Positive Server-Antworten sind
>>250<< und
>>251<< (Forward to),

negative
>>421<<,
>>450<<,
>>451<<,
>>452<<,
>>500<<,
>>501<<,
>>503<<,
>>550<<,
>>551<<,
>>551<< und
>>553<<.


DATA-Befehl
Der >>DATA<<-Befehl des Clients leitet die Übertragung
des Mail-Body ein. Der Server antwortet mit >>354<< (start
input) und zeigt damit seine Empfangsbereitschaft an. Alle nach diesem Befehl vom Client gesendeten Daten werden als Text interpretiert, der mit einem Punkt . (End of Mail EOM) abgeschlossen wird.

Trifft der Server auf das EOM, verarbeitet er die Mail, indem er die Buffer für Forward- und Reverse-Pfad sowie für die Daten auswertet (im Posteingangsordner ablegt) und sie dann löscht. Tritt kein Fehler auf, sendet er 250.

Mögliche Fehler-Codes sind
>>552<<,
>>554<<,
>>451<< und
>>452<<.

Um die Codes zu entschlüsseln, schauen Sie bitten im Artikel:
SMTP-Protokoll nach