Differenza tra i protocolli email IMAP, POP3 e SMTP

On Agosto 20, 2024
9min read
Yevgen Tsvetukhin Product Manager @Mailtrap

Nel trasferimento di un messaggio di posta elettronica, sono principalmente tre le parti coinvolte: il mittente, il destinatario e il server email. L’email va dal mittente al server di posta, che poi permette al destinatario di ricevere il messaggio.

Qual è il ruolo dei protocolli email qui? Essi stabiliscono connessioni tra le parti coinvolte nel trasferimento. Quindi, è necessario un protocollo per inviare e uno per ricevere.

Oggi esamineremo e confronteremo i tre protocolli email più comunemente usati – IMAP, POP3 e SMTP – e ti aiuteremo a scegliere l’opzione giusta per le tue esigenze.

Cos’è un protocollo email?

Un protocollo email è una combinazione di principi e regole che rendono possibile trasferire messaggi tra diversi server, macchine e client di posta. Crea standard che i messaggi devono seguire per raggiungere i destinatari nel loro stato originale.

Ad esempio, quando invii un’email da un client Gmail a qualcuno con un indirizzo Outlook, ti aspetti che tutti gli allegati e gli elementi del corpo siano presenti quando visualizzano la tua email. Questo è vero sia che utilizzino Apple Mail, Microsoft Outlook o Thunderbird per accedere alla loro casella di posta.

I protocolli email determinano anche come i messaggi devono essere inviati e come accedervi, quale formato devono avere e quale struttura deve seguire la connessione.

SMTP – un protocollo standard per inviare email

Cos’è SMTP?

Il Simple Mail Transfer Protocol (SMTP) stabilisce come il messaggio passa dal mittente al server di posta. Inoltre, è usato da un agente di trasferimento di posta (MTA) per consegnare email tra server. Questo processo è chiamato mail relaying (o SMTP relay).

SMTP è destinato solo all’invio di messaggi email.

Come vengono inviate le email tramite SMTP

Come funziona SMTP

Il flusso di lavoro SMTP consiste in comandi inviati dal client SMTP e risposte corrispondenti dal server SMTP.

I comandi SMTP predefiniti sono basati su testo, come HELO, MAIL FROM, e altri. A volte potresti incontrare comandi SMTP estesi (ESMTP) come EHLO, STARTTLS, ecc.

Le risposte sono rappresentate da codici di completamento numerici (ad esempio, 220, 250, 354, ecc.). Per ulteriori informazioni sui comandi SMTP e i codici di risposta, leggi il nostro post dedicato sul blog.

Qualsiasi conversazione SMTP consiste in tre fasi:

  • Handshake SMTP – Il client SMTP stabilisce una connessione TCP con il server SMTP. Una volta che il server risponde con 250, l’handshake inizia. La fase termina quando il server conferma l’indirizzo del destinatario.
  • Trasferimento email – Il codice 354, come risposta al comando DATA, avvia il trasferimento dell’email. Una volta che il server riceve un punto finale, il messaggio è trasferito.
  • Terminazione – Client e server si salutano usando rispettivamente il comando QUIT e il codice 221.

Diamo un’occhiata all’interazione tra il client SMTP e il server attraverso un semplice esempio di consegna email:

Comando o RispostaCosa significa
Client: HELO client.rocket.com
o
EHLO client.rocket.com
Si identifica e avvia la conversazione SMTP. Il nome del dominio o l’indirizzo IP è solitamente inviato come argomento insieme al comando. EHLO è un comando alternativo per iniziare la conversazione. Identifica che il client utilizza il protocollo ESMTP.
Server:250OK o completato
Client: MAIL FROM:<marco@rocket.com>Dice che una nuova transazione di posta sta iniziando e specifica il mittente
Server:250OK o completato
Client: RCPT TO:<gianna@gmail.com>Specifica il destinatario. (Per più destinatari, il comando sarà ripetuto per ogni indirizzo del destinatario)
Server:250OK o completato
Client: DATAInizia il trasferimento dei contenuti dell’email, inclusi testo del corpo, allegati, e così via.
Server:354Permette al client di iniziare il trasferimento del contenuto
Client: Date: Wed, 24 July 2019 16:03:23Data
Client: From: marco@rocket.comHeader From
Client: Subject: How SMTP worksOggetto
Client: To: gianna@gmail.comHeader To
Client: Linea vuota
Client: Hope, it’s not boring 🙂Testo del corpo
Client: .Una volta che i contenuti del messaggio sono stati trasferiti, deve essere inviato un singolo punto su una linea per terminare.
Server:250OK o completato
Client: QUITRichiesta di terminare la conversazione
Server:221Chiude il canale di trasmissione

Porte SMTP

  • 25

Questa è una porta standard per il relay dei messaggi tra server email. I provider di cloud hosting e molti client email (Gmail, Microsoft Outlook, Mozilla Thunderbird, ecc.) bloccano la porta 25 per prevenire lo spam. Di solito danno priorità alle connessioni sicure come 587 o 465.

  • 465

465 non è una porta conforme alle specifiche RFC. Era destinata alla crittografia SMTPS e al wrapper di autenticazione su SMTP. IANA ha registrato 465 come porta SMTP, ma non è mai stata riconosciuta come canale ufficiale di trasmissione o invio SMTP.

In seguito, la porta 465 è diventata obsoleta ed è stata revocata a favore del wrapper STARTTLS su SMTP. Tuttavia, oggi molti server utilizzano ancora SMTPS e mantengono la porta 465.

  • 587

Una porta SMTP predefinita 587 è l’opzione per inviare un’email per il routing. La crittografia TLS garantisce l’invio sicuro dell’email. Quasi tutti i server di posta supportano 587.

  • 2525

Non è una porta SMTP ufficiale, ma quasi tutti i provider di servizi email la supportano. 2525 è protetta in modo simile a 587 e viene spesso utilizzata in sua vece. Quindi, se l’uso della porta SMTP predefinita causa qualche problema, prova 2525.

Per maggiori informazioni, leggi il nostro post sul blog riguardante le porte SMTP.

E per saperne di più sulle differenze tra SMTP e un protocollo come IMAP, guarda questo video:

IMAP4 e POP3 – protocolli per ricevere email

Una volta che l’email bussa alla porta del server di posta, viene utilizzato IMAP o POP3 per recuperarla. Entrambi questi server sono agenti di accesso ai messaggi (MAA).

Cos’è IMAP?

L’Internet Message Access Protocol (IMAP) è uno standard di comunicazione per l’accesso alle email. Oggi è in uso la sua quarta versione, da cui il nome IMAP4.

IMAP memorizza le email su un server remoto e le scarica su richiesta quando il destinatario le apre. Quindi, il protocollo IMAP accede all’email da qualsiasi dispositivo o posizione se autorizzato. Questo consente la sincronizzazione delle email, motivo per cui IMAP è l’opzione preferita dalla maggior parte dei provider di servizi email.

Come funziona IMAP

Come funziona IMAP

Ecco il meccanismo di base dell’interazione client/server IMAP:

  • Il client di posta del destinatario si connette al server su cui è memorizzato il messaggio
  • Il destinatario può vedere le intestazioni dei messaggi di tutte le email sul server
  • Se il destinatario sceglie un messaggio particolare da leggere, IMAP lo scarica su richiesta

Dando un’occhiata più da vicino, una connessione IMAP nella sua forma più semplice può apparire come segue:

Comando del clientDescrizione
LOGINApre la connessione IMAP
LISTCREATERENAME e altri comandiComandi che ti permettono di gestire la casella di posta
SELECTDefinisce la casella di posta corrente e apre una sessione IMAP
LISTDOWNLOADDELETE e altri comandiComandi che ti permettono di gestire i messaggi
CLOSEChiude la sessione IMAP. Se vuoi aprire una nuova sessione, puoi farlo impostando un’altra casella di posta corrente. Una volta aperta la nuova sessione, il server IMAP aggiorna permanentemente i messaggi secondo la sessione precedente.
LOGOUTChiude la connessione IMAP

Qui troverai una selezione completa dei comandi del client.

Accidenti! Abbiamo dimenticato le risposte del server IMAP. Ce ne sono tre forme:

  • Risposte di Stato (OK, NO, BAD, PREAUTH e BYE)

Possono includere un codice di risposta come ALERT o CAPABILITY. Un codice di risposta fornisce informazioni aggiuntive oltre alla condizione di risposta di stato.

  • Dati del Server

Queste risposte includono Stato del Server e della Casella di Posta (CAPABILITY, LIST, ecc.), Dimensioni della Casella di Posta (EXISTS e RECENT) e Stato del Messaggio (EXPUNGE e FETCH)

  • Richiesta di Continuazione del Comando

Questa risposta conferma che il server è pronto ad accettare la continuazione del comando del client. È rappresentata da un token “+”.

Porte IMAP

  • 143 – Una porta IMAP predefinita senza crittografia
  • 993 – Una porta SSL/TLS protetta usata dalla maggior parte dei provider di servizi email. Viene spesso chiamata IMAPS.

Cos’è POP3?

Post Office Protocol 3 è un modo più semplice per accedere alle caselle di posta. Utilizziamo la sua terza versione, da cui il nome POP3. Gli utenti amano questo protocollo per la sua bassa dipendenza dalle connessioni Internet.

Il protocollo POP3 scarica le email dal server sul computer locale, quindi puoi leggerle anche offline. Il server elimina i messaggi una volta recuperati. Questa è l’impostazione predefinita e comune, ma c’è l’opzione per applicare una politica del sito riguardante la conservazione delle email sul server.

Allo stesso tempo, anche se il client POP3 include opzioni di configurazione per memorizzare le email, il server non supporterà tale azione.

Come funziona POP3

Come funziona POP3

La connessione POP3 consiste in quattro passaggi:

  • Il client si connette al server (stato di AUTORIZZAZIONE)
  • Il client recupera le nuove email (stato di TRANSAZIONE)
  • Il server elimina i messaggi memorizzati (stato di AGGIORNAMENTO)
  • Il client si disconnette dal server

Diamo un’occhiata più da vicino ad una sessione POP3.

Comando o RispostaCosa significa
Server:Il server è in attesa di connessione sulla porta TCP/IP 110
Client: Il client stabilisce una connessione TCP
Server:+OK POP3 server ready <example.server.com>Se tutto va bene, la risposta del server sarà coerente. Altrimenti, mostrerà -ERR
Client: APOP mrose c4c9334bac560ecc979e58001b3e22fbFornisce l’identificazione dell’origine e la protezione della riproduzione per la sessione. mrose è il parametro del nome e c4c9334bac560ecc979e58001b3e22fb è il parametro digest. Identificano una casella di posta e una stringa digest MD5
Server:+OK Se tutto va bene, la risposta del server sarà coerente. Altrimenti, mostrerà -ERR
Client: STATOra, la sessione entra nello stato di TRANSAZIONE. Il comando STAT chiede quanti messaggi sono attualmente nella casella di posta e le loro dimensioni in ottetti
Server:+OK 1 334La maildrop ha un messaggio di 334 ottetti
Client: DELE 1Elimina il messaggio
Server:+OK message 1 deletedSe tutto va bene, la risposta del server sarà coerente. Altrimenti, mostrerà -ERR
Client: QUITUna volta terminata la sessione, il client si disconnette tramite il comando QUIT
Server:+OK dewey POP3 server signing off (maildrop empty)Se tutto va bene, la risposta del server sarà coerente. Altrimenti, mostrerà -ERR
Client: Il client chiude la connessione TCP
Server:Il server è in attesa di connessione sulla porta TCP 110

Abbiamo usato solo due comandi (DELE e STAT) che sono validi nello stato di TRANSAZIONE. Puoi trovare altre opzioni qui.

Per quanto riguarda le risposte POP3, contengono un indicatore di stato (+OK o -ERR) e una parola chiave che può essere arricchita con informazioni aggiuntive (ad esempio, -ERR no such message, only 2 messages in maildrop).

Porte POP3

  • 110 – Una porta POP3 predefinita senza crittografia
  • 995 – Una porta SSL/TLS protetta che è spesso chiamata POP3S.

IMAP o POP3 – quale protocollo scegliere?

Inizialmente, stavamo considerando di fare una tabella con un confronto tra i pro e i contro di IMAP e POP3. Ma questa idea si è rivelata insostenibile poiché utenti diversi avrebbero esigenze diverse in termini di standard dei protocolli email. Quindi, abbiamo deciso di impostarla in questo modo invece.

Scegli IMAP4 se:

  • hai bisogno di accedere alla posta da diversi dispositivi
  • hai bisogno di organizzare la tua posta in cartelle o in una sorta di gerarchia
  • hai spazio di archiviazione sul server illimitato
  • hai una connessione Internet costante e stabile
  • hai bisogno di un accesso rapido alla tua posta

Scegli POP3 se:

  • la tua connessione Internet è instabile o persino non disponibile
  • dai priorità alla privacy rispetto all’accessibilità e preferisci memorizzare le email sulla macchina locale
  • sei l’unica persona con accesso al tuo account email e utilizzi un solo dispositivo per tale scopo

Se ancora non sai quale protocollo scegliere, consulta il nostro articolo sulle differenze chiave tra IMAP e POP3 o guarda questo video:

E HTTP?

L’HyperText Transfer Protocol (HHTP) è un’altra opzione per accedere alle email, tuttavia non è un protocollo email. Indipendentemente da ciò, HTTP può essere usato per inviare e ricevere messaggi dalla webmail, come Gmail.com. È anche una buona pratica accedere alle email nelle app mobili tramite HTTP.

Questo protocollo ha due porte predefinite: 80 per connessioni non criptate e 443 per connessioni sicure.

Come un’email passa dal mittente al destinatario

Ora, sai a cosa serve ciascun protocollo email. Mappiamo un quadro completo di come un messaggio elettronico può passare da un mittente (marco@mittente.com) a un destinatario (gianna@destinatario.com).

  • Il client di posta del mittente si connette al server SMTP (ad esempio, smtp.gmail.com)
  • Il server SMTP autentica l’indirizzo email del destinatario utilizzando i record DNS (per maggiori informazioni su autenticazione email, leggi i nostri post sul blog sui record SPF, DKIM, DMARC e BIMI o guarda i video sul nostro canale YouTube)
  • Una volta che il server SMTP di Gmail autorizza il destinatario, invia l’email al server SMTP di destinatario.com
  • Il server SMTP di destinatario.com verifica se gianna@destinatario.com è valido
  • Il server SMTP inoltra l’email al server IMAP/POP3

È sufficiente configurare i protocolli email per inviare e ricevere email con successo?

La risposta breve è no. Mentre i protocolli email configurati correttamente sono essenziali, non sono certamente sufficienti. Hai bisogno di un’infrastruttura email sicura con strumenti di deliverability integrati per raggiungere le caselle di posta dei destinatari.

Per saperne di più su cosa sia un’infrastruttura email, guarda il nostro video dedicato:

Oltre a un’infrastruttura email, potresti anche aver bisogno di una casella di posta virtuale per ricevere tutte le tue email di prova.

Mailtrap è una piattaforma unica che si prende cura di tutte le tue esigenze relative alle email. Testa le tue email utilizzando un server SMTP falso fornito da Email Testing, invia le tue email con il server SMTP affidabile di Email API/SMTP, e monitora le prestazioni della tua infrastruttura. Tutto questo all’interno di una piattaforma di Email Delivery.

Home page di Mailtrap

Email Testing è una Email Sandbox che cattura tutto il tuo traffico SMTP. Puoi usarla per verificare la funzionalità di invio email della tua app e vedere se il server SMTP è configurato correttamente. Con le funzionalità di HTML Check e Spam Analysis di Email Testing, risolverai i problemi di deliverability prima che la tua app entri nell’ambiente di produzione.

Email Testing di Mailtrap - inbox

Una volta terminati i test, puoi configurare la tua app per utilizzare il server SMTP di Email API/SMTP che consegna le tue email alle caselle di posta in pochi secondi. In alternativa, integra Mailtrap con l’API per maggiore flessibilità. Qualunque metodo tu scelga, avrai accesso alle capacità uniche di monitoraggio di Email API/SMTP – analisi utili con report dettagliati e dashboard per avere una visuale globale.

Statistiche Email API/SMTP di Mailtrap

Ecco come apparirà la procedura di consegna delle email se dovessi usare Email API/SMTP o Email Testing di Mailtrap:

  • Il client di posta del mittente si connette al server SMTP reale o falso (live.smtp.mailtrap.io e sandbox.smtp.mailtrap.io, rispettivamente). Mailtrap fornisce tutte le credenziali necessarie come porta, nome utente, password e metodo di autenticazione.
  • Se stai utilizzando Email Testing, il server SMTP falso invierà un’email al server POP3 (pop3.mailtrap.io).
    • Vedrai il tuo messaggio nella tua casella di posta Demo se la tua app funziona correttamente.
  • Se stai utilizzando Email API/SMTP, le email saranno indirizzate ai server POP3 o IMAP dei destinatari.
    • In pochi secondi, appariranno nelle caselle di posta dei tuoi destinatari.

Per maggiori informazioni sull’integrazione e l’uso di Mailtrap, consulta la nostra guida introduttiva.

Speriamo che il nostro post sul blog su IMAP vs POP3 vs SMTP ti abbia aiutato a chiarire il complicato mondo delle email.

Article by Yevgen Tsvetukhin Product Manager @Mailtrap