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.