SMTP – Simple Mail Transfer Protocol
SMTP – Simple Mail Transfer Protocol
Aufbau einer E-Mail
Eine E-Mail besteht aus zwei Hauptbestandteilen:
- **Envelope (Umschlag)**
Der Umschlag enthält Informationen zur Zustellung, darunter den Absender und Empfänger. Diese Informationen werden während der Übertragung verwendet, sind aber nicht Teil des eigentlichen Nachrichteninhalts.
- **Header (Kopfzeilen)**
Enthält Metadaten wie den Absender, Empfänger, Betreff und Datum. Wichtige Felder sind: - `From:` – Absenderadresse - `To:` – Empfängeradresse - `Subject:` – Betreff der Nachricht - `Date:` – Zeitpunkt des Versands - `Message-ID:` – Eindeutige Kennung der Nachricht
- **Body (Nachrichtentext)**
Enthält den eigentlichen Inhalt der E-Mail, der in Klartext oder als HTML vorliegen kann. Anhänge werden über MIME codiert.
SMTP-Agenten
SMTP unterscheidet verschiedene Agenten, die an der Verarbeitung und Zustellung einer E-Mail beteiligt sind:
- **MTA (Mail Transfer Agent)**
Ein MTA empfängt, speichert und leitet E-Mails weiter. Er kommuniziert mit anderen MTAs über das SMTP-Protokoll und entscheidet anhand von DNS-Einträgen, wohin eine E-Mail zugestellt wird.
- **MDA (Mail Delivery Agent)**
Der MDA nimmt die E-Mail von einem MTA entgegen und speichert sie im Postfach des Empfängers ab. Der Zugriff darauf erfolgt über Protokolle wie IMAP oder POP3.
- **MUA (Mail User Agent)**
Ein MUA ist das Programm oder die Schnittstelle, mit der der Benutzer E-Mails sendet oder empfängt. Es interagiert mit dem MTA oder MDA.
- **MSA (Mail Submission Agent)**
Ein MSA nimmt E-Mails von einem MUA entgegen und leitet sie an einen MTA weiter. Er sorgt für eine korrekte Authentifizierung und Filterung der Nachrichten.
Ablauf einer SMTP-Kommunikation
Die Kommunikation zwischen den Agenten erfolgt über das SMTP-Protokoll, typischerweise über Port 25 für die Weiterleitung zwischen Servern und Port 587 für die Authentifizierung durch einen MSA.
1. **Verbindung aufbauen**
- Der sendende MTA öffnet eine TCP-Verbindung zum empfangenden MTA und sendet eine Begrüßung (`HELO` oder `EHLO`).
2. **Absender und Empfänger spezifizieren**
- Der sendende MTA teilt dem empfangenden MTA mit, wer der Absender (`MAIL FROM`) und wer der Empfänger (`RCPT TO`) ist.
3. **Nachricht senden**
- Die E-Mail wird mit dem Befehl `DATA` übertragen. - Nach Abschluss bestätigt der Empfänger mit `250 OK`, wenn die Nachricht angenommen wurde.
4. **Verbindung schließen**
- Der sendende MTA beendet die Sitzung mit `QUIT`.
Erweiterungen von SMTP
SMTP kann mit verschiedenen Erweiterungen ergänzt werden, um zusätzliche Funktionen bereitzustellen:
- **STARTTLS** – Ermöglicht verschlüsselte Verbindungen per TLS - **SMTP AUTH** – Authentifizierung des Absenders, erforderlich für das Senden über einen MSA - **DSN (Delivery Status Notification)** – Zustellungsbenachrichtigungen - **PIPELINING** – Erlaubt mehrere Befehle in einer Übertragung
Fazit
SMTP ist das zentrale Protokoll für den E-Mail-Versand. Es regelt den Austausch zwischen MTAs und definiert, wie E-Mails zwischen Systemen weitergeleitet werden. Die verschiedenen Agenten (MTA, MDA, MUA, MSA) arbeiten zusammen, um eine zuverlässige Zustellung sicherzustellen.