Python - IMAP
IMAP è un protocollo di recupero delle email che non scarica le email. Li legge e li visualizza. Ciò è molto utile in condizioni di larghezza di banda ridotta. La libreria lato client di Python chiamataimaplib viene utilizzato per accedere alle e-mail tramite il protocollo imap.
IMAP sta per Internet Mail Access Protocol. È stato proposto per la prima volta nel 1986.
Key Points:
IMAP consente al programma client di manipolare i messaggi di posta elettronica sul server senza scaricarli sul computer locale.
L'e-mail viene trattenuta e gestita dal server remoto.
Ci consente di intraprendere qualsiasi azione come scaricare, eliminare la posta senza leggere la posta. Ci consente di creare, manipolare ed eliminare cartelle di messaggi remoti chiamate caselle di posta.
IMAP consente agli utenti di cercare le e-mail.
Consente l'accesso simultaneo a più cassette postali su più server di posta.
Comandi IMAP
La tabella seguente descrive alcuni dei comandi IMAP:
SN | Descrizione comando |
---|---|
1 | IMAP_LOGIN Questo comando apre la connessione. |
2 | CAPABILITY Questo comando richiede di elencare le capacità supportate dal server. |
3 | NOOP Questo comando viene utilizzato come sondaggio periodico per nuovi messaggi o aggiornamenti di stato dei messaggi durante un periodo di inattività. |
4 | SELECT Questo comando aiuta a selezionare una casella di posta per accedere ai messaggi. |
5 | EXAMINE È uguale al comando SELECT tranne per il fatto che non è consentita alcuna modifica alla casella di posta. |
6 | CREATE Viene utilizzato per creare una cassetta postale con un nome specificato. |
7 | DELETE Viene utilizzato per eliminare definitivamente una casella di posta con un determinato nome. |
8 | RENAME Viene utilizzato per modificare il nome di una casella di posta. |
9 | LOGOUT Questo comando informa il server che il client ha terminato la sessione. Il server deve inviare la risposta BYE senza tag prima della risposta OK e quindi chiudere la connessione di rete. |
Esempio
Nell'esempio seguente accediamo a un server Gmail con le credenziali dell'utente. Quindi scegliamo di visualizzare i messaggi nella posta in arrivo. Un ciclo for viene utilizzato per visualizzare uno per uno i messaggi scaricati e alla fine la connessione viene chiusa.
import imaplib
import pprint
imap_host = 'imap.gmail.com'
imap_user = '[email protected]'
imap_pass = 'password'
# connect to host using SSL
imap = imaplib.IMAP4_SSL(imap_host)
## login to server
imap.login(imap_user, imap_pass)
imap.select('Inbox')
tmp, data = imap.search(None, 'ALL')
for num in data[0].split():
tmp, data = imap.fetch(num, '(RFC822)')
print('Message: {0}\n'.format(num))
pprint.pprint(data[0][1])
break
imap.close()
A seconda della configurazione della casella di posta, viene visualizzata la posta.