Zum Hauptinhalt springen

1. Wie dieses Dokument zu lesen ist

1.1. Aufbau dieses Dokuments

Dieses Dokument ist aus Sicht des Implementierers eines IMAP4rev1-Clients oder -Servers geschrieben. Abgesehen von der Übersicht über das Protokoll in Abschnitt 2 ist es nicht für Personen optimiert, die den Betrieb des Protokolls verstehen möchten. Das Material in den Abschnitten 3 bis 5 liefert den allgemeinen Kontext und die Definitionen, mit denen IMAP4rev1 arbeitet.

Die Abschnitte 6, 7 und 9 beschreiben jeweils IMAP-Befehle, Antworten und Syntax. Die Beziehungen zwischen ihnen sind so eng, dass es fast unmöglich ist, einen von ihnen getrennt zu verstehen. Versuchen Sie insbesondere nicht, die Befehlssyntax allein aus dem Befehlsabschnitt abzuleiten; ziehen Sie stattdessen den Abschnitt zur formalen Syntax heran.

1.2. In diesem Dokument verwendete Konventionen

„Konventionen“ sind grundlegende Prinzipien oder Verfahren. Die Dokumentkonventionen werden in diesem Abschnitt erläutert.

In Beispielen bezeichnen „C:“ und „S:“ Zeilen, die jeweils vom Client beziehungsweise Server gesendet werden.

Die Schlüsselwörter „MUST“, „MUST NOT“, „REQUIRED“, „SHALL“, „SHALL NOT“, „SHOULD“, „SHOULD NOT“, „MAY“ und „OPTIONAL“ in diesem Dokument sind wie in [KEYWORDS] beschrieben zu interpretieren.

Das Wort „can“ (nicht „may“) wird verwendet, um auf einen möglichen Umstand oder eine mögliche Situation zu verweisen, im Gegensatz zu einer optionalen Funktion des Protokolls.

„User“ bezeichnet einen menschlichen Benutzer, während „client“ die vom Benutzer ausgeführte Software bezeichnet.

„Connection“ bezeichnet die gesamte Folge der Client/Server-Interaktion von der anfänglichen Herstellung der Netzwerkverbindung bis zu ihrer Beendigung.

„Session“ bezeichnet die Folge der Client/Server-Interaktion ab der Auswahl einer Mailbox (Befehl SELECT oder EXAMINE) bis zum Ende dieser Auswahl (SELECT oder EXAMINE einer anderen Mailbox, Befehl CLOSE oder Beendigung der Verbindung).

Zeichen sind 7-Bit-US-ASCII, sofern nicht anders angegeben. Andere Zeichensätze werden mit einem „CHARSET“ angegeben, wie in [MIME-IMT] beschrieben und in [CHARSET] definiert. CHARSETs besitzen neben der Definition des Zeichensatzes wichtige zusätzliche Semantik; weitere Einzelheiten finden sich in diesen Dokumenten.

IMAP umfasst mehrere Protokollkonventionen. Diese betreffen Aspekte der Spezifikation, die nicht strikt Teil des IMAP-Protokolls sind, aber allgemein anerkannte Praxis widerspiegeln. Implementierungen müssen diese Konventionen kennen und Konflikte vermeiden, unabhängig davon, ob sie die Konvention umsetzen. Beispielsweise darf „&“ nicht als Hierarchietrennzeichen verwendet werden, da dies mit der Mailbox International Naming Convention kollidiert; auch andere Verwendungen von „&“ in Mailboxnamen sind betroffen.

1.3. Besondere Hinweise für Implementierer

Implementierer des IMAP-Protokolls werden nachdrücklich dazu ermutigt, zusammen mit diesem Dokument die Empfehlungen zur IMAP-Implementierung [IMAP-IMPLEMENTATION] zu lesen. Dies hilft, die Feinheiten dieses Protokolls zu verstehen und ein interoperables Produkt bestmöglich zu entwickeln.

IMAP4rev1 ist so gestaltet, dass es aufwärtskompatibel mit den Protokollen [IMAP2] und dem unveröffentlichten IMAP2bis ist. IMAP4rev1 ist weitgehend mit dem in RFC 1730 beschriebenen IMAP4-Protokoll kompatibel. Ausgenommen sind bestimmte in RFC 1730 hinzugefügte Funktionen, die sich als problematisch erwiesen und anschließend entfernt wurden. Im Verlauf der Entwicklung von IMAP4rev1 sind einige Aspekte der früheren Protokolle obsolet geworden. Veraltete Befehle, Antworten und Datenformate, auf die eine IMAP4rev1-Implementierung bei Verwendung mit einer älteren Implementierung treffen kann, werden in [IMAP-OBSOLETE] beschrieben.

Weitere Kompatibilitätsfragen mit IMAP2bis, der gebräuchlichsten Variante des früheren Protokolls, werden in [IMAP-COMPAT] behandelt. Eine vollständige Erörterung der Kompatibilitätsfragen mit seltenen (und vermutlich ausgestorbenen) Varianten von [IMAP2] enthält [IMAP-HISTORICAL]; dieses Dokument ist vor allem von historischem Interesse.

IMAP wurde ursprünglich für den älteren Standard [RFC-822] entwickelt. Daher enthalten mehrere Abrufelemente in IMAP „RFC822“ in ihrem Namen. Mit Ausnahme von RFC822.SIZE gibt es modernere Ersatzformen; beispielsweise lautet die moderne Version von RFC822.HEADER BODY.PEEK[HEADER]. In allen Fällen ist „RFC822“ als Verweis auf den aktualisierten Standard [RFC-2822] zu verstehen.