SMTP-Protokoll
E-Mails werden mit dem SMTP-Protokoll (Simple Mail
Transfer Protocol, RFC 821, 822) versendet. Es verwendet TCP zur
Datenübertragung genau wie POPS (Post Office Protocol
Version 3), ein Protokoll zum Abholen von Mails. Versendet werden
grundsätzlich 7-Bit-ASCII-Zeichen, die rechtsbündig ausgerichtet sind.
übertragen werden Bytes, bei denen das höchstwertige Bit auf Null gesetzt ist.
Um eine E-Mail zu versenden, wird ein so genannter User Agent eingesetzt. Das
ist ein Mail-Client wie Outlook. Er verwaltet die Mails in einer Warteschlange
und sendet sie je nach Konfiguration des Mail-Clients sofort oder nach Ablauf
einer Zeitspanne an den MTA (MessageTransfer Agent),
der für die weitere Zustellung zuständig ist. Dieser sendet die Mail ins
Internet zu einem SMTP-Server. Von dort gelangt sie möglicherweise über weitere
SMTP-Server an den Ziel-SMTP-Server. Dort holt sie der MTA des Ziel-Hosts ab.
Die folgende Tabelle enthält eine übersicht über alle
SMTP-Befehle, wie sie in RFC 821 definiert sind:
Befehl
Erklärung
HELO <domain>
Client meldet sich beim Server an
MAIL FROM:<reverse-path>
überträgt Absender-Adresse
RCPT TO:<forward-path>
überträgt Empfänger-Adresse
DATA
Beginn der Textübertragung
RSET
Transaktion wird abgebrochen
SEND FROM:<reverse-path>
E-Mail an ein Terminal (veraltet)
SOML FROM:<reverse-path>
(Send or Mail) E-Mail an Terminal oder Postfach
SAML FROM:<reverse-path>
(Send and Mail) E-Mail an Terminal und Postfach
VRFY <string>
fragt den Server, ob der Empfänger bekannt ist
EXPN <string>
fragt den Server, ob der übergebene Parameter eine
Mailing-Liste ist
HELP [<strlng>]
fordert den Server auf, einen Hilfetext zu senden
NOOP
macht nichts
QUIT
Client beendet die Transaktion
TURN
Absender und Empfänger werden vertauscht
Zu jedem Befehl gibt es eine Reihe von Antwort-Codes. Die folgende Tabelle
zeigt alle Antwort-Codes aus RFC 821, die SMTP-Server senden können. Dort ist
auch die Theorie der Antwort-Codes beschrieben, die jeder Ziffer diesen
dreistelligen Codes eine Bedeutung zuweist. Ist die erste Ziffer zum Beispiel
eine 2, gehört dieser Code zu den Positive Completion
Replys (Befehl erfolgreich ausgeführt), und der nächste Befehl kann
ausgeführt werden. Eine 5 für die erste Ziffer bedeutet
Permanent Negative Completion Reply (dauerhafte Ablehnung) - der Befehl
wurde abgelehnt und die angeforderte Aufgabe nicht ausgeführt. Der Absender
sollte die gleiche Anfrage nicht ein weiteres Mal stellen.
Response
Bedeutung
211
System Status, or System help reply
214
Help message. Anweisungen, wie mit einem bestimmten Befehl
umzugehen ist
220
<domain> Service ready
221
<domain> Service closing transmission channel
250
Requested mail action okay, completed
354
Start mail input; end with <CRLF>.<CRLF>
421
<domain> Service not available,closing transmission channel
450
Requested mail action not taken: mailbox unavailable
451
Requested action aborted: local error in processing
452
Requested action not taken: insufficient System storage
500
Syntax error, command unrecognized
501
Syntax error in parameters or arguments
502
Command not implemented
503
Bad sequence of commands
504
Command parameter not implemented
550
Requested action not taken: mailbox unavailable
551
User not local; please try <forward-path>
552
Requested mail action aborted: exceeded storage allocation
553
Requested action not taken: mailbox name not allowed
554
Transaction failed