SMTP verstehen: E-Mail-Versand Schritt für Schritt
Du lernst SMTP, ein Verfahren zum Übertragen von E-Mails: den Weg der Nachricht, wichtige Befehle, die Serverwahl und den Verbindungsschutz.
Kurz gesagt
SMTP überträgt E-Mails vom Mailprogramm zum Versanddienst und zwischen Mailservern. Befehle steuern den Ablauf; Antworten melden den Stand. Verschlüsselte Verbindungen können die einzelnen Transportabschnitte schützen.
Wenn du auf „Senden“ klickst, liegt deine E-Mail noch nicht im Postfach des Empfängers. Mehrere Programme übernehmen auf ihrem Weg verschiedene Aufgaben. Alle Adressen und Servernamen dieser Lektion sind erfunden; du untersuchst die Abläufe auf dem Papier.
Deine Lernziele
SMTP steht für Simple Mail Transfer Protocol, auf Deutsch etwa einfaches E-Mail-Übertragungsprotokoll. Ein Protokoll legt Regeln für den Austausch zwischen Programmen fest. SMTP überträgt Nachrichten vom Mailprogramm zum Versanddienst und zwischen Mailservern. Ein Server ist ein Programm, das einen Dienst anbietet. Das Programm, das diesen Dienst anfragt, heißt Client.
IMAP steht für Internet Message Access Protocol, POP für Post Office Protocol. Beide ermöglichen den Zugriff auf gespeicherte E-Mails. Sie übernehmen in diesem Ablauf nicht die Weiterleitung zu fremden Mailservern. Ein Postfach ist der Speicherbereich für die Nachrichten eines Empfängers.
Die Tabelle unterscheidet vier Rollen, also Aufgabenbereiche im E-Mail-System. Die englischen Namen erklären die Abkürzungen. Software, also ein Programm oder mehrere Programme, kann mehrere Rollen übernehmen. Für diese Rollen sind deshalb keine getrennten Rechner nötig.
| Rolle | Englischer Name | Aufgabe |
|---|---|---|
| MUA | Message User Agent | Das Mailprogramm erstellt, sendet und zeigt Nachrichten für den Benutzer an. |
| MSA | Mail Submission Agent | Nimmt Nachrichten vom MUA zum Versand an und prüft die geltenden Versandregeln. |
| MTA | Message Transfer Agent | Leitet Nachrichten auf einem Transportabschnitt in Richtung Empfänger weiter. |
| MDA | Mail Delivery Agent | Übernimmt die Zustellung in das Postfach des Empfängers. |
Merke: Ein typischer Weg lautet: MUA → MSA → MTA → gegebenenfalls weitere MTAs → MDA → Postfach. Der Pfeil bedeutet „übergibt an“. Der Empfänger greift mit seinem MUA auf gespeicherte Nachrichten zu, zum Beispiel über IMAP.
Teste dich
Ein SMTP-Dialog ist der Austausch von Befehlen und Antworten zwischen Client und Server. Im folgenden verkürzten Dialog steht C für Client und S für Server. Die Verbindung und die Begrüßung sind bereits erfolgreich abgeschlossen. Die Kopfzeilen der Nachricht sind ausgelassen; gezeigt wird ihr kurzer Inhalt.
MAIL FROM legt die Rückadresse für Meldungen über Transportprobleme fest. Diese Adresse muss nicht dem Verfasser gehören. RCPT TO nennt jeweils einen Empfänger für den Transport. Diese Angaben bilden den Transportumschlag, also die Zustellangaben außerhalb der eigentlichen Nachricht. Sie können von den sichtbaren Kopfzeilen abweichen: „From“ zeigt einen Absender an, „To“ einen Empfänger. Aus MAIL FROM folgt kein Nachweis, wer den Text geschrieben hat.
DATA kündigt die Nachrichtendaten an. Der Client darf sie erst nach der Antwort 354 senden. Eine Zeile mit einem einzelnen Punkt beendet die Nachrichtendaten. Das anschließende 250 bestätigt, dass der Server die Verantwortung für die Nachricht übernimmt. Das ist eine Annahmebestätigung. Eine Lesebestätigung würde dagegen bestätigen, dass der Empfänger die Nachricht gelesen hat; das sagt dieses 250 nicht aus.
Antwortcode
Ein Antwortcode ist eine dreistellige Zahl in der Serverantwort. Die erste Ziffer ordnet die Antwort ein: 2 bedeutet erfolgreicher Abschluss des angefragten Schritts, 3 einen Zwischenschritt mit erwarteten weiteren Angaben, 4 einen vorübergehenden Fehler und 5 einen dauerhaften Fehler für den angefragten Vorgang.
| Code | Bedeutung | Folge |
|---|---|---|
| 250 | Der angefragte Schritt ist abgeschlossen. | Nach dem Datenende: Der Server übernimmt Verantwortung. |
| 354 | Der Server erwartet die Nachrichtendaten. | Der Client darf mit diesen Daten beginnen. |
| 450 | Vorübergehender Fehler, etwa ein zeitweise gesperrtes Postfach. | Ein späterer Versuch ist vorgesehen. |
| 550 | Dauerhafter Fehler, etwa ein fehlendes Postfach oder verweigerter Zugriff. | Den gleichen Auftrag nicht einfach unverändert wiederholen. |
Beispiel: Eine Werkzeugnotiz übertragen: ausgedachter, verkürzter Dialog
- 1C: MAIL FROM:<[email protected]>
- 2S: 250 OK
- 3C: RCPT TO:<[email protected]>
- 4S: 250 OK
- 5C: DATA
- 6S: 354 Start mail input
- 7C: Der Bohrer liegt im Schrank.
- 8C: .
- 9S: 250 OK
Teste dich
Für die Weiterleitung betrachtet der MTA den Teil hinter @ in der Adresse aus RCPT TO. Dieser Teil heißt Empfängerdomain. DNS steht für Domain Name System. Dieser Namensdienst liefert Einträge zu Domainnamen. Ein MX-Eintrag, kurz für Mail Exchange, nennt einen Mailserver für eine Domain und einen Zahlenwert für seine Bevorzugung.
Bei mehreren nutzbaren MX-Einträgen wird der kleinere Zahlenwert bevorzugt. Der Wert beschreibt die Reihenfolge, keine Geschwindigkeit. Bei gleichen Werten wird ohne weiteren Grund zur Bevorzugung zufällig verteilt. Scheitert ein Verbindungsversuch, kann der MTA weitere passende Zieladressen versuchen.
Der MX-Eintrag liefert einen Servernamen. Zu diesem Namen wird anschließend eine IP-Adresse gesucht. IP steht für Internet Protocol; eine IP-Adresse ist eine Netzwerkadresse, über die der Server erreicht werden kann. Ein MX-Eintrag enthält also nicht selbst die fertige IP-Adresse.
Gibt es für eine existierende Domain keine MX-Einträge, wird die Empfängerdomain selbst als möglicher Servername verwendet und nach ihrer IP-Adresse gesucht. Sind dagegen MX-Einträge vorhanden, aber alle unbrauchbar, gilt diese Ersatzregel nicht: Das ist ein Fehler. Auch eine nicht existierende Domain ist ein Fehler. Bei einem vorübergehenden DNS-Fehler wird die Nachricht aufbewahrt und die Suche später erneut versucht.
Beispiel: Mailserver einer Sternwarte auswählen: ausgedachte Daten
- 1Transportempfänger: [email protected]
- 2Ein MX-Eintrag nennt smtp-nord.sternwarte.example mit dem Wert 5.
- 3Ein weiterer nennt smtp-sued.sternwarte.example mit dem Wert 30.
- 4Beide Einträge sind nutzbar. Der MTA bevorzugt smtp-nord.sternwarte.example, weil 5 kleiner als 30 ist.
- 5Für den Verbindungsversuch sucht er die IP-Adresse dieses Servernamens.
Merke: Dein MUA nutzt für die Abgabe gewöhnlich einen eingestellten MSA. Die hier erklärte MX-Suche betrifft den weiterleitenden MTA und die Empfängerdomain aus RCPT TO, nicht die Domain der Rückadresse aus MAIL FROM.
Teste dich
TLS steht für Transport Layer Security. Es verschlüsselt die Daten einer Verbindung und ermöglicht die Prüfung des Gegenübers. Für die sichere Abgabe an den Versandserver muss der Client dessen Zertifikat prüfen. Ein Zertifikat ist ein digitaler Nachweis, mit dem der Client unter anderem prüft, ob er mit dem erwarteten Server verbunden ist. Eine verschlüsselte Verbindung zu einem ungeprüften Gegenüber reicht dafür nicht.
SMTP-Auth dient der Authentifizierung: der Prüfung einer behaupteten Identität. Der Client weist dem Versandserver eine Identität nach, etwa mit den Zugangsdaten eines Kontos. Das verschlüsselt die Nachricht nicht und beweist nicht, wer ihren Text geschrieben hat. Für die hier betrachtete Anmeldung mit Zugangsdaten wird zuerst eine passend geprüfte TLS-Verbindung hergestellt.
STARTTLS ist ein SMTP-Befehl zum Wechsel zu TLS. Die Verbindung beginnt zunächst ohne TLS. Der Server kann mit „250 STARTTLS“ mitteilen, dass er den Wechsel unterstützt. Danach können die Programme TLS aushandeln, also die geschützte Verbindung vereinbaren. Beim impliziten TLS beginnt diese Aushandlung dagegen direkt beim Verbindungsaufbau.
Ein Angreifer zwischen Client und Server kann die zunächst ungeschützte STARTTLS-Ankündigung entfernen oder den Wechsel stören. Das Unterdrücken dieses Wechsels heißt STARTTLS-Stripping. Erlaubt die Einstellung danach unverschlüsselten Versand, kann die Nachricht ohne TLS übertragen werden. Verlangen beide Seiten korrekt erfolgreiches TLS, wird der Versandversuch stattdessen abgebrochen. Der Angriff erzwingt dann keinen Klartextversand und knackt nicht die Verschlüsselung.
Für die Abgabe vom MUA an den MSA haben STARTTLS und implizites TLS bei korrekter Umsetzung und verpflichtendem TLS keine wesentlich unterschiedlichen Sicherheitseigenschaften. TLS schützt jeweils eine Verbindung, nicht automatisch weitere Transportabschnitte oder gespeicherte Kopien. Ende-zu-Ende-Verschlüsselung schützt dagegen den Inhalt zwischen Absender und Empfänger, sodass zwischengeschaltete Mailserver ihn nicht lesen können.
| Verfahren | Beginn | Sichere Einstellung für die Abgabe |
|---|---|---|
| STARTTLS | SMTP beginnt ohne TLS; anschließend erfolgt der Wechsel. | Versand erst nach erfolgreichem, passend geprüftem TLS erlauben. |
| Implizites TLS | Die TLS-Aushandlung beginnt direkt beim Verbindungsaufbau. | Versand erst nach erfolgreichem, passend geprüftem TLS erlauben. |
Merke: TLS schützt die jeweilige Verbindung. SMTP-Auth prüft die Identität bei der Anmeldung. Beides zusammen ersetzt weder den Nachweis des Verfassers noch eine Ende-zu-Ende-Verschlüsselung.
Teste dich
Alles auf einen Blick
SMTP
SMTP transportiert Nachrichten. IMAP und POP ermöglichen den Zugriff auf gespeicherte Nachrichten.
MUA, MSA, MTA und MDA übernehmen Mailprogramm, Versandannahme, Weiterleitung und Zustellung. Mehrere Rollen können in einer Software stecken.
Vor den Nachrichtendaten muss 354 stehen. Das abschließende 250 bestätigt die Verantwortungsübernahme, nicht das Lesen.
Der MTA sucht für die Empfängerdomain nach MX-Einträgen. Kleinere Werte werden bevorzugt; danach wird die IP-Adresse des Servernamens gesucht.
TLS schützt einzelne Verbindungen. SMTP-Auth prüft die Identität bei der Anmeldung und beweist nicht die Verfasserschaft.
Die anfangs ungeschützte Aushandlung kann gestört werden. Korrekt verpflichtendes TLS verhindert dann den Versand ohne TLS.
Eine E-Mail an eine Buchausleihe weiterleiten: ausgedachte Daten
- 1Aufgabe: Eine E-Mail geht an [email protected]. Beide vom DNS gemeldeten Mailserver sind nutzbar. Welcher wird bevorzugt?
- 2Die Empfängerdomain hinter @ lautet lesehaus.example.
- 3Die MX-Einträge nennen mx-west.lesehaus.example mit Wert 40 und mx-ost.lesehaus.example mit Wert 10.
- 4Der kleinere Wert wird bevorzugt: 10 ist kleiner als 40.
- 5Der MTA sucht die IP-Adresse von mx-ost.lesehaus.example und versucht dieses Ziel zuerst.
Fehler finden
Fehler in Zeile 4Die letzte Zeile verwechselt Annahme und Lesen. Richtig: Das abschließende 250 ist eine Annahmebestätigung. Der Server übernimmt die Verantwortung für die Nachricht; ob der Empfänger sie gelesen hat, wird damit nicht bestätigt.
Lückentext
Eine bereits gespeicherte E-Mail wird im Mailprogramm mit aus dem Postfach gelesen. Bei zwei nutzbaren MX-Einträgen mit den Werten 12 und 28 wird der Server mit Wert bevorzugt. Ein korrekt eingerichteter Client verlangt für einen Versand mit STARTTLS erfolgreiches TLS. Kommt kein TLS zustande, muss er diesen Versand .