Post Office Protocol 3 (POP3)

Als allgemeines Übertragungsprotokoll für eMails hat sich im Internet das Simple Mail Transfer Protocol (SMTP) durchgesetzt. Es transportiert eMails von einem SMTP-Client zu einem SMTP-Host und entsprechend zu einem anderen SMTP-Host weiter.

Die Internet-Welt hat sich jedoch seit der Einführung von SMTP grundsätzlich gewandelt. Immer mehr Rechner sind nur temporär im Internet, beispielsweise Einwahlkunden eines Internet-Providers. Deshalb wurde schon recht frühzeitig die Idee verfolgt, Mails auf einem SMTP-Server zu lagern und diese den Empfängern zum Herunterladen bereitzustellen. Dieses Herunterladen konnte nicht mit SMTP realisiert werden, da SMTP ein reines »Push«-Protokoll ist (also eMails von Host zu Host weiterleitet) und in der Urfassung beispielsweise keine Möglichkeiten zur Benutzerauthentifizierung ermöglicht. Andere Konzepte waren deshalb zum Herunterladen von eMails gefragt.

Im Laufe der Zeit haben sich zwei unterschiedliche Protokolle etabliert: IMAP4 und POP3. Beide Protokolle dienen ausschließlich zum Herunterladen von eMails von einem Mailserver, verfolgen aber zwei unterschiedliche Techniken. IMAP4 richtet sich vor allem an Nutzer, die eMails auf dem Mailserver organisieren (z.B. serverseitig in Ordner verteilen usw.) wollen oder müssen. Dies macht Sinn, wenn Nutzer von verschiedenen Standorten ihre eMails verwalten möchten, erfordert allerdings eine nicht zu unterschätzende Rechenleistung des Servers. POP3 hingegen bietet keine umfangreichen serverseitigen Organisationsmöglichen, sondern stellt quasi nur die Möglichkeit bereit, Mails vom Server zum Client zu transportieren und diese danach auf dem Server zu löschen.

Technische Grundzüge

POP3-StadienPOP3 funktioniert nach dem Client-Server-Prinzip und ist ein verbindungsorientiertes Protokoll. Ein POP3-Client baut eine eigene Sitzung zum POP3-Server auf und beide halten diese Sitzung aufrecht, bis einer von beiden die Sitzung terminiert oder die Verbindung andersweilig trennt (zum Beispiel durch einen Timeout).

Eine solche POP3-Sitzung ist in drei Stadien aufgeteilt; dem Authorization State, dem Transaction State und dem Update State. Diese drei Stadien müssen POP3-Client und -Server für eine erfolgreiche POP3-Sitzung durchlaufen.

POP3-Befehle

AUTHORIZATION STATE

Dieses Stadium dient der Benutzerauthentifikation. Ordentlich beendet kann dieses Stadium entweder nur durch die Eingabe einer gültigen Benutzernamen-Paßwort-Kombination (dann wird automatisch in das Transaction State umgeschaltet) oder dem Beenden der POP3-Sitzung durch den QUIT-Befehl.

  • USER benutzername

Hier wird der Benutzername an den POP3-Server übergeben. Als Antwort gibt der POP3-Server entweder eine positive Antwort mit der Aufforderung, nun das Paßwort zu übergeben (siehe nächsten Befehl), oder eine negative Antwort. Dann muß der Befehl wiederholt werden. Die meisten POP3-Server geben bei jedem Benutzernamen eine positive Antwort und prüfen erst nach Eingabe des Paßwortes, ob die angeforderte Mailbox auch wirklich vorhanden ist.

  • PASS passwort

Hier wird das Paßwort an den POP3-Server übergeben. Als Antwort gibt der POP3-Server entweder eine positive Antwort und geht in das Transaktionsstadium über, oder eine negative Antwort. Dann muß die Authentifizierung nochmals neu mit dem USER-Befehl gestartet werden. Alternativ darf ein Mailserver nach einer fehlgeschlagenen Authentifizierung die aktuelle POP3-Sitzung beenden.

  • APOP benutzername verschluesseltes_passwort

Sonderform der Benutzerauthentifizierung, bei der das Paßwort auf verschlüsseltem Wege zum POP3-Server übertragen wird. Hierzu übergibt der Server beim Start der POP3-Sitzung mit der Begrüßung einen Zeitstempel. Der POP3-Client fügt nun diesem Zeitstempel das zu übertragende Paßwort an und verschlüsselt es mit einem bestimmten Algorithmus. Der POP3-Server entschlüsselt es und geht entweder in das Transaktionsstadium über oder der Client erhält eine negative Antwort.

  • QUIT

Befehl zur Beendung der Sitzung. Der Server antwortet daraufhin mit einer positiven Antwort und beendet die Sitzung.

TRANSACTION STATE

Dieses Stadium ist das eigentliche »Arbeitsstadium«; hier werden Informationen über die Mailbox angezeigt, Mails abgerufen und zur Löschung markiert. Ordentlich verlassen werden kann dieses Stadium durch den QUIT-Befehl.

  • STAT

Dieser Befehl liefert in einer positiven Rückantwort die Zahl der Mails, die derzeit im Mailfach liegen und, getrennt durch einen Leerschritt, den Speicherplatz, der durch die Mails belegt ist.

  • LIST nachricht

Dieser Befehl listet, wenn kein Argument angegeben wird, zeilenweise jede vorhandene Mail auf. Jede Zeile enthält die Nummer der Mail und, getrennt durch einen Leerschritt, den Speicherplatz, der durch diese Mail belegt ist. Wird der Befehl mit einem Argument abgesendet, gibt das Argument die Nummer der Mail an und es wird nur die Mailnummer und Speicherplatzbelegung für die angegebene Mail zurückgegeben

  • RETR nachricht

Befehl zum Abrufen einer Mail. Das unbedingt mitzuliefernde Attribut gibt dabei die Nummer der Mail an, die abgerufen werden soll.

  • TOP nachricht zeilen

Dieser Befehl ist eine erweiterte Form des RETR-Befehls. Mit einem zusätzlichen Attribut kann die Zahl der Zeilen vorgegeben werden, die angezeigt werden sollen. Dies ist nützlich, wenn eine besonders große Mail in der Mailbox liegt und deshalb z.B. nur die ersten 100 Zeilen angezeigt werden sollen.

  • DELE nachricht

Befehl zum Löschen einer Mail. Das unbedingt mitzuliefernde Attribut gibt dabei die Nummer der Mail an, die gelöscht werden soll. Die Mail wird hierbei aber nicht sofort gelöscht, sondern wird nur zur Löschung freigegeben, das wiederum mit dem Befehl RSET zurückgenommen werden kann. Gelöscht werden zur Löschung freigegebene Mails erst, wenn die POP3-Sitzung mit dem Befehl QUIT beendet werden soll und der POP3-Server danach in das Update Stadium übergeht.

  • NOOP

Befehl zum Aufrechterhalten der aktuellen POP3-Sitzung. Als Antwort auf diesen argumentlosen Befehl liefert der POP3-Server eine positive Antwort zurück.

  • RSET

Dieser argumentlose Befehl setzt alle eventuell gegebenen Löschmarkierungen wieder zurück, d.h. Mails, die mit dem Befehl DELE zur Löschung freigegeben wurden, werden nicht gelöscht.

UPDATE STATE

In diesem Stadium werden zur Löschung freigegebene Mails gelöscht. Dies hat den Sinn, daß Mails im Transaction State nicht unkontrolliert gelöscht werden können, z.B. bei einem Verbindungsabbruch. Werden im Transaction State Mails gelöscht, geschieht dies in Wirklichkeit erst im Update Stadium; bricht vorher die Verbindung ab, werden die zur Löschung freigegebenen Mails nicht gelöscht.

  • QUIT

Dieser Befehl wechselt in das Update Stadium löscht erst dann Mails, die zur Löschung durch den DELE-Befehl markiert wurden. Nach dieser Löschung wird die POP3-Sitzung ordentlich getrennt.

Statusmeldungen

Im POP3-Protokoll werden alle Antworten des Servers in zwei Kategorien eingeteilt, positive und negative Antworten:

  • +OK

Der gesendete Befehl wurde vom POP3-Server empfangen, verstanden und korrekt ausgeführt.

  • -ERR

Der gesendete Befehl wurde vom POP-Server entweder nicht empfangen (Timeout-Beschränkungen können die Verbindung serverseitig trennen, wenn eine bestimmte Zeit keine Daten übertragen wurden), nicht verstanden (eventuell Fehler in der übergebenen Syntax) und/oder nicht korrekt ausgeführt.

Alle Befehlsantworten des POP3-Servers werden in diesem Format zurückgeliefert.

Weiterführende Links

 
wissen/scripts/pop3/pop3_internals.txt · Zuletzt geändert: 05.09.2010 20:31
 
Recent changes RSS feed Donate Valid XHTML 1.0 Valid CSS Recent cached RSS feed cacert-signed web site: inhalt.serviert.de