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
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