Top-Fragen
Zeitleiste
Chat
Kontext

Simple Mail Transfer Protocol

Protokoll der Internetprotokollfamilie Aus Wikipedia, der freien Enzyklopädie

Remove ads
Remove ads

Das Simple Mail Transfer Protocol (SMTP, auf Deutsch etwa Einfaches E-Mail-Übertragungsprotokoll) ist ein Protokoll der Internetprotokollfamilie, das zum Austausch von E-Mails in Computernetzen dient. Es wird dabei vorrangig zum Einspeisen und zum Weiterleiten von E-Mails verwendet. Zum Abholen von Nachrichten kommen andere, spezialisierte Protokolle wie POP3 oder IMAP zum Einsatz.

Weitere Informationen Familie:, Einsatzgebiet: ...

SMTP-Server nehmen traditionell Verbindungen auf Port 25 („smtp“) entgegen. Neuere Server benutzen auch Port 587 oder 465, um ausschließlich von authentifizierten Benutzern/Servern Mails entgegenzunehmen („Mail Submission Agent“), wobei gewöhnlich mittels STARTTLS oder SSL die bestehende Klartext-Verbindung zu einer verschlüsselten Verbindung umgeschaltet wird, um die Authentifizierungsdaten zu schützen.

Durch eine klare Trennung eigener und fremder Benutzer sollen Konfigurationsprobleme und damit Spam vermieden werden (→ SMTP-Relay-Server). Außerdem kann aufgrund der unterschiedlichen Ports eine einfache Firewall-Regel verwendet werden, um unkontrolliert abgehende Spamnachrichten aus dem eigenen Netzwerk zu blockieren, ohne dass Verbindungen zu externen SMTP-Servern vollständig ausgeschlossen werden.

Remove ads

Geschichte

Zusammenfassung
Kontext

Vorgänger von SMTP waren im Arpanet das Mail Box Protocol (RFC 278[2]) vom Juli 1971 und FTP Mail (RFC 458[3]) vom Februar 1973. Mit der Entstehung des Internets aus dem ARPANET um 1980 schlug Jon Postel vor, die Abhängigkeit des E-Mail-Verkehrs vom FTP-Dienst abzukoppeln (RFC 772[4]), und veröffentlichte 1982 SMTP unter RFC 821.[5] In den frühen 1980er Jahren wurde es eine Ergänzung zu UUCP, das vor allem für den E-Mail-Verkehr periodisch verbundener Rechner genutzt wurde. SMTP wurde der Standard für Rechner, die ständig am Netz waren.

Einer der ersten Mail Transfer Agents, der SMTP implementierte und weitere Verbreitung erlangte, war sendmail. Inzwischen gibt es unzählige Programme, die SMTP als Client oder Server unterstützen, darunter weit verbreitete SMTP-Server wie Postfix, qmail, exim usw. Da viele Programmierframeworks wie das .Net-Framework oder Java bereits SMTP-Klassen eingebaut haben, ist die Entwicklung auch nur noch mit geringem Aufwand verbunden.

SMTP begann als reines ASCII-Protokoll, so dass damit keine Binärdateien übertragen werden konnten. Erst Standards wie MIME (Multipurpose Internet Mail Extensions) schufen diese Möglichkeit durch ein Kodieren der Binärdateien in ASCII.

Remove ads

Verfahren

Thumb
Die blauen Pfeile zeigen die verschiedenen SMTP-Rollen an

Die Abwicklung des SMTP-Verfahrens wird meist für den Anwender unsichtbar durch sein Mailprogramm vorgenommen, den sogenannten Mail User Agent (MUA). Dieses Programm verbindet sich mit einem SMTP-Server, dem Mail Submission Agent (MSA), der die Mail über ggf. weitere SMTP-Server, sogenannte Mail Transfer Agents (MTA), zum Ziel transportiert. Da SMTP als Protokoll zum Transport von lokal erstellten Mails zwischen Servern konzipiert wurde, übernahm dabei ursprünglich ein einzelner Server auf Port 25 („smtp“) die Rolle von MSA und MTA. Der dedizierte Port 587 („submission“) wurde erst 1998 eingeführt, um den unterschiedlichen Anforderungen beider Aufgaben gerecht zu werden: Ein MSA akzeptiert ausdrücklich nur Nachrichten berechtigter Nutzer/Server und bereitet sie vor der Einspeisung in das Mailsystem gegebenenfalls standardkonform auf. Wegen der nahen Verwandtschaft beider Dienste wird die Funktionalität von MSA und MTA üblicherweise immer noch von nur einem Programm, das dann auf beiden Ports Verbindungen annimmt, bereitgestellt.

Remove ads

Protokoll

Zusammenfassung
Kontext

Wie bei allen textbasierten Protokollen, die TCP verwenden, kann mit Hilfe eines Telnet-Client eine E-Mail per SMTP auch „von Hand“ verschickt werden. Dabei sind, wie auch bei anderen Verfahren, Absender- und Empfängeradresse frei wählbar. Aus diesem Grund ist die Verlässlichkeit der Absenderangabe einer E-Mail nicht gegeben. Grundsätzlich können sich die Adressen im MAIL FROM- und RCPT TO-Kommando (sogenannte Envelope-From bzw. Envelope-To) von den Adressen im From:- und To:-Mailheader unterscheiden.

Der Server antwortet auf Kontaktaufnahmen mit dreistelligen Statusnummern und kurzen Texten, die variieren oder auch entfallen können. Der Client muss mit festgelegten Zeichenfolgen auf die Statusmeldungen reagieren. Eine einfache SMTP-Sitzung zum Versenden einer E-Mail kann beispielsweise folgendermaßen aussehen:

Weitere Informationen Client, Server ...
Remove ads

Status-Codes

Das SMTP-Protokoll sieht zum Status der Kommunikation zwischen Mailserver und Mailclient folgende Statuscodes vor:

1XX
Mailserver hat die Anforderung akzeptiert, ist aber selbst noch nicht tätig geworden. Eine Bestätigungsmeldung ist erforderlich.
2XX
Mailserver hat die Anforderung erfolgreich ohne Fehler ausgeführt.
3XX
Mailserver hat die Anforderung verstanden, benötigt aber zur Verarbeitung weitere Informationen.
4XX
Mailserver hat einen temporären Fehler festgestellt. Wenn die Anforderung ohne jegliche Änderung wiederholt wird, kann die Verarbeitung möglicherweise abgeschlossen werden.
5XX
Mailserver hat einen fatalen Fehler festgestellt. Die Anforderung kann nicht verarbeitet werden.
Remove ads

Mail-Ende-Indikator

Das Ende einer Mail wird durch eine Zeile angezeigt, die genau einen Punkt und sonst nichts enthält. Um eine Verwechslung mit so einer Zeile innerhalb einer Mail zu vermeiden, stellen SMTP-Clients jeder mit führendem Punkt verfassten Zeile einen weiteren Punkt voran, den SMTP-Server wieder löschen, falls weitere Zeichen die Zeile fortsetzen.[6]

Extended SMTP

Zusammenfassung
Kontext

Als SMTP 1982 in RFC 821[5] definiert wurde, gab es eine überschaubare Anzahl von Hosts im Internet. Da die Verbindungen langsam und instabil waren, wurde auf Zuverlässigkeit großen Wert gelegt. Authentifizierung war nicht vorgesehen, so dass jeder Mailserver ein offener Mail-Relay war, über den Mails von irgendeinem Client verschickt werden konnten. Mit der wachsenden Popularität des Internets entstand so das Problem des Spam.

1995 wurde mit Extended SMTP (ESMTP) in RFC 1869[7] das Protokoll erweitert (zuvor 1993 in RFC 1425[8] und 1994 in RFC 1651[9]). Diese Erweiterung erlaubt, dass über ein modulares Konzept weitere Befehle (SMTP-Verben) definiert werden. Wenn der Client sich beim Server nicht – wie oben gezeigt – mit HELO, sondern mit EHLO (Extended HELO) meldet, teilt der Server ihm im Gegenzug mit, welche Erweiterungen des Protokolls er unterstützt. Gängige Beispiele hierfür sind STARTTLS (Secure SMTP over TLS), 8BITMIME (8bit-MIMEtransport), DSN (Delivery Status Notifications) und AUTH (SMTP-Auth).

Zur impliziten Verschlüsselung über SSL/TLS wird SMTPS empfohlen, welches einen eigenen TCP-Port benötigt. Hierfür wurde TCP-Port 465 standardisiert.[10] Alternativ kann eine explizite Verschlüsselung per STARTTLS-Kommando über die Standard-Ports 25 (MX) und 587 (MSA) verwendet werden.

Remove ads

Sicherheitskonzepte

Weitere Informationen Merkmal, Definition ...
Remove ads

Software

Einige der am häufigsten verwendeten SMTP-Server sind Sendmail, Exim, Postfix, qmail, MS Exchange, GroupWise, Kerio Connect, Mercury MTS und IBM Lotus Domino.

Verwandte Requests for Comments (RFCs)

  • Jon Postel: RFC: 821 Simple Mail Transfer Protocol. August 1982 (englisch).
  • RFC: 2821 Simple Mail Transfer Protocol. April 2001 (englisch).
  • RFC: 1845 SMTP Service Extension for Checkpoint/Restart. (englisch).
  • RFC: 1870 SMTP Service Extension for Message Size Declaration. (englisch).
  • RFC: 1869 SMTP Service Extensions. (englisch).
  • RFC: 1894 An Extensible Message Format for Delivery Status Notifications. (englisch).
  • RFC: 1985 SMTP Service Extension for Remote Message Queue Starting – ETRN. (englisch).
  • RFC: 2034 SMTP Service Extension for Returning Enhanced Error Codes. (englisch).
  • RFC: 2047 Message Header Extensions for Non-ASCII Text. (englisch).
  • RFC: 2487 SMTP Service Extension for Secure SMTP over TLS. (englisch).
  • RFC: 2505 Anti-Spam Recommendations for SMTP MTAs. (englisch).
  • RFC: 2554 SMTP Service Extension for Authentication. (englisch).
  • RFC: 2606 Reserved Top Level DNS Names. (englisch).
  • RFC: 2645 On-Demand Mail Relay (ODMR): SMTP with Dynamic IP Addresses. August 1999 (englisch).
  • RFC: 2852 Deliver By SMTP Service Extension. (englisch).
  • RFC: 2920 SMTP Service Extension for Command Pipelining. (englisch).
  • RFC: 3030 SMTP Service Extensions for Transmission of Large and Binary MIME Messages. (englisch).
  • RFC: 3207 SMTP Service Extension for Secure SMTP over Transport Layer Security. (englisch).
  • RFC: 3461 SMTP Service Extension for Delivery Status Notifications (DSNs). (englisch).
  • RFC: 3463 Enhanced Status Codes for SMTP. (englisch).
  • RFC: 3464 An Extensible Message Format for Delivery Status Notifications. (englisch).
  • RFC: 3700 Internet Official Protocol Standards. (englisch).
  • RFC: 3974 SMTP Operational Experience in Mixed IPv4/v6 Environments. (englisch).
  • RFC: 4409 Message Submission for Mail. (führt Port 587 für Message Submission ein, englisch).
  • RFC: 5321 Simple Mail Transfer Protocol. Oktober 2008 (englisch).
  • RFC: 5322 Internet Message Format. (englisch).
  • RFC: 5336 SMTP Extension for Internationalized Email Addresses. (englisch).
  • RFC: 6409 Message Submission for Mail, Internet Standard. (löst RFC 4409 ab, englisch).
  • RFC: 6152 SMTP Service Extension for 8bit-MIMEtransport. März 2011 (löst RFC 1652 ab, englisch).
  • RFC: 7505 A “Null MX” No Service Resource Record for Domains That Accept No Mail. (englisch).
  • Chris Newman, Keith Moore: RFC: 8314 Cleartext Considered Obsolete: Use of Transport Layer Security (TLS) for Email Submission and Access. (englisch).

Siehe auch

Einzelnachweise

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads