Informatik

SMTP verstehen: E-Mail-Versand Schritt für Schritt

SMTP verstehen: E-Mail-Versand Schritt für Schritt
SMTP verstehen: E-Mail-Versand Schritt für Schritt
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

SMTP ist das Protokoll, mit dem E-Mails eingespeist und zwischen Mailservern weitertransportiert werden. Es bringt eine Nachricht bis zum zuständigen Zielserver. Für den späteren Abruf aus dem Postfach sind dagegen Protokolle wie IMAP oder POP zuständig.

Auf dieser Seite verfolgst du den Weg einer Nachricht, liest einen vollständigen SMTP-Dialog und deutest typische Antworten. Außerdem lernst du, was DNS, MX-Records, TLS und Authentifizierung dabei leisten – und was nicht.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Senden ist nicht Abrufen

Wenn du in einem Mailprogramm auf Senden klickst, verschwindet die Nachricht nicht direkt im Programm der Empfängerin oder des Empfängers. Zunächst übergibt dein Mailprogramm sie an einen Mailserver. Von dort wird sie über einen oder mehrere Server bis zum Zielpostfach transportiert.

Definition

SMTP

Das Simple Mail Transfer Protocol ist ein textbasiertes Anwendungsprotokoll für den Transport von E-Mails. Ein SMTP-Client sendet Befehle; der SMTP-Server antwortet mit dreistelligen Codes. Die Verbindung läuft üblicherweise über TCP.

SMTP arbeitet dabei wie ein Transportdienst: Es nimmt eine Sendung an und schiebt sie zum nächsten zuständigen System. IMAP oder POP übernehmen eine andere Aufgabe: Mit ihnen greift ein Mailprogramm auf die bereits im Zielpostfach liegende Nachricht zu.

AufgabeTypisches Protokoll
Nachricht einspeisen und zwischen Servern transportierenSMTP
Nachrichten auf dem Server verwalten und synchronisierenIMAP
Nachrichten aus einem Postfach abrufenPOP
Merke

SMTP transportiert E-Mails zum Zielserver. IMAP oder POP ermöglichen den Zugriff auf das dortige Postfach.

Teste dich
Frage 1 von 1LeichtEine Nachricht liegt bereits im Zielpostfach und soll im Mailprogramm angezeigt werden. Welche Zuordnung stimmt?
Lösung: IMAP oder POP übernimmt den Zugriff auf das Postfach. — Trenne Transport und Abruf: SMTP bringt die Nachricht zum Zielserver; IMAP oder POP verbindet das Mailprogramm mit dem dortigen Postfach.
Vom Mailprogramm zum Zielpostfach

Am Transport sind mehrere Rollen beteiligt. Sie können in getrennten Programmen laufen oder von derselben Serversoftware übernommen werden.

  1. Der MUA (Mail User Agent) ist dein Mailprogramm. Er erstellt die Nachricht.
  2. Der MSA (Mail Submission Agent) nimmt die Nachricht eines berechtigten Nutzers zur Einspeisung an. Hier sind Anmeldung und sichere Übertragung besonders wichtig.
  3. Ein MTA (Mail Transfer Agent) transportiert die Nachricht zum nächsten Mailserver.
  4. Der empfangende MTA übergibt die Nachricht am Ziel an einen MDA (Mail Delivery Agent).
  5. Der MDA legt die Nachricht im Postfach ab. Erst danach greift der MUA der empfangenden Person etwa über IMAP oder POP darauf zu.
Beispiel

Lea sendet eine E-Mail von [email protected] an [email protected].

Leas Mailprogramm übergibt die Nachricht an den MSA ihres Anbieters. Dessen MTA betrachtet die Domain hinter Amirs @, also verein.example. Über DNS ermittelt er den zuständigen Mailserver dieser Domain und baut zu ihm eine SMTP-Verbindung auf. Am Ziel legt ein MDA die Nachricht in Amirs Postfach. Amirs Mailprogramm kann sie anschließend über IMAP oder POP anzeigen.

Wie DNS und MX-Records helfen

DNS ist der verteilte Verzeichnisdienst für Domainnamen. Für den E-Mail-Transport fragt der sendende MTA nach den MX-Records (Mail Exchange Records) der Empfängerdomain.

Ein MX-Record nennt einen Mailserver und eine Prioritätszahl. Gibt es mehrere Einträge, werden kleinere Zahlen bevorzugt. Ist der bevorzugte Server nicht erreichbar, kann der sendende MTA einen weiteren Eintrag versuchen. Der MX-Record bestimmt damit das nächste Ziel – nicht den Inhalt der Nachricht.

Beispiel

Für verein.example liefert DNS diese beiden MX-Einträge:

PrioritätMailserver
10mail1.verein.example
20mail2.verein.example

Der sendende MTA versucht zuerst mail1.verein.example, weil 10 die kleinere Zahl ist. Scheitert der Versuch vorübergehend, kann er mail2.verein.example ansprechen.

Teste dich
Frage 1 von 2LeichtWelche Information sucht ein sendender MTA in den MX-Records?
Lösung: Den zuständigen Mailserver der Empfängerdomain — MX-Records ordnen einer Domain die für E-Mail zuständigen Server zu.
Frage 2 von 2MittelEine Domain hat MX-Einträge mit den Prioritäten 5 und 30. Welcher wird zuerst versucht?
Lösung: Der Eintrag mit Priorität 5 — Der sendende MTA sortiert MX-Einträge nach ihrer Prioritätszahl und bevorzugt kleinere Werte.
Ein SMTP-Dialog Schritt für Schritt

SMTP ist ein Frage-Antwort-Protokoll. Der Client sendet jeweils einen Befehl, der Server bestätigt ihn oder meldet einen Fehler. Die folgende Sitzung zeigt eine erfolgreiche Übertragung.

text S: 220 mail.verein.example SMTP bereit C: EHLO mail.schule.example S: 250-mail.verein.example S: 250-SIZE 20000000 S: 250 STARTTLS C: MAIL FROM:<[email protected]> S: 250 Absender akzeptiert C: RCPT TO:<[email protected]> S: 250 Empfänger akzeptiert C: DATA S: 354 Nachricht eingeben; Ende mit einer einzelnen Punktzeile C: From: Lea <[email protected]> C: To: Amir <[email protected]> C: Subject: Treffen der AG C: C: Hallo Amir, C: beginnt die AG morgen um 15 Uhr? C: Viele Grüße C: Lea C: . S: 250 Nachricht angenommen C: QUIT S: 221 Verbindung wird geschlossen

Der Ablauf hat eine feste Logik:

  1. 220 zeigt, dass der Server bereit ist.
  2. Mit EHLO stellt sich der Client vor und fordert zugleich die Liste der ESMTP-Erweiterungen an.
  3. MAIL FROM legt den Absender des SMTP-Umschlags fest.
  4. RCPT TO nennt einen Umschlagempfänger. Für mehrere Empfänger wird der Befehl wiederholt.
  5. DATA kündigt Header und Nachrichtentext an. Der Server fordert diese Daten mit 354 an.
  6. Eine leere Zeile trennt den Header vom Nachrichtentext.
  7. Eine Zeile, die nur aus einem Punkt besteht, beendet die Nachrichtendaten.
  8. 250 nach der Punktzeile bestätigt die Annahme durch diesen Server.
  9. QUIT beendet die Sitzung geordnet; 221 bestätigt das Schließen.
Gut zu wissen

Beginnt eine echte Inhaltszeile mit einem Punkt, setzt der SMTP-Client einen zusätzlichen Punkt davor. Der Server entfernt ihn wieder. Dieses Dot-Stuffing verhindert, dass eine Inhaltszeile versehentlich als Nachrichtenende gilt.

Lückentext

Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.

Der Client stellt sich mit ` vor. Mit nennt er den Umschlagabsender und mit den Empfänger. Erst nach folgen Header und Nachrichtentext. Eine einzelne ` beendet die Nachrichtendaten.

Lösungen: Lücke 1: EHLO; Lücke 2: MAIL FROM; Lücke 3: RCPT TO; Lücke 4: DATA; Lücke 5: Punktzeile. Prüfe die Transaktion als Reihenfolge: begrüßen, Umschlagabsender, Umschlagempfänger, Daten ankündigen, Nachricht senden und mit der Punktzeile abschließen.
Umschlag und Nachricht auseinanderhalten

Eine E-Mail besitzt zwei Ebenen, die leicht verwechselt werden:

  • Der SMTP-Umschlag enthält die Transportadressen aus MAIL FROM und RCPT TO. Mailserver verwenden diese Angaben für Transport, Fehlerbehandlung und Zustellung.
  • Die Nachricht besteht aus Header und Body. Im Header stehen zum Beispiel From:, To: und Subject:; nach einer Leerzeile folgt der Body mit dem eigentlichen Text.

Umschlag- und Headeradressen dürfen voneinander abweichen. Das ist nicht automatisch ein Angriff: Bei Mailinglisten, Weiterleitungen oder Fehlermeldungen kann die Abweichung technisch nötig sein. Sie zeigt aber, warum die sichtbare From:-Zeile allein die Identität des Absenders nicht beweist.

Beispiel

Eine Mailingliste kann im SMTP-Umschlag eine eigene Rücksendeadresse verwenden, während im sichtbaren Header weiterhin die Autorin der Nachricht steht. Der MTA bearbeitet den Umschlag; das Mailprogramm zeigt vor allem den Header an.

Teste dich
Frage 1 von 2MittelDer Server antwortet nach der Punktzeile mit 250 Nachricht angenommen. Was ist damit sicher bestätigt?
Lösung: Dieser Server hat die Nachricht für die weitere Verarbeitung angenommen. — Das 250 gehört zu genau diesem Übertragungsschritt. Spätere Weiterleitung, Ablage und Abruf sind eigene Schritte.
Frage 2 von 2SchwerIm Header steht eine andere Absenderadresse als in MAIL FROM. Welche Bewertung ist fachlich richtig?
Lösung: Die Felder haben verschiedene Aufgaben; die Abweichung kann legitim sein, beweist aber keine Absenderidentität. — Beurteile zuerst die Funktion: MAIL FROM gehört zum Transportumschlag, From: zur sichtbaren Nachricht. Aus einer Übereinstimmung oder Abweichung allein folgt noch kein sicherer Identitätsnachweis.
Antwortcodes richtig deuten

Der Text hinter einer Serverantwort kann unterschiedlich formuliert sein. Für den Client ist deshalb vor allem der dreistellige Code entscheidend. Schon die erste Ziffer zeigt die grundlegende Bedeutung.

KlasseBedeutungSinnvolle Reaktion
2xxAktion erfolgreich abgeschlossenMit dem nächsten Schritt fortfahren
3xxWeitere Angaben werden erwartetDie geforderten Daten senden
4xxVorübergehender FehlerSpäter erneut versuchen
5xxDauerhafter Fehler für diesen VersuchUrsache oder Eingabe ändern; nicht unverändert wiederholen

Wichtige Einzelcodes im Lernbeispiel sind:

  • 220: Der Server ist bereit.
  • 250: Die verlangte Aktion wurde erfolgreich abgeschlossen.
  • 354: Der Server erwartet nun die Nachrichtendaten.
  • 421: Der Dienst ist vorübergehend nicht verfügbar und schließt die Verbindung.
  • 451: Bei der Verarbeitung ist ein vorübergehender Fehler aufgetreten.
  • 550: Die angeforderte Mailbox ist nicht verfügbar, etwa weil der Empfänger unbekannt ist.
Beispiel

Nach RCPT TO:<[email protected]> antwortet der Server mit 550 No such user. Der Empfänger wurde dauerhaft abgelehnt. Der Client darf nicht einfach mit DATA weitermachen. Bei 451 Temporary local problem wäre dagegen ein späterer, unveränderter Versuch sinnvoll.

Merke

Ein 4xx-Code sagt: später noch einmal versuchen. Ein 5xx-Code sagt: unverändert wird es nicht funktionieren.

Teste dich
Frage 1 von 3LeichtWelche Antwort fordert den Client auf, jetzt Header und Nachrichtentext zu senden?
Lösung: 354DATA kündigt die Nachricht an; erst die Zwischenantwort 354 fordert den Client auf, die Daten zu übertragen.
Frage 2 von 3MittelNach RCPT TO kommt 451 Temporary local problem. Was ist die passende Reaktion?
Lösung: Die Zustellung später erneut versuchen — Die erste Ziffer 4 kennzeichnet einen vorübergehenden Fehler. Ein späterer Versuch kann ohne Änderung erfolgreich sein.
Frage 3 von 3SchwerNach RCPT TO kommt 550 No such user. Welche Diagnose passt am besten?
Lösung: Der Empfänger wurde dauerhaft abgelehnt; Adresse oder Ziel müssen geprüft werden. — Ein 5xx-Code bezeichnet einen dauerhaften Fehler für die aktuelle Anforderung. Unverändertes Wiederholen behebt ihn nicht.
ESMTP, TLS und Authentifizierung

Das ursprüngliche SMTP war für eine kleinere, vertrauensvollere Netzwelt entworfen. Es bot weder eine allgemeine Benutzeranmeldung noch automatisch eine verschlüsselte Verbindung. ESMTP erweitert SMTP deshalb um zusätzliche Fähigkeiten.

Ein ESMTP-Client beginnt mit EHLO. Der Server nennt daraufhin Erweiterungen, die er unterstützt, zum Beispiel:

  • SIZE für eine angekündigte maximale Nachrichtengröße,
  • 8BITMIME für 8-Bit-Inhalte,
  • STARTTLS für den Wechsel zu einer TLS-geschützten Verbindung,
  • AUTH für die Anmeldung eines Clients.

Die drei wichtigen Ports

PortTypische AufgabeBeginn der Verschlüsselung
25Transport zwischen öffentlich erreichbaren MailservernTLS kann mit STARTTLS ausgehandelt werden
587Einlieferung einer Nachricht beim MSAmeist zunächst SMTP, dann STARTTLS
465Einlieferung einer Nachricht beim MSA mit implizitem TLSTLS-Handshake beginnt sofort

Bei STARTTLS beginnt die Verbindung zunächst im Klartext. Nach erfolgreichem TLS-Handshake wird der SMTP-Zustand zurückgesetzt; der Client sendet erneut EHLO. Nur so handeln beide Seiten die Fähigkeiten innerhalb der geschützten Verbindung neu aus.

Was die Schutzmechanismen leisten

  • TLS kann Vertraulichkeit und Integrität auf einer einzelnen Verbindung zwischen zwei beteiligten Systemen schützen.
  • AUTH kann gegenüber dem Submission-Server nachweisen, mit welchem Konto sich der sendende Client anmeldet.
  • Eine verpflichtende TLS-Prüfung verhindert, dass ein Client unbemerkt auf eine unverschlüsselte Übertragung zurückfällt.

Was sie nicht automatisch leisten

  • TLS auf einer Teilstrecke macht die Nachricht nicht automatisch auf dem gesamten Weg Ende-zu-Ende-verschlüsselt.
  • Eine erfolgreiche SMTP-Anmeldung beweist nicht automatisch, dass die sichtbare From:-Adresse echt ist oder wer den Text verfasst hat.
  • Bei optionalem STARTTLS kann ein aktiver Angreifer versuchen, das Angebot aus der ungeschützten Aushandlung zu entfernen. Deshalb muss sichere Konfiguration TLS tatsächlich verlangen und Zertifikate prüfen.
  • Das ursprüngliche SMTP erlaubt frei angegebene Umschlagadressen. Ohne passende Regeln könnten offene Relays für Spam missbraucht werden.
Teste dich
Frage 1 von 3LeichtWas signalisiert ein Client mit EHLO?
Lösung: Er möchte ESMTP nutzen und die unterstützten Erweiterungen erfahren. — Der Server antwortet auf EHLO mit seinen ESMTP-Fähigkeiten, etwa SIZE, STARTTLS oder AUTH.
Frage 2 von 3MittelWas geschieht bei einer Verbindung für Submission über Port 465 zuerst?
Lösung: Der TLS-Handshake beginnt sofort. — Bei implizitem TLS wird zuerst die geschützte Verbindung aufgebaut; danach läuft SMTP innerhalb dieser Verbindung.
Frage 3 von 3SchwerEine SMTP-Sitzung zu einem Server war mit TLS geschützt. Welche Schlussfolgerung ist zulässig?
Lösung: Diese eine Verbindung konnte geschützt sein; daraus folgt keine Ende-zu-Ende-Verschlüsselung der gesamten E-Mail. — Unterscheide Transportstreckenschutz, Kontoanmeldung und Absenderidentität. Diese Sicherheitsziele sind nicht dasselbe.
Fehler im Nachrichtenweg diagnostizieren

Bei einer Störung hilft es, den Nachrichtenweg schrittweise zu prüfen. Ordne das Symptom der passenden Aufgabe zu.

BeobachtungWahrscheinlicher BereichBegründung
Für die Empfängerdomain wird kein zuständiger Zielserver gefunden.DNS/MX-RoutingDer sendende MTA kann sein nächstes Ziel nicht bestimmen.
Eine TCP-Verbindung zum Zielserver kommt nicht zustande.Transport/ErreichbarkeitNoch bevor SMTP-Befehle ausgetauscht werden, scheitert die Verbindung.
Der Server antwortet auf RCPT TO mit 550.SMTP/EmpfängerprüfungDer Server lehnt diesen Umschlagempfänger dauerhaft ab.
Der Server antwortet mit 451.SMTP/verarbeitender ServerEin vorübergehender Fehler erlaubt einen späteren Versuch.
Das Mailprogramm kann eine zugestellte Nachricht nicht anzeigen.PostfachzugriffSMTP-Transport kann beendet sein; IMAP oder POP beziehungsweise die Anmeldung ist zu prüfen.
Beispiel

Nora kann eine Nachricht absenden. Der MSA meldet 250, doch der nächste MTA findet für die Empfängerdomain keinen geeigneten Mailserver. Die Störung liegt nicht am Befehl DATA, sondern bei der Ermittlung des nächsten Ziels über DNS und MX. Ein 250 des ersten Servers war nur die Annahme für den nächsten Verarbeitungsschritt.

Teste dich
Frage 1 von 1SchwerEin Mailprogramm meldet eine erfolgreiche Übergabe an den eigenen MSA. Später scheitert die Zustellung, weil kein Zielserver für die Empfängerdomain ermittelt werden kann. Welche Diagnose passt?
Lösung: Die erste SMTP-Annahme war erfolgreich, aber das spätere DNS/MX-Routing ist gescheitert. — Verfolge die Stationen getrennt: Annahme durch den MSA, Ermittlung des Zielservers, SMTP-Transport, Ablage und Abruf sind verschiedene Schritte.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • SMTP-Transport
    • Weg
      • MUA → MSA → MTA → MDA → Postfach
      • DNS und MX bestimmen den Zielserver
    • Dialog
      • EHLO → MAIL FROM → RCPT TO → DATA → Punkt → QUIT
      • 2xx Erfolg, 3xx weitere Daten, 4xx temporär, 5xx dauerhaft
    • Nachricht
      • Umschlag steuert den Transport
      • Header und Body bilden den Inhalt
    • Sicherheit
      • TLS schützt eine Verbindung
      • AUTH meldet den Client beim MSA an

SMTP organisiert also einen mehrstufigen Transport. Du kannst eine Störung nur zuverlässig deuten, wenn du fragst: Bei welcher Station trat sie auf, welcher Befehl lief gerade, und was bestätigt der Antwortcode tatsächlich?

Abschluss-Check
Teste dich
Frage 1 von 5LeichtWelches Protokoll gehört hauptsächlich zum Versand und Transport von E-Mails?
Lösung: SMTP — SMTP überträgt E-Mails zum Zielserver; IMAP und POP dienen dem späteren Zugriff.
Frage 2 von 5MittelOrdne den Ablauf richtig: Was geschieht nach einem akzeptierten RCPT TO normalerweise als Nächstes?
Lösung: Der Client sendet DATA und wartet auf 354, bevor er die Nachricht überträgt. — Erst Umschlagabsender und Empfänger festlegen, dann mit DATA die Übertragung von Header und Body ankündigen.
Frage 3 von 5MittelEin Server antwortet mit 450 Mailbox temporarily unavailable. Was folgt aus der ersten Ziffer?
Lösung: Der Fehler ist vorübergehend; ein späterer Versuch kann erfolgreich sein. — Die Klasse 4xx kennzeichnet einen temporären Fehler. Der Client soll nicht sofort aufgeben, sondern später erneut versuchen.
Frage 4 von 5SchwerEine Nachricht wurde über Port 587 mit STARTTLS und AUTH an den MSA übergeben. Was ist die genaueste Aussage?
Lösung: Die Übergabeverbindung und das angemeldete Konto können geprüft sein; vollständige Zustellung, Lesen und Ende-zu-Ende-Schutz folgen daraus nicht. — Prüfe jede Zusicherung getrennt: TLS schützt eine Verbindung, AUTH bestätigt eine Anmeldung, SMTP-Antworten gelten für einzelne Transportschritte.
Frage 5 von 5SchwerDer bevorzugte MX-Server mit Priorität 10 ist vorübergehend nicht erreichbar; ein zweiter hat Priorität 20. Was kann der sendende MTA tun?
Lösung: Den zweiten MX-Server versuchen und bei Bedarf später erneut zustellen. — Kleinere Prioritätszahlen werden zuerst versucht. Fällt das bevorzugte Ziel aus, kann ein weiterer MX-Eintrag die zuverlässige Übertragung ermöglichen.

Passend dazu