Movatterモバイル変換


[0]ホーム

URL:


Zum Inhalt springen
WikipediaDie freie Enzyklopädie
Suche

Simple Mail Transfer Protocol

aus Wikipedia, der freien Enzyklopädie
SMTP (Simple Mail Transfer Protocol)
Familie:Internetprotokollfamilie
Einsatzgebiet:Einspeisung vonE-Mail (Mail Submission), Übertragung von E-Mails eventuell über mehrere Stationen (Mail Transfer)
Ports:25/TCP (Standard-MTA)

465/TCP (nur mitSSL/TLS)
587/TCP (nur alsMSA / fürMail-Clients, häufig mitSTARTTLS)

SMTP imTCP/IP-Protokollstapel:
AnwendungSMTP
TransportTCP
InternetIP (IPv4,IPv6)
NetzzugangEthernetToken
Bus
Token
Ring
FDDI
Standard:RFC 5321[1]

DasSimple Mail Transfer Protocol (SMTP, auf Deutsch etwaEinfaches E-Mail-Übertragungsprotokoll) ist einProtokoll derInternetprotokollfamilie, das zum Austausch vonE-Mails inComputernetzen dient. Es wird dabei vorrangig zum Einspeisen und zum Weiterleiten von E-Mails verwendet. Zum Abholen von Nachrichten kommen andere, spezialisierte Protokolle wiePOP3 oderIMAP zum Einsatz.

SMTP-Server nehmen traditionell Verbindungen aufPort 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 mittelsSTARTTLS oderSSL 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 damitSpam vermieden werden (→ SMTP-Relay-Server). Außerdem kann aufgrund der unterschiedlichen Ports eine einfacheFirewall-Regel verwendet werden, um unkontrolliert abgehende Spamnachrichten aus dem eigenen Netzwerk zu blockieren, ohne dass Verbindungen zu externen SMTP-Servern vollständig ausgeschlossen werden.

Geschichte

[Bearbeiten |Quelltext bearbeiten]

Vorgänger von SMTP waren imArpanet dasMail Box Protocol (RFC 278[2]) vom Juli 1971 undFTP Mail (RFC 458[3]) vom Februar 1973. Mit der Entstehung des Internets aus dem ARPANET um 1980 schlugJon 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 zuUUCP, 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 erstenMail Transfer Agents, der SMTP implementierte und weitere Verbreitung erlangte, warsendmail. Inzwischen gibt es unzählige Programme, die SMTP als Client oder Server unterstützen, darunter weit verbreitete SMTP-Server wiePostfix,qmail,exim usw. Da viele Programmierframeworks wie das.Net-Framework oderJava bereits SMTP-Klassen eingebaut haben, ist die Entwicklung auch nur noch mit geringem Aufwand verbunden.

SMTP begann als reinesASCII-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.

Verfahren

[Bearbeiten |Quelltext bearbeiten]
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 sogenanntenMail User Agent (MUA). Dieses Programm verbindet sich mit einemSMTP-Server, demMail Submission Agent (MSA), der die Mail über ggf. weitere SMTP-Server, sogenannteMail 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.

Protokoll

[Bearbeiten |Quelltext bearbeiten]

Wie bei allen textbasierten Protokollen, die TCP verwenden, kann mit Hilfe einesTelnet-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 dieVerlässlichkeit der Absenderangabe einer E-Mail nicht gegeben. Grundsätzlich können sich die Adressen imMAIL FROM- undRCPT TO-Kommando (sogenannteEnvelope-From bzw.Envelope-To) von den Adressen imFrom:- undTo:-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:

ClientServerErläuterung
telnet mail.example.com 25Client ruft Server
220 service readyServer meldet sich bereit
HELO foobar.example.netClient nennt seinenFully Qualified Domain Name
250 OKServer bestätigt
MAIL FROM:<sender@example.org>Client nennt Absenderadresse
250 OKServer bestätigt
RCPT TO:<receiver@example.com>Client nennt Empfängeradresse
250 OKServer bestätigt
DATAClient kündigt Inhalt der E-Mail an
354 start mail inputServer bereit für diesen längeren Vorgang
From: <sender@example.org>
To: <receiver@example.com>
Subject: Testmail
Date: Thu, 26 Oct 2006 13:10:50 +0200

Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.
.
Client sendet Inhalt der E-Mail und markiert das Ende durch eine Zeile, die nur einen Punkt enthält.
(Zwischen Header und Textkörper muss eine Leerzeile vorhanden sein, sonst wird beim Empfänger kein Textkörper angezeigt.)
250 OKServer bestätigt und übernimmt die Verantwortung für die Nachricht
QUITClient fordert Verbindungstrennung an
221 closing channelServer kündigt Trennung an

Status-Codes

[Bearbeiten |Quelltext bearbeiten]

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.

Mail-Ende-Indikator

[Bearbeiten |Quelltext bearbeiten]

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

[Bearbeiten |Quelltext bearbeiten]

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

1995 wurde mitExtended 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 – mitHELO, sondern mitEHLO(Extended HELO) meldet, teilt der Server ihm im Gegenzug mit, welche Erweiterungen des Protokolls er unterstützt. Gängige Beispiele hierfür sindSTARTTLS(Secure SMTP overTLS), 8BITMIME(8bit-MIMEtransport), DSN(Delivery Status Notifications) und AUTH(SMTP-Auth).

Zur impliziten Verschlüsselung über SSL/TLS wirdSMTPS 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.

Sicherheitskonzepte

[Bearbeiten |Quelltext bearbeiten]
MerkmalDefinitionKonzepte
ZugangskontrolleNur zugelassene Benutzer dürfen den Mailserver benutzenSMTP-After-POP,SMTP-Auth,SMTPS
EchtheitsprüfungEine eindeutige Zuordnung Absender↔Nachricht ist möglichPGP,S/MIME,SPF,DKIM,DMARC,ARC
IntegritätDie Nachricht kann auf dem Weg durch das Netz nicht unbemerkt verändert werdenPGP,S/MIME,DKIM,ARC
VertraulichkeitDie Nachricht wird nicht im Klartext übertragen, sondern verschlüsseltPGP,Autocrypt,S/MIME,TLS,STARTTLS,DANE,MTA-STS

Software

[Bearbeiten |Quelltext bearbeiten]

Einige der am häufigsten verwendeten SMTP-Server sindSendmail,Exim,Postfix,qmail,MS Exchange,GroupWise,Mercury MTS undIBM Lotus Domino.

Verwandte Requests for Comments (RFCs)

[Bearbeiten |Quelltext bearbeiten]
Siehe auch:Request for Comments
  • 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östRFC 4409 ab, englisch).
  • RFC:6152 –SMTP Service Extension for 8bit-MIMEtransport. März 2011 (löstRFC 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

[Bearbeiten |Quelltext bearbeiten]

Weblinks

[Bearbeiten |Quelltext bearbeiten]

Einzelnachweise

[Bearbeiten |Quelltext bearbeiten]
  1. RFC:5321 –Simple Mail Transfer Protocol. Oktober 2008 (englisch).
  2. RFC:278 –Revision of the Mail Box Protocol. November 1971 (englisch).
  3. RFC:458 –Mail Retrieval via FTP. Februar 1973 (englisch).
  4. RFC:772 –Mail Transfer Protocol. September 1980 (englisch).
  5. abRFC:821 –Simple Mail Transfer Protocol. 1980 (englisch).
  6. RFC:2821 –Simple Mail Transfer Protocol. April 2001, Abschnitt 4.5.2 (englisch).
  7. RFC:1869 –SMTP Service Extensions. 1995 (englisch).
  8. RFC:1425 –SMTP Service Extensions. Februar 1993 (englisch).
  9. RFC:1651 –SMTP Service Extensions. Juli 1994 (englisch).
  10. Chris Newman, Keith Moore: RFC:8314 –Cleartext Considered Obsolete: Use of Transport Layer Security (TLS) for Email Submission and Access. (englisch).
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Simple_Mail_Transfer_Protocol&oldid=260084578
Kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp