En sistemes petits no és pràctic, ni freqüent, soportar el SMTP perquè implica tenir el sistema connectat i disposat a rebre missatges en qualsevol moment. Per aquest motiu, es va veure la necessitat de definir un protocol que puguès permetre la recuperació de missatges de la bústia de correu remots, i es va definir el POP3.
De totes maneres, en aquest protocol es necessita disposar de sistemes en els que es trobin les busties (els servidors de POP3), i han d'estar connectats en tot moment, tant per rebre missatges com per rebre les peticions d'accés a les bústies. Pel que respecta als clients POP3, només cal que es connectin quan vulguin accedir al seu correu.
El POP3 no especifíca cap mètode per enviar correu, altres protocols, com el SMTP, tenen aquesta funcionalitat.
El model funcional del POP3 es basa en els elements següents:
Agent d'usuari: utilitza el client POP3 per accedir al seu correu.
Client POP3: es comunica amb el servidor POP3 usant el protocol POP3 per accedir a la seva bústia de correu.
Servidor POP3: Rep peticions dels clients i las serveix accedint a les bústies corresponents.
A la figura següent estàn representats els elements del model funcional del POP3 integrats en un sistema que utilitza el SMTP per enviar el correu i el POP3 per accedir a les bústies:
El POP3 es basa en comunicacions TCP sobre el port 110.
El mecanisme normal de la utilització del protocol es la següent, quan el client necessita accedir a la bústia, es connecta amb el servidor, recupera la informació que l'interessa i tanca la connexió.
Les comandes pop3 estàn formades per cadenes de caràcters ASCII imprimibles acabades amb <CRLF>. Totes les comandes inclueixen un codi alfanumèric que identifica la comanda, seguit de cero o més paràmetres.
Les respostes POP3 també són cadenes de caràcters ASCII, i es representen amb un indicador d'estat positiu (+OK) o negatiu (-ERR) i, si es necessari, més informació adicional de la manera següent:
+OK el comando se ha ejecutado con éxito -ERR el comando no se ha ejecutado con éxito
Estats
Una sessió de POP3 ha de passar per aquests tres estats:
Una vegada que s'ha obert una connexió, la session entra a l'estat d'autorització, en la que el client ha d'identificar-se davant del servidor.
Una vegada autoritzat, la sesió passa a l'estat de transacció. En aquest estat el client demana accions al servidor amb les comandes necessàries.
Quan el client usa la comanda QUIT, la sessió entra a l'estat d'actualització. En aquest estat el servidor allibaera els recursos i tanca la connexió TCP.
El POP3 proporciona les comandes necessaries per l'accés a bústies de correu. A continuació describirem les comandes corresponents a cada un dels estats pels que ha de passar una sessió POP3:
Estat d'autorització: En aquest estat el client s’identifica davant del servidor POP3. Per a dur a terme el procés d’identificació, es disposa de les comandes següents:
Identificació d’usuari (USER): El primer que ha de fer un client POP3 és identificar-se davant del servidor POP3. Un dels mètodes és fer-ho mitjançant la comanda USER, dins de la qual s’envia el nom que identifica l’usuari.
Tramesa de la contrasenya (PASS): Una vegada identificat l’usuari mitjançant la comanda USER, s’ha de dur a terme l’autenticació per mitjà de la tramesa d’una contrasenya amb la comanda PASS. El servidor utilitza la cadena enviada en aquesta comanda juntament amb el nom d’usuari per a donar accés a l’usuari a la bústia o denegar-l’hi.
Identificació i autenticació de l’usuari amb seguretat (APOP): El mètode d’identificació i autenticació mitjançant les comandes USER i PASS té el problema que tant el nom com la contrasenya viatgen per la xarxa sense cap mecanisme de seguretat. Un mètode alternatiu d’identificació i autenticació de l’usuari consisteix a utilitzar la comanda APOP, que incorpora mecanismes de seguretat en la tramesa de la contrasenya.
Estat de transacció: En aquest estat, el client sol·licita accions al servidor POP3. Les accions que pot demanar són les següents:
Estat (STAT): Una vegada autenticat l’usuari, el client POP3 pot requerir informació sobre l’estat de la bústia de l’usuari per mitjà de la comanda STAT que no té arguments i torna el nombre de missatges i els bytes que ocupa la bústia de l’usuari.
Llista (LIST): Quan ja se sap el nombre de missatges que hi ha a la bústia, el passegüent és la petició d’nformació sobre un dels missatges o sobre tots. El POP3 proporciona la comanda LIST per a aquesta tasca. Aquesta comanda torna, per a cada missatge, un número de missatge i els bytes que ocupa.
Recuperació de missatges (RETR): Una vegada es coneixen els missatges que hi ha a la bústia, cal recuperar els que es vol llegir. Això ho pot fer el client POP3, per a cada missatge, amb la comanda RETR, que inclou com a argument l’identificador del missatge que es vol recuperar.
Esborrament de missatges (DELE): Després de llegir un missatge, pot interessar esborrar-lo. La comanda DELE indica al servidor POP3 que marqui com a missatge a esborrar l’identificat com a tal en l’argument; tanmateix, el missatge no s’esborrarà fins que no s’entri en l’estat d’actualització.
Operació nul·la (NOOP): La comanda NOOP serveix per a saber si la connexió amb el servidor encara és oberta. Amb aquesta comanda, el servidor POP3 no fa res, excepte tornar una resposta afirmativa.
Desmarcatge de missatges per a esborrar (RSET): Una vegada s’ha fet una crida a la comanda {{DELE}}}, i abans d’entrar en l’estat d’actualització, l’usuari es pot fer enrere i demanar al servidor POP3, mitjançant la comanda RSET, que desmarqui tots els missatges marcats per a esborrar.
Recuperació de la part superior d’un missatge (TOP): A vegades, pot interessar recuperar només la part superior d’un missatge per a decidir si val la pena recuperar-lo tot o no. La comanda TOP permet recuperar la capçalera i n línies del missatge identificat en l’argument.
Llista d’identificadors únics (UIDL): Tots els missatges de la bústia tenen un identificador únic (uniqueid) permanent (a diferència del número de missatge, que és únic dins de la bústia, però que pot variar). La comanda UIDL permet obtenir el número de missatge i l’identificador únic d’un dels missatges de la bústia o de tots.
Pas a l’estat d’actualització (QUIT): Una vegada finalitzades les transaccions, el client POP3 ha de cridar a la comanda QUIT per a passar a l’estat d’actualització.
Estat d’actualització: En aquest estat, el servidor POP3, en primer lloc, esborra tots els missatges marcats per a esborrar i, posteriorment, allibera tots els recursos i tanca la connexió TCP. L’estat d’actualització no disposa de cap comanda associada.
Exemple de les comandes d’accés d’un client POP3 (en negreta) a un servidor POP3 per a recuperar un missatge:
+OK QPOP (version 2.52) at pop.uoc.es starting.
USER rmarti
+OK Password required for rmarti.
PASS prueba
-ERR Password supplied for "rmarti" is incorrect.
+OK Pop server at pop.uoc.es signing off.
PASS password
+OK rmarti has 6 message(s) (190885 bytes).
STAT
+OK 6 190885
LIST
+OK 6 messages (190885 bytes)
1 3140
2 3326
3 1911
4 180846
5 861
6 801
.
RETR 6
+OK 801
Received: from campus.uoc.es by peru.uoc.es
(8.8.5/8.8.5) with ESMTP id SAA14826
for <rmarti@uoc.edu>; Fri, 27 Jun 2003
18:35:52 +0200 (MET DST)
From: Jordi Inyigo <jinyigo@uoc.edu>
Message-Id:
<199809211639.SAA20364@peru.uoc.es>
To: rmarti@uoc.edu, xperramon@uoc.edu
Subject: Master de programari lliure
Date: 27 Jun 2003
Content-Type: text
Status: RO
Això és un missatge de correu d’exemple.
.
QUIT
+OK Pop server at dns signing off
FONTS: http://www.uoc.edu/masters/cat/web/materials_lliures.html
http://en.wikipedia.org/wiki/POP3