11.10 imaplib -- Client per protocollo IMAP4

Questo modulo definisce tre classi, IMAP4, IMAP4_SSL e IMAP4_stream, che incapsulano una connessione ad un server IMAP4 ed implementano una larga parta del protocollo client IMAP4rev1 come definito nell'RFC 2060. È compatibile all'indietro con i server IMAP4 (RFC 1730), notare però che il comando "STATUS"non è supportato in IMAP4.

Il modulo imaplib fornisce tre classi, IMAP4 è la classe di base:

class IMAP4( [host[, port]])
Questa classe implementa l'attuale protocollo IMAP4. La connessione viene creata e la versione del protocollo (IMAP4 o IMAP4rev1) viene determinata quando l'istanza viene inizializzata. Se host non viene specificato, allora viene utilizzato '' (l'host locale o localhost). Se viene omessa la porta port, viene usata quella standard per l'IMAP4 (143).

Nella classe IMAP4 vengono definite tre eccezioni come attributi.

exception IMAP4.error
Eccezione sollevata su ogni errore. Il motivo per cui è stata sollevata l'eccezione viene passato al costruttore come stringa.

exception IMAP4.abort
Errori del server IMAP4 causano il sollevamento di questa eccezione. Questa è una sotto classe di IMAP4.error. Notare che chiudendo l'istanza ed istanziandone una nuova è solitamente possibile recuperare da questa eccezione.

exception IMAP4.readonly
Questa eccezione viene sollevata quando ad una mailbox scrivibile viene cambiato il suo stato dal server. Questa è una sotto classe di IMAP4.error. Qualche altro client ha ora il permesso in scrittura, e la mailbox deve essere riaperta per ottenere nuovamente il permesso in scrittura.

C'é anche una sotto classe per le connessioni sicure:

class IMAP4_SSL( [host[, port[, keyfile[, certfile]]]])
Questa è una sotto classe derivata da IMAP4 che si connette su un socket criptato SSL (per usare questa classe avete bisogno di un modulo socket compilato con il supporto SSL). Se host non viene specificato, allora viene utilizzato '' (l'host locale o localhost). Se viene omessa la porta port, viene usata quella standard per IMAP4-over-SSL (993). Anche keyfile e certfile sono facoltativi - possono contenere una chiava privata formattata PEM ed il file della catena del certificato per la connessione SSL.

La seconda sotto classe permette connessioni create da un processo figlio:

class IMAP4_stream( command)
Questa è una sotto classe derivata da IMAP4 che si connette ad un descrittore di file stdin/stdout creato passando command a os.popen2(). Nuovo nella versione 2.3.

Sono definite le seguenti funzioni di utilità:

Internaldate2tuple( datestr)
Converte la stringa IMAP4 INTERNALDATE in UTC (Tempo Universale Coordinato). Restituisce una tupla del modulo time.

Int2AP( num)
Converte un intero in una rappresentazione stringa usando caratteri dall'insieme [A .. P].

ParseFlags( flagstr)
Converte una risposta IMAP4 "FLAGS" in una tupla di opzioni individuali.

Time2Internaldate( date_time)
Converte una tupla del modulo time in una rappresentazione IMAP4 "INTERNALDATE". Restituisce una stringa nella forma "DD-Mmm-YYYY HH:MM:SS +HHMM" (includendo le doppie virgolette).

Si noti che i numeri di messaggi IMAP4 cambiano al modificarsi della mailbox; in particolare, dopo un comando "EXPUNGE" che esegue le cancellazioni, i rimanenti messaggi vengono rinumerati. Così è altamente preferibile usare gli UID, con il comando UID.

Alla fine del modulo, c'é una sezione di test che contiene una serie più estesa di esempi d'uso.

Vedete anche:

Documenti che descrivono il protocollo, sorgenti e binari per server che lo implementano, possono essere tutti trovati presso l'IMAP Information Center dell'Università di Washington (http://www.cac.washington.edu/imap/).



Subsections
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.