POP3
Willemers Informatik-Ecke
Mails werden über das SMTP-Protokoll von Mail-Server zu Mail-Server versandt und dort gelagert. Wenn der Empfänger seine Mails nicht direkt auf dem Mail-Server liest, muss er diese von dort auf seinen Arbeitsplatzrechner übertragen.

Das Protokoll POP3 (Post Office Protocol) (RFC 1939) dient dazu, eingegangene Mails vom Server auf den Client zu übertragen und ist auf gemietete Leitungen optimiert, die nach der Verbindungsdauer bezahlt werden.

Der Client meldet sich beim Server an, prüft, ob es neue Mails gibt, lädt diese auf den lokalen Rechner und löscht sie ggf. nach dem Lesen auf dem Server.

Steckbrief

Kommunikation

Der Client öffnet eine Verbindung zu einem POP3-Server, der sich mit +OK und seiner Domäne meldet. Solch positive Meldungen des Servers beginnen immer mit der Zeichenfolge +OK. Ist der Server unzufrieden, beginnt die Antwortzeile mit -ERR.

Die Kommunikation mit dem Server kann vom Client jederzeit mit dem Befehl QUIT beendet werden. Die Verbindung wird dann automatisch geschlossen.

Authentifizierung

Zu Anfang befindet sich der Server in der Authentifizierungsphase. Er erwartet, dass der Benutzer seine Legitimation beweist. Dies erfolgt durch Eingabe des Benutzernamens und des Passworts.
Client Server
USER Benutzerkennung
+OK
PASS Passwort
Server wechselt in Transaktionsphase
APOP
Alternativ gibt es noch die Möglichkeit, mit dem Befehl APOP eine Autorisierung durchzuführen. Dabei wird ein Schlüssel zwischen Server und Client geteilt. Der Server meldet beim Start seine Prozess-ID und die aktuelle Uhrzeit. Der Client kombiniert sie mit dem Geheimnis und verschlüsselt sie. Diesen Wert sendet der Client dem Server als zweiten Parameter des APOP-Befehls.

Weitere Client-Befehle

STAT
Befindet sich die Sitzung in der Transaktionsphase, kann das Konto bearbeitet werden. Der Befehl STAT fordert den Server auf, seinen Zustand anzuzeigen. Der Server antwortet beispielsweise mit der Zeile:
+OK 4 44471
Das bedeutet, dass vier Mails vorliegen, die insgesamt 44.471 Bytes belegen.

LIST
Der Befehl LIST zeigt nach einer Bestätigungszeile eine Liste aller vorliegenden E-Mails an. Dabei wird für jede Mail eine Zeile ausgegeben, die nur die Mailnummer und die Größe der jeweiligen E-Mail in Byte anzeigt. Sie können dem Befehl LIST auch eine Mailnummer als Parameter angeben. Dann wird nur diese E-Mail angezeigt.

RETR
Mit dem Befehl RETR kann eine Mail vom Server ausgelesen werden. Als Argument wird eine Mailnummer erwartet. Die komplette Mail wird ausgegeben, inklusive Header und Text. Die Mail wird durch eine Zeile beendet, die nur einen Punkt enthält.
TOP
Der Befehl TOP ist nach RFC~1939 nicht zwingend vom Server zu implementieren. In der Praxis dürfte er aber immer vorhanden sein. Mit diesem Befehl können die ersten Zeilen einer Mail geholt werden. Es werden in jedem Fall der Header und ein paar Zeilen der eigentlichen Nachricht geladen. Der TOP-Befehl muss die Mailnummer als Parameter übergeben und kann zusätzlich die Anzahl der Zeilen bestimmen, die er von der Nachricht lesen will.
DELE und RSET
Wenn eine Mail auf dem Server gelöscht werden soll, verwenden Sie den Befehl DELE, gefolgt von der Mailnummer. Damit wird die Mail als gelöscht markiert und von allen Befehlen der Sitzung so behandelt, als sei sie nicht vorhanden. Erst wenn die Sitzung in die UPDATE-Phase kommt, wird die Nachricht endgültig gelöscht.

Der Befehl RSET hebt alle durch DELE gesetzten Markierungen auf.

NOOP
Mit NOOP deutet der Client an, dass er momentan nichts tut, aber den Server immer noch lieb hat. Auf diese Anweisung reagiert der Server mit einer positiven Bestätigung. Dieser Befehl kann nützlich sein, um beispielsweise einen Timeout zu verhindern.

Update-Phase

Wird nach der Transaktionsphase der Befehl QUIT gesendet, geht der Server in die Update-Phase und löscht alle mit einer Löschmarke versehenen Mails.