Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Simple Mail Transfer Protocol

Das Simple Mail Transfer Protocol (SMTP, auf Deutsch etwa Einfaches E-Mail-Übertragungsprotokoll) ist ein Protokoll der Internetprotokollfamilie, …

Inhalt5 Abschnitte
  1. 1. Aufgabe und Aufbau
  2. 2. Übertragungsweg und Rollen
  3. 3. Ablauf einer SMTP-Sitzung
  4. 4. Statuscodes und Erweiterungen
  5. 5. Sicherheit, Entwicklung und Software

Aufgabe und Aufbau

Das Simple Mail Transfer Protocol (SMTP) ist ein textbasiertes Protokoll der Internetprotokollfamilie für den Austausch von E-Mails in Computernetzen. Es dient vor allem dazu, lokal erstellte Nachrichten in das Mailsystem einzuspeisen und sie gegebenenfalls über mehrere Server zum Ziel weiterzuleiten. Das Abholen zugestellter Nachrichten gehört nicht zu seinen Aufgaben; dafür werden spezialisierte Protokolle wie POP3 oder IMAP verwendet. Der maßgebliche Standard ist RFC 5321.

SMTP arbeitet im TCP/IP-Protokollstapel auf der Anwendungsschicht und nutzt TCP als Transportprotokoll. Traditionell nehmen Mailserver Verbindungen auf TCP-Port 25 entgegen. Dieser Port wird hauptsächlich für den Nachrichtentransport zwischen Mail Transfer Agents verwendet. Port 587 dient als Submission-Port für Mailclients beziehungsweise Mail Submission Agents und nimmt normalerweise nur Nachrichten authentifizierter Nutzer oder Server an. Port 465 ist für SMTP mit unmittelbar aufgebauter SSL/TLS-Verschlüsselung standardisiert.

Die Trennung von Nachrichteneinspeisung und Server-zu-Server-Transport hilft, eigene berechtigte Nutzer von fremden Absendern zu unterscheiden und offene Weiterleitungsmöglichkeiten für Spam zu vermeiden. Durch getrennte Ports können Firewalls außerdem unkontrolliert ausgehende Spamnachrichten blockieren, ohne sämtliche Verbindungen zu externen SMTP-Servern zu unterbinden.

Übertragungsweg und Rollen

Für den Benutzer läuft die SMTP-Übertragung normalerweise unsichtbar ab. Der Mail User Agent (MUA), also das E-Mail-Programm des Benutzers, verbindet sich mit einem Mail Submission Agent (MSA). Der MSA nimmt nur Nachrichten berechtigter Nutzer oder Server an, bereitet sie bei Bedarf standardkonform auf und speist sie in das Mailsystem ein. Anschließend transportieren ein oder mehrere Mail Transfer Agents (MTA) die Nachricht zum Ziel.

Ursprünglich übernahm ein einzelner Server auf Port 25 sowohl die Funktion des MSA als auch die des MTA. Der besondere Port 587 für „submission“ wurde 1998 eingeführt, weil beide Aufgaben unterschiedliche Anforderungen haben. Wegen ihrer engen Verwandtschaft werden MSA und MTA jedoch häufig weiterhin durch dasselbe Programm bereitgestellt, das Verbindungen auf beiden Ports annimmt.

Ablauf einer SMTP-Sitzung

Ein Client kann eine E-Mail über die textbasierten SMTP-Kommandos sogar von Hand, beispielsweise mit Telnet, versenden. Der Server antwortet mit dreistelligen Statusnummern und kurzen, nicht einheitlich formulierten Begleittexten. Der Client reagiert darauf mit festgelegten Kommandos.

Ein typischer Ablauf beginnt mit der Servermeldung „220 service ready“. Mit „HELO“ nennt der Client seinen Fully Qualified Domain Name, also seinen vollständigen Domainnamen. „MAIL FROM:[email protected]“ legt die Absenderadresse des Transportumschlags fest, „RCPT TO:[email protected]“ die Empfängeradresse. Nach „DATA“ und der Antwort „354 start mail input“ übermittelt der Client die Kopfzeilen und den Textkörper der Nachricht. Zwischen Kopfzeilen und Textkörper muss eine Leerzeile stehen. Eine Zeile, die ausschließlich aus einem Punkt besteht, beendet die Nachricht. Mit „250 OK“ bestätigt der Server die Übernahme und übernimmt die Verantwortung für die Nachricht. „QUIT“ fordert schließlich die Trennung an, die der Server mit „221 closing channel“ ankündigt.

Die Adressen in „MAIL FROM“ und „RCPT TO“ heißen Envelope-From und Envelope-To. Sie dürfen von den Angaben in den Mail-Kopfzeilen „From:“ und „To:“ abweichen. Da Absender- und Empfängeradressen grundsätzlich frei gewählt werden können, beweist die sichtbare Absenderangabe allein nicht, wer eine Nachricht tatsächlich versendet hat.

Damit eine Punktzeile innerhalb des Nachrichteninhalts nicht irrtümlich als Ende gilt, setzt der Client vor jede mit einem Punkt beginnende Zeile einen zusätzlichen Punkt. Der Server entfernt diesen Zusatzpunkt wieder, sofern die Zeile nach dem Punkt noch weitere Zeichen enthält.

Statuscodes und Erweiterungen

Die erste Ziffer eines SMTP-Statuscodes beschreibt das Ergebnis:

• 1XX: Die Anforderung wurde akzeptiert, aber noch nicht ausgeführt; eine Bestätigung ist erforderlich.

• 2XX: Die Anforderung wurde erfolgreich und fehlerfrei ausgeführt.

• 3XX: Die Anforderung wurde verstanden, doch der Server benötigt weitere Informationen.

• 4XX: Es liegt ein temporärer Fehler vor; eine unveränderte Wiederholung kann später erfolgreich sein.

• 5XX: Es liegt ein fataler Fehler vor; die Anforderung kann nicht verarbeitet werden.

Das ursprüngliche SMTP wurde 1982 in RFC 821 beschrieben und sah keine Authentifizierung vor. Dadurch war jeder Mailserver zunächst ein offenes Mail-Relay, über das beliebige Clients Nachrichten versenden konnten. Mit der Verbreitung des Internets förderte dies Spam.

Extended SMTP (ESMTP) erweiterte das Protokoll 1995 mit RFC 1869; Vorläufer erschienen 1993 in RFC 1425 und 1994 in RFC 1651. ESMTP besitzt ein modulares Erweiterungskonzept für zusätzliche Befehle, die SMTP-Verben. Meldet sich ein Client mit „EHLO“ statt „HELO“, antwortet der Server mit den von ihm unterstützten Erweiterungen. Beispiele sind STARTTLS für TLS-Verschlüsselung, 8BITMIME für den 8-Bit-MIME-Transport, DSN für Zustellstatusmeldungen und AUTH für SMTP-Authentifizierung.

Für eine von Anfang an verschlüsselte Verbindung wird SMTPS über den eigenen TCP-Port 465 verwendet. Alternativ kann STARTTLS eine zunächst unverschlüsselte Verbindung auf den Standard-Ports 25 für den Mailaustausch und 587 für die Einspeisung ausdrücklich auf TLS umstellen.

Sicherheit, Entwicklung und Software

Die Sicherheitskonzepte erfüllen unterschiedliche Aufgaben. Zugangskontrolle bedeutet, dass nur zugelassene Benutzer den Mailserver verwenden dürfen; dazu dienen SMTP-After-POP, SMTP-Auth und SMTPS. Die Echtheitsprüfung soll eine eindeutige Zuordnung zwischen Absender und Nachricht ermöglichen; genannte Verfahren sind PGP, S/MIME, SPF, DKIM, DMARC und ARC. Integrität bedeutet, dass eine Nachricht unterwegs nicht unbemerkt verändert werden kann; hierfür werden PGP, S/MIME, DKIM und ARC eingesetzt. Vertraulichkeit schützt vor einer Übertragung im Klartext; die aufgeführten Konzepte sind PGP, Autocrypt, S/MIME, TLS, STARTTLS, DANE und MTA-STS.

Vorläufer von SMTP waren im ARPANET das Mail Box Protocol aus RFC 278 vom Juli 1971 und FTP Mail aus RFC 458 vom Februar 1973. Um 1980 schlug Jon Postel vor, den E-Mail-Verkehr vom FTP-Dienst zu lösen; 1982 veröffentlichte er SMTP als RFC 821. SMTP wurde zum Standard für ständig mit dem Netz verbundene Rechner, während UUCP besonders für nur zeitweise verbundene Rechner genutzt wurde. Der heutige SMTP-Standard RFC 5321 erschien im Oktober 2008.

SMTP war anfangs ein reines ASCII-Protokoll und konnte deshalb keine Binärdateien unmittelbar übertragen. MIME, die Multipurpose Internet Mail Extensions, ermöglichte ihre Übertragung durch Kodierung in ASCII. Weitere RFCs behandeln unter anderem Größenangaben für Nachrichten, Authentifizierung, TLS, Zustellstatusmeldungen, erweiterte Fehlercodes, große oder binäre MIME-Nachrichten und internationalisierte E-Mail-Adressen.

Zu den verbreiteten SMTP-Servern gehören Sendmail, Exim, Postfix, qmail, MS Exchange, GroupWise, Mercury MTS und IBM Lotus Domino. Viele Programmierumgebungen, darunter das .Net-Framework und Java, enthalten bereits SMTP-Klassen.

Lernvideos zu Simple Mail Transfer Protocol

Weiterlesen

Internetprotokollfamilie RIP (Routing Information Protocol) – Informationsaustausch zwischen Routern (Distanzvektor) via UDP · IGMP (Internet Group Management) – Organisation von … E-Mail Die oder das E-Mail (englisch [ˈiːmeɪl], im Deutschen kurz Mail; englisch electronic mail für „elektronische Post“ oder „elektronischer Brief“) ist zum … Mail Transfer Agent Ein Mail Transfer Agent oder Message Transfer Agent (MTA) ist die Software eines Mailservers, die E-Mails entgegennimmt und sendet. Netzwerkprotokoll Ein Netzwerkprotokoll (auch Netzprotokoll) ist ein Kommunikationsprotokoll für den Austausch von Daten zwischen Computern bzw. Prozessen, die in einem … Rechnernetz Ein Rechnernetz, Computernetz oder Computernetzwerk ist ein Zusammenschluss verschiedener technischer, primär selbstständiger elektronischer Systeme … Post Office Protocol Das Post Office Protocol (POP) ist ein Netzwerkprotokoll auf Anwendungsschicht, über das ein E-Mail-Programm E-Mails von einem E-Mail-Server abholen kann … Internet Message Access Protocol Das Internet Message Access Protocol (IMAP), ursprünglich Interactive Mail Access Protocol, ist ein Netzwerkprotokoll, das ein Netzwerkdateisystem für … Port (Netzwerkadresse) Zusammen mit der IP-Adresse ermöglicht der Port die Adressierung eines Servers oder Clients. Durch Angabe von Quell- und Zieladresse, jeweils bestehend aus IP … Firewall Eine Firewall (von englisch firewall [ˈfaɪəwɔːl] ‚Brandwand' oder ‚Brandmauer') ist ein Sicherungssystem, das ein Rechnernetz oder einen einzelnen Computer vor … Jon Postel August 1943 in Altadena; † 16. Oktober 1998 in Santa Monica) war ein US-amerikanischer Informatiker und Wegbereiter des Internets, für dessen Entwicklung er – … Java (Programmiersprache) Java ist eine objektorientierte Programmiersprache und eine eingetragene Marke des Unternehmens Sun Microsystems, welches 2010 von Oracle übernommen wurde. American Standard Code for Information Interchange Der American Standard Code for Information Interchange (ASCII, alternativ US-ASCII, ausgesprochen [ˈæski], deutsch „Amerikanischer Standard-Code für den …