SMTP verstehen: E-Mail-Versand Schritt für Schritt
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.
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.
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.
| Aufgabe | Typisches Protokoll |
|---|---|
| Nachricht einspeisen und zwischen Servern transportieren | SMTP |
| Nachrichten auf dem Server verwalten und synchronisieren | IMAP |
| Nachrichten aus einem Postfach abrufen | POP |
SMTP transportiert E-Mails zum Zielserver. IMAP oder POP ermöglichen den Zugriff auf das dortige Postfach.
Vom Mailprogramm zum Zielpostfach
Am Transport sind mehrere Rollen beteiligt. Sie können in getrennten Programmen laufen oder von derselben Serversoftware übernommen werden.
- Der MUA (Mail User Agent) ist dein Mailprogramm. Er erstellt die Nachricht.
- Der MSA (Mail Submission Agent) nimmt die Nachricht eines berechtigten Nutzers zur Einspeisung an. Hier sind Anmeldung und sichere Übertragung besonders wichtig.
- Ein MTA (Mail Transfer Agent) transportiert die Nachricht zum nächsten Mailserver.
- Der empfangende MTA übergibt die Nachricht am Ziel an einen MDA (Mail Delivery Agent).
- Der MDA legt die Nachricht im Postfach ab. Erst danach greift der MUA der empfangenden Person etwa über IMAP oder POP darauf zu.
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.
Für verein.example liefert DNS diese beiden MX-Einträge:
| Priorität | Mailserver |
|---|---|
| 10 | mail1.verein.example |
| 20 | mail2.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.
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:
220zeigt, dass der Server bereit ist.- Mit
EHLOstellt sich der Client vor und fordert zugleich die Liste der ESMTP-Erweiterungen an. MAIL FROMlegt den Absender des SMTP-Umschlags fest.RCPT TOnennt einen Umschlagempfänger. Für mehrere Empfänger wird der Befehl wiederholt.DATAkündigt Header und Nachrichtentext an. Der Server fordert diese Daten mit354an.- Eine leere Zeile trennt den Header vom Nachrichtentext.
- Eine Zeile, die nur aus einem Punkt besteht, beendet die Nachrichtendaten.
250nach der Punktzeile bestätigt die Annahme durch diesen Server.QUITbeendet die Sitzung geordnet;221bestätigt das Schließen.
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.
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.
Umschlag und Nachricht auseinanderhalten
Eine E-Mail besitzt zwei Ebenen, die leicht verwechselt werden:
- Der SMTP-Umschlag enthält die Transportadressen aus
MAIL FROMundRCPT 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:undSubject:; 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.
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.
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.
| Klasse | Bedeutung | Sinnvolle Reaktion |
|---|---|---|
2xx | Aktion erfolgreich abgeschlossen | Mit dem nächsten Schritt fortfahren |
3xx | Weitere Angaben werden erwartet | Die geforderten Daten senden |
4xx | Vorübergehender Fehler | Später erneut versuchen |
5xx | Dauerhafter Fehler für diesen Versuch | Ursache 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.
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.
Ein 4xx-Code sagt: später noch einmal versuchen. Ein 5xx-Code sagt: unverändert wird es nicht funktionieren.
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:
SIZEfür eine angekündigte maximale Nachrichtengröße,8BITMIMEfür 8-Bit-Inhalte,STARTTLSfür den Wechsel zu einer TLS-geschützten Verbindung,AUTHfür die Anmeldung eines Clients.
Die drei wichtigen Ports
| Port | Typische Aufgabe | Beginn der Verschlüsselung |
|---|---|---|
25 | Transport zwischen öffentlich erreichbaren Mailservern | TLS kann mit STARTTLS ausgehandelt werden |
587 | Einlieferung einer Nachricht beim MSA | meist zunächst SMTP, dann STARTTLS |
465 | Einlieferung einer Nachricht beim MSA mit implizitem TLS | TLS-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
STARTTLSkann 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.
Fehler im Nachrichtenweg diagnostizieren
Bei einer Störung hilft es, den Nachrichtenweg schrittweise zu prüfen. Ordne das Symptom der passenden Aufgabe zu.
| Beobachtung | Wahrscheinlicher Bereich | Begründung |
|---|---|---|
| Für die Empfängerdomain wird kein zuständiger Zielserver gefunden. | DNS/MX-Routing | Der sendende MTA kann sein nächstes Ziel nicht bestimmen. |
| Eine TCP-Verbindung zum Zielserver kommt nicht zustande. | Transport/Erreichbarkeit | Noch bevor SMTP-Befehle ausgetauscht werden, scheitert die Verbindung. |
Der Server antwortet auf RCPT TO mit 550. | SMTP/Empfängerprüfung | Der Server lehnt diesen Umschlagempfänger dauerhaft ab. |
Der Server antwortet mit 451. | SMTP/verarbeitender Server | Ein vorübergehender Fehler erlaubt einen späteren Versuch. |
| Das Mailprogramm kann eine zugestellte Nachricht nicht anzeigen. | Postfachzugriff | SMTP-Transport kann beendet sein; IMAP oder POP beziehungsweise die Anmeldung ist zu prüfen. |
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.
Karteikasten
Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.
Alles auf einen Blick
- 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
- Weg
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?
Mit Google fortfahren