SMTP, POP3 e IMAP

Invio e consultazione della posta elettronica

Inviare e consultare la posta

SMTP, POP3 e IMAP sono protocolli del livello applicativo della suite TCP/IP e utilizzano TCP. Svolgono compiti diversi: SMTP invia e trasferisce i messaggi; POP3 e IMAP permettono al client di accedere alla posta ricevuta.

Il client è il programma usato dall’utente, per esempio Thunderbird o Outlook. Il server riceve, inoltra e conserva i messaggi nelle caselle di posta. Un messaggio non viene quindi inviato necessariamente da un PC direttamente al PC del destinatario: può restare sul server anche mentre il destinatario è scollegato.

TCP offre un trasferimento affidabile dei dati della connessione. La conferma che un server ha accettato un messaggio non dimostra però che il destinatario lo abbia letto.

SMTP — Invio e trasferimento

SMTP significa Simple Mail Transfer Protocol. Viene usato dal client per affidare il messaggio al proprio server e dai server per trasferire la posta verso il dominio del destinatario.

Bob scrive a Alice

  1. Bob compone un messaggio nel client di posta e preme Invia.
  2. Il client lo consegna al server SMTP configurato per l’account.
  3. Per un destinatario di un altro dominio, il server mittente individua normalmente i server di posta del dominio attraverso i record MX del DNS.
  4. Il messaggio viene trasferito al server destinatario con SMTP.
  5. Il sistema di posta destinatario lo deposita nella casella di Alice.
Invio della posta dal client di Bob al server mittente e al server destinatario tramite SMTP
Il DNS individua il server di posta destinatario; il trasferimento del messaggio avviene tra i server, non attraverso il DNS.

SMTP non serve a consultare i messaggi già presenti nella casella. Per quell’operazione il client usa POP3 oppure IMAP.

Porte SMTP

Porta TCPUso
25Trasferimento SMTP tra server.
587Invio dal client al server (submission), normalmente con autenticazione e negoziazione TLS tramite STARTTLS.
465Invio dal client al server con TLS implicito: la connessione è protetta con TLS fin dall’inizio.

Comandi SMTP

Il protocollo scambia comandi e risposte testuali. I comandi seguenti descrivono una transazione di invio:

ComandoFunzione
EHLOPresenta il client e richiede le estensioni disponibili.
MAIL FROM:Indica il mittente della busta SMTP.
RCPT TO:Indica un destinatario della busta SMTP; può essere ripetuto per più destinatari.
DATAAvvia l’invio delle intestazioni e del corpo del messaggio.
QUITTermina la sessione.

Nell’esempio, C: indica il client e S: il server. È un dialogo didattico semplificato: omette autenticazione e negoziazione TLS.

S: 220 mail.example.org ESMTP
C: EHLO pc-bob.example.org
S: 250 mail.example.org
C: MAIL FROM:<bob@example.net>
S: 250 OK
C: RCPT TO:<alice@example.org>
S: 250 OK
C: DATA
S: 354 End data with <CRLF>.<CRLF>
C: From: bob@example.net
C: To: alice@example.org
C: Subject: Prova SMTP
C:
C: Ciao Alice, questa e una prova.
C: .
S: 250 Message accepted
C: QUIT
S: 221 Bye

Il punto su una riga separata chiude il contenuto del messaggio. 220 annuncia il servizio, 250 indica il successo dell’operazione e 354 autorizza l’invio dei dati. In generale le risposte 4xx segnalano errori temporanei, quelle 5xx errori permanenti.

La busta SMTP (MAIL FROM e RCPT TO) serve al trasferimento. Le intestazioni From: e To: fanno parte del messaggio: non sono gli stessi campi e non devono necessariamente coincidere con la busta.

POP3 — Scaricare i messaggi

POP3 significa Post Office Protocol version 3. Il client si collega al server, si autentica e scarica i messaggi presenti nella casella.

  1. Alice apre il client di posta.
  2. Il client stabilisce la connessione con il server POP3 e si autentica.
  3. Richiede l’elenco dei messaggi e scarica quelli da consultare.
  4. In base alla configurazione, lascia una copia sul server oppure ne richiede la cancellazione.
Alice scarica dal server i messaggi della propria casella usando POP3
Il download non comporta da solo la cancellazione: il client può essere configurato per conservare una copia sul server.

POP3 non sincronizza le cartelle e lo stato letto/non letto come IMAP. Due dispositivi possono scaricare copie degli stessi messaggi se questi restano sul server, ma la gestione locale delle copie è distinta.

Porte POP3

Porta TCPUso
110POP3; se supportato, TLS può essere negoziato con il comando STLS.
995POP3 con TLS implicito, spesso indicato come POP3S.

Comandi POP3

ComandoFunzione
USERIndica il nome utente.
PASSInvia la password per l’autenticazione.
STATRestituisce numero dei messaggi e dimensione complessiva in ottetti.
LISTElenca numeri e dimensioni dei messaggi.
RETR 1Richiede il messaggio numero 1 della sessione.
DELE 1Contrassegna il messaggio numero 1 per l’eliminazione.
QUITTermina la sessione; dopo l’autenticazione avvia la fase di aggiornamento della casella.

Esempio dei comandi inviati dal client, senza le risposte del server:

USER alice
PASS password_di_esempio
STAT
LIST
RETR 1
QUIT

RETR scarica il messaggio, senza marcarlo per l’eliminazione. DELE lo marca: la rimozione viene richiesta nella fase di aggiornamento aperta dal QUIT della sessione autenticata. La password dell’esempio è fittizia; su una connessione senza TLS, USER e PASS non proteggono le credenziali.

IMAP — Gestire la casella su più dispositivi

IMAP significa Internet Message Access Protocol. Permette al client di lavorare sui messaggi e sulle cartelle conservati nel server. I dispositivi condividono così lo stato della casella, anziché gestire soltanto copie locali indipendenti.

Se Alice legge un messaggio sullo smartphone, il server può registrarlo come letto e il client del PC ritrova quello stato quando si sincronizza. Anche gli spostamenti tra cartelle e le cancellazioni vengono riportati sul server e sugli altri client connessi.

Accesso IMAP alla casella di Alice da PC, smartphone e tablet
La casella sul server è il riferimento condiviso. I client possono anche conservare copie locali per la consultazione offline.

IMAP non significa che il contenuto non venga mai scaricato: il client può richiedere intestazioni, parti del messaggio o messaggi completi. Le operazioni eseguite offline vengono sincronizzate quando torna disponibile la connessione.

Porte IMAP

Porta TCPUso
143IMAP; TLS può essere negoziato con STARTTLS.
993IMAP con TLS implicito, spesso indicato come IMAPS.

Alcune operazioni IMAP

ComandoFunzione
LISTElenca le caselle/cartelle disponibili.
SELECTSeleziona una casella, per esempio INBOX.
FETCHRichiede dati o contenuto dei messaggi.
STOREModifica gli attributi dei messaggi, come il flag di lettura.
LOGOUTTermina la sessione.

IMAP gestisce l’accesso alla casella; per spedire un nuovo messaggio il client continua a usare SMTP.

SMTP, POP3 e IMAP a confronto

AspettoSMTPPOP3IMAP
CompitoInvio e trasferimentoScaricamento dalla casellaAccesso e gestione della casella sul server
ComunicazioneClient–server e server–serverClient–serverClient–server
MessaggiTrasferiti verso il destinatarioScaricati; copia sul server opzionaleConservati sul server, con eventuali copie locali
Più dispositiviNon gestisce lo stato della casellaNessuna sincronizzazione di cartelle e stato come in IMAPSincronizzazione di cartelle e stato dei messaggi
Porte TCP25, 587, 465110, 995143, 993

Usare IMAP per leggere la posta non sostituisce SMTP: lo stesso account può usare entrambi, uno per consultare la casella e l’altro per inviare.

Protezione della connessione

Con TLS implicito, la negoziazione TLS inizia appena stabilita la connessione TCP al servizio. Con STARTTLS — STLS in POP3 — client e server avviano prima il dialogo del protocollo e poi negoziano TLS, se supportato e richiesto dalla configurazione.

Nei servizi reali, l’invio dal client e l’accesso alla casella vanno protetti con TLS. La protezione della connessione non equivale alla cifratura del messaggio da mittente a destinatario: il server può comunque trattarne il contenuto.

Il percorso completo di un messaggio

Schema riepilogativo di invio SMTP, accesso POP3 e IMAP e porte TCP
Nel riquadro delle porte, per POP3 su TCP 110 il comando corretto è STLS, non STARTTLS. La rimozione dei messaggi POP3 dipende dalla configurazione del client.

Bob invia il messaggio al proprio server con SMTP. Il sistema di posta lo trasferisce alla casella di Alice. Alice accede poi alla casella usando POP3 oppure IMAP: la scelta riguarda la consultazione e la gestione della posta ricevuta, non il suo invio.

Se la posta viene letta dal browser con una webmail, il browser comunica con il servizio web tramite HTTPS. SMTP, POP3 e IMAP descrivono altri collegamenti del sistema di posta, non necessariamente il collegamento browser–sito.

Esercizio con Cisco Packet Tracer

Configura le LAN di Bob e Alice, il DNS e due server di posta; verifica l’invio SMTP e lo scaricamento POP3.

Apri il laboratorio SMTP e POP3