Rechnernetze
Home Nach oben

Post Office Protocol POP

 

Post Office Protocol (POP) wird in der Version 3 im RFC 1939 standardisiert. 

Der POP-Server lauscht auf Port 110. Ein anrufender Client baut eine TCP-Verbindung auf und erhält zunächst eine Begrüßungsnachricht vom Server. Dann können Anweisungen und Nachrichten ausgetauscht werden, bis die Verbindung wieder geschlossen wird. 

Nach der Begrüßung geht die Sitzung in den Authorisierungs-Zustand über, in welchem Authentisierungsnachrichten ausgetauscht werden, in welchen sich der Client dem Server gegenüber authentisiert. 

Wenn die Authentsierung erfolgreich abgeschlossen ist, geht die Sitzung in den Transaktionszustand über. Jetzt können Anfragen an den Server gesendet werden. 

Sobald das QUIT-Kommande gesendet wird, geht die Sitzung in den Update-Zustand über. 

Jeder Befehl besteht aus einer Statusinformation, welche positiv oder negativ sein kann.

Eine Begrüßungsnachricht kann beispielsweise folgendermaßen aussehen:

S: +OK POP3 server ready

Authentisierung 

Zur Authentisierung sind verschiedene Verfahren zugelassen, die u.a. in RFC 1734 gefunden werden kann. Es wird das folgende Verfahren vorgeschlagen.

C: USER name 
S: +OK POP3 server ready
C: PASS string

Das Passwort wird also im Klartext über das Netz geschickt. Eine Alternative besteht darin, einen Hashwert zu generieren. Dazu wird das APOP-Kommando verwendet:

S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
C: APOP mrose c4c9334bac560ecc979e58001b3e22fb

Der Hashwert wird aus dem vom Server vorgegebenen String (z.B. Uhrzeit, Servername usw.) gebildet, sowie einem gemeinsamen geheimen Passwort, welches damit nicht mehr im Klartext über das Netz geschickt zu werden braucht. 

Transaktion

Die folgenden POP-Kommandos müssen mindestens zur Verfügung gestellt werden:

STAT wird mit der Anzahl und Länge der Nachrichten beantwortet.
LIST [msg]: Listet für alle bzw. die genannte Nachricht Nummer und Größe auf.
RETR msg: Listet die genannte Nachricht auf.
DELE msg: Markiert die genannte Nachricht als gelöscht (löscht noch nicht).
NOOP:
RSET: Hebt die Löschmarkierung für alle Nachrichten wieder auf.
QUIT: Es wird nur mit einer positiven Antwort reagiert.

Optional (wenngleich dringend empfohlen) sind die folgenden Nachrichten:

TOP msg n: Sendet n Zeilen der gewählten Nachricht.
UIDL: Unique ID-Listing: Ordnet einer Nachricht eine eindeutige Kennung zu.

Update

In diesem Zustand werden sämtliche zum Löschen markierte Nachrichten gelöscht und die Verbindung abgebrochen. Dann kann der Server auf die nächste Anfrage warten.

Beispiel

S: <wait for connection on TCP port 110>
C: <open connection>
S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
C: APOP mrose c4c9334bac560ecc979e58001b3e22fb
S: +OK mrose's maildrop has 2 messages (320 octets)
C: STAT
S: +OK 2 320
C: LIST
S: +OK 2 messages (320 octets)
S: 1 120
S: 2 200
S: .
C: RETR 1
S: +OK 120 octets
S: <the POP3 server sends message 1>
S: .
C: DELE 1
S: +OK message 1 deleted
C: RETR 2
S: +OK 200 octets
S: <the POP3 server sends message 2>
S: .
C: DELE 2
S: +OK message 2 deleted
C: QUIT
S: +OK dewey POP3 server signing off (maildrop empty)
C: <close connection>
S: <wait for next connection>