WikiDer > Simple Mail Transfer Protocol
Simple Mail Transfer Protocol (SMTP) ist der De-facto-Standard zum Senden von Verstures Email über die Internet.
SMTP ist ein relativ einfaches, textbasiertes Protokoll: Zuerst wird der Absender der Nachricht angegeben, dann ein oder mehrere Empfänger und dann die Absenderinformationen und der Inhalt der Nachricht. Es ist einfach, einen SMTP-Server mit dem telnet-Programm. SMTP verwendet TCPPort 25 für die Kommunikation zwischen SMTP-Servern und Port 587 für die Registrierung neuer E-Mail-Nachrichten durch a E-Mail-Client. Port 465 wurde zuvor auch inoffiziell verwendet, ist aber inzwischen ausgelaufen, obwohl er von mehreren Servern noch zugelassen wird.
Um den SMTP-Server für eine Domain zu ermitteln, MX-Eintrag (MX = Mail eXchange) von DNS benutzt.
Geschichte
Die weltweite Nutzung von SMTP begann in den frühen Jahren achtziger Jahre. Dann war es eine Ergänzung für UUCP. UUCP war besser geeignet, um E-Mails zwischen Computern zu senden, die nicht immer verbunden waren. SMTP geht davon aus, dass der Empfänger immer mit dem Netzwerk verbunden ist.
Mail senden war einer der ersten (wenn nicht der erste) Mail-Übergabe-AgentProgramme, die SMTP verwenden.
Seit 2001 existieren mindestens 50 verschiedene Programme, die SMTP unterstützen als Klient (Nachrichtensender) oder Server (Nachrichtenempfänger). Einige beliebte SMTP-Serverprogramme sind Postfix (von IBM), qmail (von Daniel J. Bernstein), Gruppenweise (von Novelle) und Microsoft Exchange Server.
SMTP kann als reines ASCII-Textprotokoll Binärdateien nur senden, wenn sie in ASCII vorcodiert sind, zum Beispiel mit base64. Um mehrere Anhänge zu senden, müssen Standards wie MIME benutzt.
Senden und Empfangen
Bei SMTP geht die Initiative immer vom Absender aus. Dies wird auch als „Pushen“ oder „Hochladen“ bezeichnet. Dazu ist es wünschenswert, dass der Empfänger jederzeit einsatzbereit ist. Da private Computer in der Regel nicht permanent mit dem Internet verbunden sind, ist SMTP nicht geeignet, eine Nachricht an ihr endgültiges Ziel zuzustellen. Die Nachricht wird daher vom Provider des Empfängers aufbewahrt, bis der Empfänger eine Verbindung zum Internet herstellt und die Nachricht abruft. Dieser Abruf erfolgt mit einem Protokoll wie POP3 oder IMAP, wo die Initiative vom Empfänger ausgeht. Dies wird auch als „Pulling“ oder „Downloading“ bezeichnet.
Spam und die Sicherheit von SMTP
Eine der Einschränkungen des ursprünglichen SMTP besteht darin, dass es keine zuverlässige Möglichkeit gibt, zu überprüfen, ob der Absender wirklich der ist, für den es sich ausgibt. Diese Einschränkung wird beim Senden ausgenutzt Spam, wo ein fiktiver Absender für eine E-Mail angegeben werden kann. Um Spam zu verhindern, blockieren einige Anbieter den Port 25 (den SMTP-Server-Port) für Kunden, um zu verhindern, dass ein sogenannter Open Relay-Server vom Benutzer oder Malware gestartet wird. Port 587, der SMTP-Submission-Port, wird normalerweise nicht blockiert und wird daher für den E-Mail-Versand bevorzugt. SMTP komplett zu ändern oder durch ein komplett neues Protokoll zu ersetzen, wird aufgrund der großen Verbreitung und Implementierung nicht für möglich gehalten.
Aus diesem Grund wurden eine Reihe von Protokollen entwickelt, die SMTP bei der Erkennung von Spam unterstützen sollen, wie z Absenderrichtlinien-Framework oder DomainKeys Identifizierte E-Mail. Auf diese Weise können Domänen angeben, welche Server in ihrem Namen E-Mails senden dürfen, um Spam zu reduzieren.
Um vorerst zu prüfen, ob der Absender den Server als Relay verwenden darf, SMTP-AUTHErweiterung entwickelt.
Beispiel einer SMTP-Sitzung
Die unten gezeigte Sitzung ist ein Beispiel für SMTP. 'C' steht für Klient, und 'S' für Server. Ein SMTP-Server läuft normalerweise auf Port 25 für die Kommunikation zwischen SMTP-Servern und auf Port 587 für die Annahme neuer E-Mails von einem E-Mail-Client. Durch telnet kann damit verbunden werden.
Wenn der Sender einen Befehl an den Server sendet, antwortet der Server. Die Antwort ist teilweise in menschenlesbarer Sprache, was bei der Verwendung von Telnet nützlich ist. Ein E-Mail-Client ignoriert diese Texte.
telnet smtp.example.nl 587
Nun wird eine SMTP-Verbindung mit dem Server auf dem Host smtp.example.nl geöffnet:
S: 220 smtp.example.nl Beispiel-SMTP-Dienst
Der Server gibt eine 'Gruß'-Antwort mit Code 220. Die nach dem Code angezeigten Informationen sind serverspezifisch. Es ist möglich, dass ein Server einen 554-Code zurückgibt. Das bedeutet, dass der Server die Verbindung nicht akzeptiert, dieser Code jedoch nicht gesendet werden muss.
Der Client sollte nun mit dem HELO (Hallo)-Befehl:
C: HELO smtp.afzender.nlS: 250 Hallo
(Der Kunde kann auch das EHLO (Erweitertes Hallo) Befehl, aber dann sendet der Server eine Liste der von ihm unterstützten Erweiterungen.) Jetzt beginnt die SMTP-Mail-Transaktion. Der Client startet mit dem MAIL-Befehl. Hier wird dem Server die E-Mail-Adresse des Absenders mitgeteilt:
C: MAIL VON:S: 250 [email protected]... Absender OK
Danach wird die E-Mail-Adresse des Empfängers über das RCPT TO (Empfänger an) Befehl:
C: RCPT AN:S: 250 [email protected]... Empfänger OK
Der Client antwortet nun mit dem DATA-Befehl. Jetzt können Daten eingegeben werden. Der Client endet mit einem Punkt ('.') in einer neuen Zeile:
C: DATAS: 354 Bitte Maileingabe beginnen und mit einer neuen Zeile und einem '.' beenden. gefolgt von einem Zeilenumbruch.C: Betreff: DatatestC: Data...data...data...C: .S: 250 Mail in der Warteschlange für die Zustellung.
Die Mail wird nun in die Sendewarteschlange gestellt. Der Client kann nun die Sitzung beenden, indem er den QUIT-Befehl sendet:
C: ENDE: 221 Auf Wiedersehen.
Quellen, Anmerkungen und/oder Verweise
|
| Internetprotokolle laut der TCP/IP-Modemodell | ||||||||
|---|---|---|---|---|---|---|---|---|
|