2. Das SMTP-Modell (The SMTP Model)
2.1. Das Grundmodell (The Basic Model)
SMTP ist ein Push-Protokoll: Das sendende System initiiert die Transaktion und schiebt Mail zum empfangenden System. Das Grundmodell funktioniert wie folgt:
- Ein SMTP-Client (Sender) stellt eine bidirektionale Verbindung zu einem SMTP-Server (Empfänger) her
- Der Server sendet eine Begrüßungsnachricht
- Der Client sendet SMTP-Befehle an den Server
- Der Server antwortet mit numerischen Antwortcodes und Textnachrichten
- Der Client überträgt die Mail, falls akzeptiert
- Die Verbindung wird geschlossen
Modellkomponenten
[User Agent] → [Mail Submission Agent (MSA)]
↓
[Message Transfer Agent (MTA)]
↓ SMTP
[Message Transfer Agent (MTA)]
↓
[Mail Delivery Agent (MDA)]
↓
[Mailbox]
↓
[Mail Access Agent (MAA)]
↓
[User Agent]
2.2. Das Erweiterungssystem (The Extension System)
2.2.1. Hintergrund (Background)
Das ursprüngliche SMTP (RFC 821) hatte begrenzte Fähigkeiten. Der SMTP-Erweiterungsmechanismus (ESMTP), eingeführt in RFC 1869, ermöglicht die Erweiterung des Protokolls mit neuen Funktionen unter Beibehaltung der Abwärtskompatibilität.
2.2.2. Definition und Registrierung von Erweiterungen (Definition and Registration of Extensions)
SMTP-Erweiterungen werden vom Server als Antwort auf den EHLO-Befehl (Extended HELLO, Erweitertes HALLO) angekündigt. Jede Erweiterung hat:
- Ein Schlüsselwort (z. B. "SIZE", "STARTTLS", "8BITMIME")
- Optionale Parameter
- Eine RFC-Spezifikation, die ihr Verhalten definiert
Beispiel einer EHLO-Antwort:
C: EHLO client.example.com
S: 250-smtp.example.com
S: 250-SIZE 52428800
S: 250-8BITMIME
S: 250-STARTTLS
S: 250-AUTH PLAIN LOGIN
S: 250 HELP
Dies bedeutet, dass der Server Folgendes unterstützt:
- SIZE: Maximale Nachrichtengröße von 52.428.800 Bytes
- 8BITMIME: 8-Bit-MIME-Inhalt
- STARTTLS: TLS-Verschlüsselung
- AUTH: Authentifizierung (PLAIN- und LOGIN-Methoden)
2.2.3. Private Erweiterungen (X-Namensraum) (Private-Use Extensions (X-namespace))
Erweiterungs-Schlüsselwörter, die mit "X" beginnen, sind für experimentelle und private Verwendung reserviert. Diese Erweiterungen:
- DÜRFEN NICHT (MUST NOT) bei der IANA registriert werden
- DÜRFEN NICHT (MUST NOT) im öffentlichen Internet verwendet werden
- MÜSSEN (MUST) nur für Tests oder private Bereitstellungen verwendet werden
Beispiel:
S: 250-XEXAMPLEEXT
S: 250 XPRIVATE-FEATURE
2.3. SMTP-Terminologie (SMTP Terminology)
2.3.1. Mail-Objekte (Mail Objects, MO)
Ein Mail-Objekt enthält:
- Umschlag: Routing-Informationen (MAIL FROM, RCPT TO)
- Inhalt: Die Nachrichtenheader und den Nachrichtentext
Wichtig: Umschlag und Header können unterschiedliche Adressen enthalten!
2.3.2. Benutzer und Mailboxen (Users and Mailboxes)
- Benutzer: Ein menschlicher oder Prozess-Mailempfänger
- Mailbox: Ein konzeptioneller Speicherort für Mail
- Mailbox-Adresse: Format
local-part@domainlocal-part: Identifiziert die Mailbox (max. 64 Zeichen)domain: Identifiziert das Host-System (Domain-Name oder IP-Literal)
Beispiele:
[email protected]- Standardadresse[email protected]- mit Punkt im lokalen Teiluser@[192.0.2.1]- IPv4-Adressliteraluser@[IPv6:2001:db8::1]- IPv6-Adressliteral
2.3.3. Hosts (Hosts)
Ein Host ist ein Computersystem, das SMTP-Server- oder Client-Software ausführt. Hosts werden identifiziert durch:
- Domain-Namen:
mail.example.com - IP-Adressen:
192.0.2.1oder2001:db8::1
2.3.4. Server und Clients (Servers and Clients)
- SMTP-Server: Wartet auf eingehende Verbindungen, empfängt Mail
- SMTP-Client: Initiiert Verbindungen, sendet Mail
Ein System kann sowohl als Client als auch als Server agieren:
- Server beim Empfang von Mail
- Client beim Weiterleiten von Mail
2.3.5. Befehle und Antworten (Commands and Replies)
Befehle: ASCII-Textzeilen, die vom Client an den Server gesendet werden
- Format:
COMMAND [arguments]<CRLF> - Beispiele:
EHLO,MAIL FROM,RCPT TO,DATA,QUIT
Antworten: Dreistellige numerische Codes plus Textnachrichten
- Format:
code message<CRLF> - Beispiele:
250 Ok,550 User unknown
2.3.6. Vorwärtspfad, Rückwärtspfad und Umschläge (Forward-path, Reverse-path, and Envelopes)
- Rückwärtspfad (Reverse-path): Absenderadresse (MAIL FROM)
- Vorwärtspfad (Forward-path): Empfängeradresse (RCPT TO)
- Umschlag (Envelope): Kombiniert Rückwärtspfad und Vorwärtspfad(e)
Beispiel:
MAIL FROM:<[email protected]> (Rückwärtspfad)
RCPT TO:<[email protected]> (Vorwärtspfad)
RCPT TO:<[email protected]> (Vorwärtspfad)
2.3.7. Submission-Agenten und Message-Transfer-Agenten (Submission Agents and Message Transfer Agents)
-
Mail Submission Agent (MSA): Akzeptiert Mail von User Agents
- Port 587 (RFC 4409)
- Erfordert in der Regel Authentifizierung
- Wendet Submission-Richtlinien an
-
Message Transfer Agent (MTA): Überträgt Mail zwischen Systemen
- Port 25
- Handhabt Routing und Zustellung
- Verwaltet Warteschlangen und Wiederholungen
2.3.8. Message-Access-Agenten (Message Access Agents)
MAAs ermöglichen Benutzern den Abruf von Mail:
- POP3 (Post Office Protocol): Herunterladen und löschen
- IMAP (Internet Message Access Protocol): Remote-Mailbox-Zugriff
Diese Protokolle sind von SMTP getrennt und werden in diesem Dokument nicht behandelt.
2.3.9. Mail-Ursprünge und Ziele (Mail Originators and Targets)
- Ursprung (Originator): System oder Benutzer, das/der Mail erstellt
- Ziel (Target): Endempfänger der Mail
2.3.10. Message-Processing-Agenten und Mailinglisten (Message Processing Agents and Mailing Lists)
Message-Processing-Agenten können:
- Mailinglisten erweitern
- Filter anwenden
- Inhalte ändern (z. B. Listen-Footer hinzufügen)
- Nachrichten archivieren
2.3.11. Gateways (Gateways)
Gateways verbinden SMTP mit anderen Mail-Systemen:
- X.400
- UUCP
- Proprietäre Systeme
Gateways übersetzen zwischen Protokollen, Formaten und Adressen.
2.4. Allgemeine Mail-Zustellung (General Mail Delivery)
Der Mail-Zustellungsprozess umfasst in der Regel mehrere Schritte:
- Erstellung: Benutzer verfasst Mail mit einem UA
- Einreichung: UA reicht bei MSA ein (Port 587)
- Routing: MSA leitet an entsprechenden MTA weiter
- Transfer: Mail kann mehrere MTAs durchlaufen
- Zustellung: Endgültiger MTA liefert an MDA
- Speicherung: MDA speichert in Mailbox
- Abruf: Benutzer ruft über MAA ab (POP3/IMAP)
Jeder Hop verwendet SMTP zwischen MTAs, während andere Protokolle Einreichung und Abruf handhaben.