Questo modulo definisce una classe, Message, che rappresenta un ``messaggio di posta elettronica,'' cos� come definito dallo standard Internet RFC 2822.12.5Tali messaggi si compongono di una collezione di intestazioni di messaggio e di un corpo del messaggio. Questo modulo definisce inoltre una classe helper, AddressList, per l'analisi di indirizzi RFC 2822. Far riferimento alla RFC per informazioni sulla sintassi specifica dei messaggi RFC 2822.
Il modulo mailbox fornisce classi per leggere le caselle di posta prodotte da vari programmi di gestione di posta elettronica.
| file[, seekable]) |
Questa classe pu� trattare ogni oggetto di input che supporti un metodo readline(). Se l'oggetto di input possiede le funzionalit� seek e tell, sar� attivo anche il metodo rewindbody(); altrimenti, righe non conformi verranno respinte indietro nel flusso di input. Se l'oggetto di input non possiede la funzionalit� seek ma possiede un metodo unread() che pu� respingere indietro una riga di input, Message lo utilizzer� per respingere indietro le righe non conformi. Quindi questa classe pu� essere utilizzata per analizzare messaggi provenienti da un flusso bufferizzato.
L'argomento facoltativo seekable viene fornito come rimedio per certe librerie stdio nelle quali tell() elimina i dati bufferizzati prima di scoprire che la chiamata di sistema lseek() non funziona. Per la massima portabilit�, dovreste impostare l'argomento seekable a zero, per evitare la chiamata iniziale a tell() quando viene passato in input un oggetto unseekable come ad esempio un oggetto file creato da un oggetto socket.
Le righe di input, cos� come lette dal file, possono essere sia terminate dalla coppia CR-LF che da un singolo linefeed; una terminazione CR-LF viene sostituita da un singolo linefeed prima di memorizzare la riga.
Il controllo di corrispondenza dell'intestazione viene svolto in
modalit� non sensibile a maiuscole o minuscole; ad esempio
m['From'], m['from'] e
m['FROM'] conducono tutti allo stesso risultato.
| field) |
None produce
una lista vuota.
| str) |
| str) |
| address) |
(None, None).
| pair) |
(realname, email_address) e
restituisce il valore stringa adatto per un header To: o
Cc:. Se il primo elemento della coppia, pair, �
falso, allora il secondo elemento viene restituito invariato.
| date) |
'Mon, 20 Nov 1995 19:12:08 -0500'. Se l'analisi ha successo,
parsedate() restituisce una tupla di nove elementi che pu�
essere passata direttamente a time.mktime(); altrimenti
verr� restituito None. Notate che i campi 6, 7 e 8 della tupla
risultante non sono utilizzabili.
| date) |
None o una tupla di dieci elementi; i primi nove elementi
costituiscono una tupla che pu� essere passata direttamente a
time.mktime(), ed il decimo � lo scostamento di fuso orario
della data UTC (che � la dicitura ufficiale per il Greenwich Mean
Time). Notare che il segno che indica lo scostamento di fuso orario �
l'opposto del segno della variabile time.timezone per lo stesso
fuso orario; quest'ultima variabile segue lo standard POSIX mentre
questo modulo segue l'RFC 2822. Se la stringa in input non
specifica il fuso orario, l'ultimo elemento della tupla restituita
avr� il valore None. Notare che i campi 6, 7 e 8 della tupla
risultante non sono utilizzabili.
| tuple) |
None, si assume l'ora locale. Mancanza
minore: questa funzione comincia con l'interpretare i primi 8 elementi
come ora locale e quindi compensa tenendo conto della differenza di
fuso orario; questo potrebbe portare ad un minimo errore sulle date di
passaggio all'ora legale, comunque non tale da preoccupare per i
comuni utilizzi.
Vedete anche: