5. ELECTRONIC MAIL -- SMTP AND RFC-822 (Elektronische Post -- SMTP und RFC-822)
5.1 INTRODUCTION (Einführung)
Elektronische Post ist eine der wichtigsten Anwendungen im Internet. Sie verwendet zwei Hauptprotokolle:
- RFC-822: Definiert das Format von Mail-Nachrichten
- SMTP: Simple Mail Transfer Protocol zum Senden von Mails
Jeder Internet-Host SOLLTE SMTP und RFC-822 für das Senden und Empfangen von elektronischer Post implementieren (SHOULD).
5.2 PROTOCOL WALK-THROUGH (Protokolldurchlauf)
5.2.1 RFC-822
RFC-822 definiert die Syntax von Mail-Nachrichten. Eine Mail-Nachricht besteht aus:
- Header: Enthält Felder wie From, To, Subject, Date
- Body: Der tatsächliche Nachrichteninhalt
Häufige Header-Felder
- From: Der Absender der Nachricht (erforderlich)
- To: Der/die Hauptempfänger (beim Senden erforderlich)
- Cc: Kopie-Empfänger
- Bcc: Blindkopie-Empfänger
- Subject: Betreffzeile
- Date: Datum und Uhrzeit des Sendens der Nachricht
- Message-ID: Eindeutiger Nachrichten-Identifikator
- Received: Trace-Informationen
5.2.2 SMTP
SMTP ist ein Protokoll zum Senden von Mail-Nachrichten zwischen Hosts. SMTP verwendet TCP-Port 25.
SMTP-Befehle
- HELO: Identifikation des Clients beim Server
- EHLO: Erweitertes HELO (ESMTP)
- MAIL FROM: Angabe des Absenders
- RCPT TO: Angabe des Empfängers
- DATA: Beginn des Nachrichteninhalts
- RSET: Zurücksetzen der Transaktion
- VRFY: Überprüfung des Empfängers
- EXPN: Erweiterung der Mailingliste
- HELP: Hilfeinformationen
- NOOP: Keine Operation
- QUIT: Schließen der Verbindung
SMTP-Antwortcodes
SMTP verwendet dreistellige Antwortcodes:
- 2xx: Positive Vollendung
- 3xx: Positive Zwischenstufe
- 4xx: Vorübergehende negative Vollendung
- 5xx: Dauerhafte negative Vollendung
5.3 SPECIFIC ISSUES (Spezifische Probleme)
5.3.1 SMTP
5.3.1.1 Sending Strategy (Sendestrategie)
Ein SMTP-Client SOLLTE eine konfigurierbare Strategie für das Einreihen und Wiederholen fehlgeschlagener Mail-Sendungen implementieren (SHOULD). Die Wiederholungsstrategie SOLLTE exponentielles Backoff verwenden (SHOULD).
5.3.1.2 Receiving Strategy (Empfangsstrategie)
Ein SMTP-Server MUSS Mail für gültige lokale Empfänger akzeptieren (MUST). Ein SMTP-Server SOLLTE die Gültigkeit des Empfängers überprüfen, bevor er Mail akzeptiert (SHOULD).
5.3.1.3 Error Handling (Fehlerbehandlung)
Eine SMTP-Implementierung MUSS alle SMTP-Antwortcodes korrekt behandeln (MUST). Vorübergehende Fehler (4xx) sollten zu Wiederholungen führen, und dauerhafte Fehler (5xx) sollten zu Unzustellbarkeitsbenachrichtigungen führen.
5.3.1.4 Timeouts (Zeitüberschreitungen)
Eine SMTP-Implementierung MUSS geeignete Zeitüberschreitungen verwenden (MUST):
- Initiale 220-Nachricht: 5 Minuten
- MAIL-Befehl: 5 Minuten
- RCPT-Befehl: 5 Minuten
- DATA-Initiierung: 2 Minuten
- DATA-Block: 3 Minuten
- DATA-Beendigung: 10 Minuten
5.3.2 RFC-822
5.3.2.1 Message Format (Nachrichtenformat)
Implementierungen MÜSSEN Nachrichten generieren, die der RFC-822-Syntax entsprechen (MUST). Implementierungen SOLLTEN jedoch liberal sein beim Akzeptieren von Nachrichten mit kleineren Abweichungen (SHOULD).
5.3.2.2 Address Formats (Adressformate)
RFC-822 definiert mehrere Adressformate. Implementierungen MÜSSEN Mailbox-Adressen unterstützen (MUST) und SOLLTEN Gruppenadressen unterstützen (SHOULD).
5.3.2.3 Date and Time (Datum und Uhrzeit)
Jede Mail-Nachricht MUSS ein Date-Header-Feld enthalten (MUST). Das Datum MUSS das RFC-822-Datums- und Uhrzeitformat verwenden (MUST).
5.4 SMTP REQUIREMENTS SUMMARY (Zusammenfassung der SMTP-Anforderungen)
| Funktionalität | Abschnitt | MUST | SHOULD | MAY | Anmerkung |
|---|---|---|---|---|---|
| SMTP implementieren | 5.1 | ✓ | |||
| RFC-822 implementieren | 5.1 | ✓ | |||
| Mail für lokale Empfänger akzeptieren | 5.3.1.2 | ✓ | |||
| Exponentielles Backoff für Wiederholungen | 5.3.1.1 | ✓ | |||
| Alle Antwortcodes korrekt behandeln | 5.3.1.3 | ✓ | |||
| Geeignete Zeitüberschreitungen verwenden | 5.3.1.4 | ✓ | |||
| RFC-822-konforme Nachrichten generieren | 5.3.2.1 | ✓ | |||
| Date-Header einschließen | 5.3.2.3 | ✓ |