Checkmark on Circle.png

SMTP

Aus KGS-Wiki

SMTP (Simple Mail Transfer Protocol) ist ein Netzwerkprotokoll für den Versand von E-Mails.

Der Kommunikationsprozess beim Versand einer E-Mail besteht aus drei Teilen:

  1. Einer Begrüßung (Handshake) zwischen Client und Server.
  2. Dem eigentlichen Versand der Nachricht
  3. Einer Verabschiedung, um die Verbindung zu schließen

Das folgende Sequenzdiagramm stellt den Ablauf der Kommunikation dar:

sequenceDiagram participant A as Client participant B as Server A->>B: stellt Verbindung her B->>A: 220 Willkommen bei mustermail.de A->>B: HELO max.mustermann B->>A: 250 Hallo max.mustermann A->>B: MAIL FROM: max.mustermann@mustermail.de B->>A: 250 OK A->>B: RCPT TO: erika.gabler@mustermail.de B->>A: 250 OK A->>B: DATA B->>A: 354 Schick mir den Inhalt der Mail,<br>beende diese mit einem . auf einer Extra-Zeile. note over A, B: Die Daten der E-Mail können sehr umfangreich sein,<br>sodass es für den Client Sinn ergibt, diese in mehreren Anfragen abzusenden.<br>Der Server akzeptiert schweigend alle Nachrichten des Clients,<br>bis ihm ein einzelner Punkt in einer Zeile gesendet wird.<br>Dies ist das Signal für das Ende der Nachricht. A->>+B: From: Max Mustermann A->>B: To: Erika Gabler A->>B: Subject: Urkunden sind abgeschickt! A->>B: Erika, mein Mausepups! A->>B: Ich habe unsere Geburtsurkunden ans Standesamt geschickt! A->>B: Unserer Hochzeit steht nichts mehr im Wege! A->>B: Bald bist du auch eine Mustermann! A->>B: In Liebe, A->>B: Dein Maxibär A->>B: . note over A, B: Dieser . signalisiert dem Server das Ende der Nachricht,<br>deswegen sendet er eine bestätigende Antwort. B->>-A: 250 Die Mail wird versendet A->>B: QUIT B->>A: 221 Auf Wiedersehen

Schlüsselworte für den Client

Der Client kann hierbei folgende Schlüsselworte verwenden:

Schlüsselwort Erläuterung
Begrüßung
HELO Begrüßung und Nennung des eigenen Namens
EHLO Extended Hello, veranlasst den Server, mit der Begrüßung eine Liste der verfügbaren Kommandos mitzuschicken
AUTH Startet eine Authentifizierung des Benutzys
STARTTLS Startet eine sichere Verbidung mittels TLS
MAIL FROM Teilt dem Server die E-Mail-Adresse des Absenders mit
RCPT TO Teilt dem Server mit, für wen eine E-Mail bestimmt ist (engl. Recipient: Empfänger)
DATA Teilt dem Server mit, dass nun die Inhaltsdaten der E-Mail folgen
Verabschiedung
QUIT Weist den Server an, die Verbindung zu beenden

Statuscodes des Servers

Der Server reagiert auf jede Anfrage, auch schon auf das Herstellen einer Verbindung, mit einem Statuscode. Die häufigsten Statuscodes sind diese:

Statuscode Erläuterung
220 Der Server ist bereit, mit dem Client zu kommunizieren
221 Der Server beendet die Verbindung
250 OK
354 Der Server ist bereit, mehrere Anfragen mit E-Mail-Inhaltsdaten anzunehmen
530 Authentifizierung erforderlich
550 Fehler: Der Server kann oder will die E-Mail so nicht weiterverarbeiten

Sicherheit

Der SMTP-Server von web.de verweigert den Versand einer E-Mail.

SMTP an sich ist nicht verschlüsselt, sodass der Versand von E-Mails prinzipiell von jedy mitgelesen werden kann. De facto verweigern aber die meisten Mailserver das Schlüsselwort MAIL und verlangen eine Verschlüsselung mittels TLS.

Einfaches SMTP funktioniert ohne jede Authentifizierung, d.h. jedy kann sich als jedy beliebigy Absendy ausgeben und E-Mails verschicken. Dies hat historische Gründe: SMTP wurde 1982 definiert, als das Internet noch aus einer überschaubaren Handvoll von Rechnern bestand und es noch keine Notwendigkeit für derartige Schutzmechanismen gab. Inzwischen gestatten nur noch wenige Mailserver den unauthentifizierten Versand von E-Mails.