# Internet Message Access Protocol

L'Internet Message Access Protocol (IMAP), a volte anche chiamato Interactive Mail Access Protocol, è un protocollo di comunicazione per la ricezione di e-mail da parte del client.
Il significato "Interactive Mail Access Protocol" è stato valido fino alla versione 3, dalla quarta in poi è cambiato in "Internet Message Access Protocol". L'attuale versione è la "4 (revisione 1)".
Il protocollo è stato inventato da Mark Crispin nel 1986 come alternativa più moderna all'utilizzatissimo POP.
La porta predefinita del demone IMAP sull'host è la 143. Se si utilizza una connessione sicura tramite SSL, allora la porta è la 993.
Oltre che con un classico client, un account di posta in entrata con protocollo IMAP può essere configurato in qualsiasi applicazione software che possa ricevere posta elettronica.

## Differenze tra IMAP e POP

Entrambi i protocolli permettono ad un client (programma di posta elettronica oppure servizio di webmail) di accedere, leggere e cancellare le e-mail da un server, ma con alcune differenze. Con entrambi i protocolli, il client scarica la posta direttamente sul PC, eventualmente cancellandola dal server, ma è altresì possibile conservare copia delle proprie e-mail sul server (opzione da selezionare in fase di configurazione), e scaricarle in un secondo momento da altri computer. IMAP, a differenza di POP, permette procedure complesse di sincronizzazione. Ecco un elenco delle caratteristiche dell'IMAP ma non del POP:
* Accesso alla posta sia online che off-line
    Quando si utilizza il POP3, il client si connette per scaricare i nuovi messaggi e poi si disconnette. Con l'IMAP il client rimane connesso (in gergo IT "rimane in ascolto") e risponde alle richieste che l'utente fa attraverso l'interfaccia; questo permette di risparmiare tempo se ci sono messaggi di grandi dimensioni. POP3 salva in locale i messaggi, IMAP li lascia sul server e li memorizza temporaneamente nella cache (sebbene si possa poi configurare il client perché crei un file dati archiviato in locale, ad esempio nel formato pst).
* Più utenti possono utilizzare la stessa casella di posta
    Il protocollo POP assume che un solo client (utente) sia connesso ad una determinata mailbox (casella di posta), quella che gli è stata assegnata. Al contrario l'IMAP4 permette connessioni simultanee alla stessa mailbox, fornendo meccanismi per controllare i cambiamenti apportati da ogni dispositivo/client di posta con il quale si utilizza l'account.
* Supporto all'accesso a singole parti MIME di un messaggio
    La maggior parte delle e-mail sono trasmesse nel formato MIME, che permette una struttura ad albero del messaggio, dove ogni ramo è un contenuto diverso (intestazioni, allegati o parti di esso, messaggio in un dato formato, eccetera). Il protocollo IMAP4 permette di scaricare una singola parte MIME o addirittura sezioni delle parti, per avere un'anteprima del messaggio o per scaricare una mail senza i file allegati.
* Sincronizzazione
    Con IMAP è possibile configurare il client di posta con regole di sincronizzazione rispetto ai server, potendo operare per singola cartella in maniera granulare e con diverse opzioni.
* Sottoscrizione delle cartelle IMAP
    Il protocollo è sviluppato secondo un framework che permette ad un client di posta di sottoscrivere le cartelle prescelte. Cartella "sottoscritta" significa cartella IMAP registrata nell'albero delle cartelle del client di posta e/o visualizzabile nella relativa gerarchia. L'operazione è eseguita tramite query e successiva scelta di quale singola cartelle sottoscrivere. Solitamente, il client poi permette di visualizzare nella gerarchia di cartelle solo quelle sottoscritte o tutte. Tra le altre cose la sottoscrizione permette di condividere una cartella tra dispositivi/client/utenti diversi. La sottoscrizione è un'operazione di configurazione con il server di posta necessaria per poter visualizzare le cartelle IMAP e sincronizzarle con il server. Qualora una cartella IMAP sottoscritta abbia raggiunto dimensione enormi, è possibile annullare la sottoscrizione in modo da aumentare la velocità di sincronizzazione con il server.
* Supporto per attributi dei messaggi tenuti dal server.
    Attraverso l'uso di attributi, tenuti sul server, definiti nel protocollo IMAP4, ogni singolo client può tenere traccia di ogni messaggio, per esempio per sapere se è già stato letto o se ha avuto una risposta.
* Accesso a molteplici caselle di posta sul server
    Alcuni utenti, con il protocollo IMAP4, possono creare, modificare o cancellare mailbox (di solito associate a cartelle) sul server. Inoltre, questa gestione delle mailbox, permette di avere cartelle condivise tra utenti diversi.
* Possibilità di fare ricerche sul server
    L'IMAP4 permette al client di chiedere al server quali messaggi soddisfano un certo criterio, per fare, per esempio, delle ricerche sui messaggi senza doverli scaricare tutti.
* Supporto di un meccanismo per la definizione di estensioni
    Nelle specifiche dell'IMAP è descritto come un server può far sapere agli utenti se ha delle funzionalità extra. Molte estensioni dell'IMAP sono molto diffuse, ad esempio l'IMAP Idle, ovvero la funzione del protocollo IMAP descritto nella RFC 2177 che consente a un client di indicare al server che è pronto ad accettare notifiche in tempo reale. Questa caratteristica permette quindi all'utente di ricevere dal server ogni modifica che avviene nella casella e-mail, senza il bisogno di premere ogni volta "Invia/Ricevi".
Dati i molteplici vantaggi introdotti dal protocollo IMAP, il protocollo POP sta cadendo in disuso.