| Titel: | SMTP-Protokoll | |
| Beschreibung: | Einführung, Befehle, Response | |
| Kategorie: | Betriebssystem | |
| Unterkategorie | ||
| Artikel überarbeiten: | SMTP-Protokoll | |
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 |