Jeder, der sich schon einmal mit der Funktionsweise der E-Mail-Übertragung auseinandergesetzt hat, wird mit großer Sicherheit über den Begriff “SMTP” gestolpert sein. Denn: Ohne SMTP wäre die E-Mail-Übertragung schlichtweg nicht möglich.
Das Simple Mail Transfer Protocol (SMTP) ist so etwas wie der Postbote für die elektronische Post – und das schon seit 1982! Das Netzwerkprotokoll ist für das Versenden und Weiterleiten von E-Mails zuständig, indem es die Kommunikation zwischen den Computern in einem Netzwerk regelt.
Als Standardprotokoll für den Versand von E-Mails arbeitet SMTP unsichtbar im Hintergrund, weshalb Sie als Endverbraucher meist keine direkte Interaktion mit dem Netzwerkprotokoll eingehen. Es kann allerdings vorkommen, dass Sie das Simple Mail Transfer Protocol manuell einstellen müssen, falls Ihr E-Mail-Programm dies bei der Kontoeinrichtung nicht von selbst macht.
Es gibt mehrere Arten von SMTP-Servern, die an dem Prozess der E-Mail-Übertragung beteiligt sind: Der Postausgangsserver des Absenders, ein oder mehrere externe Weiterleitungsserver und der Posteingangsserver des Empfängers. Doch wie läuft dieser Prozess eigentlich genau ab?
So funktioniert das SMTP-Verfahren
- Zunächst wird die gesendete E-Mail im Laufe einer SMTP-Session auf den Postausgangsserver (SMTP-Server) des jeweiligen E-Mail-Providers geladen.
- Der SMTP-Server kontaktiert dann den DNS-Server, damit dieser die IP-Adresse des Ziel-SMTP-Servers heraussucht.
- Der SMTP-Server schickt die Mail in Form von kleinen Datenpaketen zum Ziel-SMTP-Server. Die Pakete passieren dabei einen oder mehrere Mail Transfer Agents auf externen SMTP-Servern, wobei jeder Weiterleitungsvorgang gemäß dem Simple Mail Transfer Protocol abläuft.
- Der Posteingangsserver des Empfängers (Ziel-SMTP-Server) legt die Mail vorübergehend im Nachrichtenspeicher ab.
Anschließend übernehmen die Netzwerkprotokolle IMAP oder POP3 die Arbeit und laden die E-Mail herunter.
Falls der Posteingangsserver des Empfängers vorübergehend nicht erreichbar ist, versucht der zuständige SMTP-Server in regelmäßigen Abständen, die E-Mail zuzustellen. Dies macht er automatisch, bis die E-Mail erfolgreich beim Empfänger ankommt oder als unzustellbar an den Absender zurückgeschickt wird.
Jeder E-Mail-Provider verwendet eine spezifische SMTP-Server-Adresse (z.B. smtp.web.de, smtp.gmail.com) und einen bestimmten SMTP-Port (üblicherweise 587). Die meisten Menschen nutzen die SMTP-Server der E-Mail-Provider und Hosting-Anbieter. Diese überzeugen mit starken Spamfiltern, besitzen jedoch gerade dann, wenn es sich um kostenfreie Angebote handelt, Limitationen bezüglich der Anhang-Größe und des Postfach-Speicherplatzes.
Wer hohe Anforderungen an die Performance des SMTP-Servers stellt, kann diesen bei einem spezialisierten Anbieter mieten oder sich einen eigenen SMTP-Server einrichten, was jedoch mit Mehrkosten und Mehraufwand verbunden ist.
So läuft eine SMTP-Session ab
Im ersten Schritt des SMTP-Verfahrens interagiert der SMTP-Client des Absenders mit dem SMTP-Server, um den Sendeprozess der E-Mail einzuleiten. Während einer solchen Session sendet der Client eine Abfolge von Kommandos aus und erhält vom Server Antworten in Form von Statuscodes.
Um sich das besser vorstellen zu können, haben wir Ihnen im Folgenden eine Übersicht an möglichen Kommandos und Statuscodes zusammengestellt.
SMTP-Kommandos und ihre Bedeutung
HELO | Der Client startet die Session. |
MAIL FROM | Der Client nennt den E-Mail-Absender. |
RCPT TO | Der Client nennt den E-Mail-Empfänger. |
DATA | Der Client beginnt mit der E-Mail-Übertragung. |
RSET | Der Client bricht die Übertragung ab, hält aber die Verbindung zum Server aufrecht. |
VRFY/EXPN | Der Client überprüft, ob ein Postfach für die E-Mail-Übertragung verfügbar ist. |
NOOP | Der Client fordert eine Antwort vom Server, damit die Verbindung nicht wegen “Time-Out” getrennt wird. |
QUIT | Der Client beendet die Session. |
Statuscodes und ihre Bedeutung
Der Postausgangsserver antwortet auf diese Kommandos mit dreistelligen Codes inklusive einer Klartextmeldung in Englisch.
Der Server hat das Kommando erfolgreich ausgeführt | |
220 | Der Server ist bereit für die SMTP-Session. |
221 | Der Server beendet die Verbindung. |
250 | OK – das Kommando wurde ausgeführt. |
251 | OK – die Mail wird weitergeleitet. |
Der Server benötigt für die Ausführung weitere Informationen | |
354 | Der Server startet den Mailempfang. |
Der Server hat einen temporären Fehler festgestellt | |
421 | Die Verbindung wird beendet, da der Server nicht verfügbar ist. |
452 | Der Vorgang wurde abgebrochen, da zu wenig Systemspeicher vorhanden ist. |
Der Server hat einen permanenten Fehler festgestellt, das Kommando wird nicht ausgeführt | |
503 | Die Kommandoreihenfolge ist unzulässig. |
530 | Der Zugriff wurde verweigert. |
554 | Die Übertragung ist fehlgeschlagen. |
Beispielhafte SMTP-Session
Server: | 220 smtp.beispiel.de | Der SMTP-Server meldet sich nach dem Verbindungsaufbau. |
Client: | HELO relay.beispiel.de | Der SMTP-Client meldet sich mit seinem Rechnernamen an. |
Server: | 250 smtp.beispiel.de, Guten Tag | Der Server bestätigt die Anmeldung. |
Client: | MAIL FROM: <hans@itp-berlin.de> | Der Client gibt die Absender-Adresse an. |
Server: | 250 OK | Der Server bestätigt. |
Client: | RCPT TO: <julia_rau@t-online.de> | Der Client gibt die Empfänger-Adresse an. |
Server: | 250 OK | Der Server bestätigt. |
Client: | DATA | Der Client beginnt mit der Übertragung. |
Server: | 354 End data with <CR><LF>.<CR><LF> | Der Server startet den Empfang und gibt an, dass der Text mit einem Punkt enden soll. |
Client: | From: <hans@itp-berlin.de>
To: <julia_rau@t-online.de> Date: Mittwoch, 10. Juni 2020 14:36:43 Subject: Ihre Anfrage Hallo Frau Rau, |
Der Client gibt den Text durch und beendet ihn wie gewünscht mit einem Punkt. |
Server: | 250 OK: queued as 12476 | Der Server bestätigt den Empfang der E-Mail und nimmt diese in die Warteschlange auf. |
Client: | QUIT | Der Client beendet die Session. |
Server: | 221 Auf Wiedersehen | Der Server beendet die Verbindung. |
Die Nachteile des Standardprotokolls SMTP
So nützlich wie das Simple Mail Transfer Protocol auch ist, besitzt es – zumindest in seiner ursprünglichen Form – ein paar Nachteile.
Einerseits wird beim Versenden einer E-Mail per SMTP keine verwertbare Versandbestätigung ausgestellt. Geht die E-Mail verloren, werden weder Sender noch Empfänger darüber informiert. Wenn die Nachricht nicht zugestellt werden kann, gibt es keine standardisierte Fehlermeldung. Das bedeutet, dass Sie wahrscheinlich nur eine englischsprachige Meldung samt Header der fehlgeschlagenen Nachricht zurückerhalten. Die genaue Ursache für die Nicht-Zustellung (Ist das Postfach überfüllt? Ist die Adresse falsch?) lässt sich daraus nur schwer ermitteln.
Andererseits wird der Absender beim Verbindungsaufbau zwischen SMTP-Client und SMTP-Server nicht authentifiziert. Dadurch können Absender eine beliebige Adresse angeben, was zum massenhaften Versenden von Spam verleitet. Da die Urheber der Spam-Mails nicht zurückverfolgt werden können und außerdem häufig die Fake-Adressen wechseln, um Spam-Filter zu umgehen, wähnen sie sich in Sicherheit.
Mittlerweile gibt es natürlich viele Verfahren, um derartige Missbräuche auf offenen SMTP-Servern zu unterbinden – diese sind jedoch optional und nicht zwangsweise auf jedem Server aktiviert. E-Mail-Provider nutzen heutzutage den SMTP-Port 587 statt den älteren Port 25 als Standard für die E-Mail-Übertragung, da dieser als viel sicherer gilt und ausschließlich Mails von authentifizierten Benutzern durchlässt.
Extended Simple Mail Transfer Protocol
1995 brachte man als Reaktion auf das weltweite Spam-Problem die Erweiterung ESMTP heraus, die das ursprüngliche Netzwerkprotokoll um weitere Kommandos ergänzt. Hierdurch wurden viele neue Funktionen möglich, wie z.B. die Authentifizierung des Absenders, die Verschlüsselung von E-Mails per TLS, das Anhängen von Multimedia-Dateien, der gleichzeitige Versand an mehrere Empfänger, der Erhalt standardisierter Fehlermeldungen bei unzustellbaren Nachrichten und die Beschränkung der E-Mail-Größe gemäß den Vorgaben des Servers.
Um von diesen zusätzlichen Funktionen zu profitieren, sollten Sie sicherstellen, dass die Erweiterung von Ihrem SMTP-Server (bzw. von dem SMTP-Server Ihres E-Mail-Providers) unterstützt wird.
Im Folgenden erhalten Sie einen Überblick über mögliche ESMTP-Kommandos.
EHLO | Der Client leitet die Session ein und teilt dem Server mit, dass er die ESMTP-Erweiterungen beherrscht. Unterstützt der Server kein ESMTP, muss der Client auf SMTP zurückgreifen. |
SIZE | Der Client fordert den Server auf, die maximal zugelassene E-Mail-Größe in Byte anzugeben. |
STARTTLS | Der Client fragt, ob der Server die TLS-Verschlüsselung beherrscht. |
VRFY | Der Client bittet den Server, den Benutzernamen und die Absender-Adresse zu verifizieren. |
Noch einmal zusammengefasst…
- SMTP ist ein Internetprotokoll, das E-Mails in das World Wide Web einspeist und sie über mehrere Stationen bis zum Empfänger weiterleitet.
- Jede Interaktion zwischen Clients, Servern und Mail Transfer Agents läuft nach den Regeln im Protokoll ab.
- Die SMTP-Server können über Statuscodes und Kommandos mit Clients sowie mit anderen Servern kommunizieren.
- Das erweiterte Netzwerkprotokoll ESMTP behebt die Schwachstellen von SMTP und verhindert Spam-Mails von unbestätigten Absendern.