3. Basic Operation (Grundlegende Funktionsweise)
Zunächst startet der Server-Host den POP3-Dienst, indem er auf TCP-Port 110 lauscht. Wenn ein Client-Host den Dienst nutzen möchte, stellt er eine TCP-Verbindung mit dem Server-Host her. Wenn die Verbindung hergestellt ist, sendet der POP3-Server eine Begrüßung. Der Client und der POP3-Server tauschen dann Befehle und Antworten (respectively) aus, bis die Verbindung geschlossen oder abgebrochen wird.
Befehle in POP3 bestehen aus einem groß-/kleinschreibungsunabhängigen Schlüsselwort, möglicherweise gefolgt von einem oder mehreren Argumenten. Alle Befehle werden mit einem CRLF-Paar beendet. Schlüsselwörter und Argumente bestehen aus druckbaren ASCII-Zeichen. Schlüsselwörter und Argumente sind jeweils durch ein einzelnes Leerzeichen getrennt. Schlüsselwörter sind drei oder vier Zeichen lang. Jedes Argument kann bis zu 40 Zeichen lang sein.
Antworten in POP3 bestehen aus einem Statusindikator und einem Schlüsselwort, möglicherweise gefolgt von zusätzlichen Informationen. Alle Antworten werden mit einem CRLF-Paar beendet. Antworten können bis zu 512 Zeichen lang sein, einschließlich des abschließenden CRLF. Es gibt derzeit zwei Statusindikatoren: positiv ("+OK") und negativ ("-ERR"). Server müssen (MUST) "+OK" und "-ERR" in Großbuchstaben senden.
Antworten auf bestimmte Befehle sind mehrzeilig. In diesen Fällen (ausdrücklich unten vermerkt) werden nach dem Senden der ersten Zeile der Antwort und eines CRLF alle zusätzlichen Zeilen gesendet, jeweils mit einem CRLF-Paar beendet. Wenn alle Zeilen der Antwort gesendet wurden, wird eine letzte Zeile gesendet, bestehend aus einem Abschluss-Oktett (Dezimalcode 046, ".") und einem CRLF-Paar.
Eine POP3-Sitzung durchläuft während ihrer Lebensdauer mehrere Zustände. Sobald die TCP-Verbindung geöffnet wurde und der POP3-Server die Begrüßung gesendet hat, tritt die Sitzung in den AUTHORIZATION-Zustand ein. In diesem Zustand muss (MUST) sich der Client gegenüber dem POP3-Server identifizieren. Sobald der Client dies erfolgreich getan hat, erwirbt der Server Ressourcen, die mit dem Maildrop des Clients verbunden sind, und die Sitzung tritt in den TRANSACTION-Zustand ein. In diesem Zustand fordert der Client Aktionen vom POP3-Server an. Wenn der Client den QUIT-Befehl ausgibt, tritt die Sitzung in den UPDATE-Zustand ein. In diesem Zustand gibt der POP3-Server alle während des TRANSACTION-Zustands erworbenen Ressourcen frei und verabschiedet sich. Die TCP-Verbindung wird dann geschlossen.
Ein Server muss (MUST) auf einen nicht erkannten, nicht implementierten oder syntaktisch ungültigen Befehl mit einem negativen Statusindikator antworten. Ein Server muss (MUST) auf einen Befehl, der ausgegeben wird, wenn sich die Sitzung in einem falschen Zustand befindet, mit einem negativen Statusindikator antworten.
Ein POP3-Server kann (MAY) einen Inaktivitäts-Autologout-Timer haben. Ein solcher Timer muss (MUST) eine Dauer von mindestens 10 Minuten haben. Der Empfang eines beliebigen Befehls vom Client während dieses Intervalls sollte ausreichen, um den Autologout-Timer zurückzusetzen. Wenn der Timer abläuft, tritt die Sitzung nicht (does NOT) in den UPDATE-Zustand ein -- der Server sollte die TCP-Verbindung schließen, ohne Nachrichten zu entfernen oder eine Antwort an den Client zu senden.
Glossar:
- CRLF: Wagenrücklauf + Zeilenvorschub
- AUTHORIZATION-Zustand: Autorisierungszustand
- TRANSACTION-Zustand: Transaktionszustand
- UPDATE-Zustand: Aktualisierungszustand
- Byte-Stuffed: Byte-Stuffing
- Statusindikator: Statusanzeige
RFC 2119 Schlüsselwörter:
- MUST (muss): Absolute Anforderung
- MAY (kann): Optional