Protocollo POP3 Overview

Post Office Protocol 3 (POP3) è attualmente il protocollo più utilizzato per il download della posta elettronica.

Il protocollo POP3 descritto nella RFC 1939, fornisce le funzioni base per scaricare e cancellare la posta da un mail server. Per eseguire il processo di download viene instaurata una connessione di tipo TCP tra il client ed il server POP3 in ascolto di default sulla porta 110.

Una sessione POP3 consiste in una serie di comandi di tipo case-insesitive scambiati tra client e server seguiti da uno o più argomenti e conclusi con un CRLF (INVIO).

La sessione passa attraversi diversi stati:

AUTHORIZATION state: ci troviamo in questo stato in seguito all'avvenuta connessione TCP. Il server mostra il messaggio di greeting (Saluto) ed il client deve autenticarsi ed ottenere quindi l'autorizzazione per gestire la posta;

TRANSACTION state: ad autenticazione avvenuta si passa in stato fase dove è possibile inviare i comandi al server per gestire i messaggi di posta;

UPDATE state: dopo aver inviato il comando QUIT si passa nella fase di aggiornamento. Vengono eseguiti i comandi di cancellazione precedentemente memorizzati e successivamente la connessione TCP termina;

E' possibile che su un server POP3 sia impostato un tempo di inattività, trascorso il quale si viene automaticamente disconnessi senza passare in UPDATE state. Questo significa che la connessione TCP termina e gli eventuali comandi di cancellazione impartiti al server non saranno presi in considerazione.

Una tipica sessione POP3 è caratterizzata dalle seguenti fasi:

1. Il client POP3 si connette al server POP3 costantemente in ascolto sulla porta 110in attesa di connessioni.

2. Una volta connessi il server invia un messaggio di saluto al client solitamente indicando il nome e/o la versione del software server.

3. Si passa quindi alla fase di autenticazione dove il client deve inviare al server POP3 i comandi USER <nomeutente> e PASS <password>. Una volta che il client è stato autenticato è possibile eseguire le operazioni come leggere, cancellare un messaggio ecc.

4. E' possibile inviare i comandi al pop server il quale risponde con +OK in caso di comando eseguito correttamente, e con -ERR nel caso in cui non riesca ad interpretare il comando.

5. La sessione viene terminata con il comando QUIT.

I principali comandi utilizzati dal protocollo POP3 sono i seguenti:

USER <nomeutente>: Identifica l'utente che si connette al server;
PASS <password>: Invia in chiaro la password dell'utente che si sta autenticando;
STAT: Restituisce il numero di messaggi presenti e lo spazio da essi occupato;
LIST <numero messaggio>: Senza parametri indica la dimensione di ogni messaggio, altrimenti solo quella del messaggio indicato;
RETR <numero messaggio>: Visualizza il messaggio indicato;
TOP <numero messaggio>: Visualizza un numero predefinito di linee dalla testa del messaggio;
DELE <numero messaggio>: Cancella dal server il messaggio indicato;
NOOP: Non esegue nessuna operazione restituisce solo un messaggio +OK se il server risponde;
RSET: Cancella le operazioni di cancellazione DELE in precedenza inviate al server;
QUIT: Termina la sessione POP3 corrente e si disconnette dal server;

Un esempio di sessione POP3 da linea di comando:
homer@Joker:~$ telnet pop.springmail.com 110
Collegamento al pop server di nome pop.springmail.com tramite il programma telnet sulla porta 110
Trying 213.92.5.75...
Connected to pop.springmail.com.
Escape character is '^]'.
+OK ifm-pop (version 4.0.0) at all-1.inet.it starting.
Il server risponde, ed è pronto per l'autenticazione, ora siamo in AUTHORIZATION state
USER [email protected]
+OK Password required for [email protected].
Viene inviato il nome utente in questo caso rappresentato dall'intero indirizzo [email protected] Il server risponde +OK, ovvero che ha accettato l'utente e richiede la password
PASS hmj2001np
+OK [email protected] has 1 visible message (0 hidden) in 1173 octets.
Viene inviata la password ed il processo di autenticazione termina con successo. Ci troviamo ora in TRANSACTION state
STATS
-ERR Unknown command: "stats".
Inviando un comando errato, STATS anziché STAT, la risposta è un -ERR
STAT
+OK 1 1256
Stat viene eseguito con successo (+OK) ed indica che c'è un messaggio di 1256 byte
LIST
+OK 1 visible messages (1256 octets)
1 1256
.
LIST visualizza tutti i messaggi, è presente un solo messaggio
RETR 1
+OK 1256 octets
Return-Path:
Received: from  [::ffff:193.70.193.55] by hal-5.inet.it via I-SMTP-4.3.7-430
id ::ffff:193.70.193.55+8UyItiMrJDJ; Wed, 02 Apr 2003 22:47:27 +0200
Received: from email.it (62.10.125.8) by mail1c.webmessenger.it (6.7.016) (authenticated as [email protected])
id 3E8868D4001242B0 for [email protected]; Wed, 2 Apr 2003 22:47:24 +0200
Message-ID:
Date: Wed, 02 Apr 2003 22:47:21 +0200
From: Arnaldo Zitti
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.3) Gecko/20030312
X-Accept-Language: en-us, en
MIME-Version: 1.0
To:  [email protected]
Subject: Il protocollo POP3
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
X-UIDL: A0Y7UQ00N4rWVMr9ot4i
Salve,
questo è un messaggio di prova, come sample per
l'INFOBOX sul POP3 su OpenSkills.
--
Arnaldo aka [Homer]
.
Il comando RETR visualizza l'intero messaggio
DELE 1
+OK Message 1 has been deleted.
.
Viene cancellato il messaggio 1 con il comando DELE ed il server ne da conferma
In realtà il messaggio non viene cancellato ora, ma solo in UPDATE state

QUIT
+OK Pop server at all-1.inet.it signing off.
Una volta dato il comando QUIT si entra in UPDATE state, ed i messaggi verrano realmente cancellati
Connection closed by foreign host.
homer@Joker:~$
La connessione TCP è terminata e si ritorna al prompt


Durante una sessione POP3 tramite un client di posta eletronica come KMail, Outlook Express, Eudora od altri, è il client stesso che in base ai parametri di configurazione dell'account si occupa per noi di scambiare i messaggi con il server.

Privacy Policy