12.3 mailcap -- Gestione di file Mailcap

I file mailcap vengono usati per configurare applicazioni in modo MIME, cosicch� lettori di posta e browser Web reagiscano a file con differenti tipi MIME. Il nome ``mailcap'' deriva dalla frase ``mail capability'' (NdT: potenzialit� della posta elettronica). Ad esempio un file mailcap potrebbe contenere una riga come "video/mpeg; xmpeg %s". A questo punto se l'utente incontra un messaggio di posta elettronica o un documento Web con il tipo MIME video/mpeg, "%s" verr� sostituito con un file con nome (in genere un file temporaneo) ed il programma xmpeg verr� avviato automaticamente per eseguire il file.

Il formato mailcap � documentato nella RFC 1524, ``A User Agent Configuration Mechanism For Multimedia Mail Format Information,'' ma non � uno standard internet. Comunque i file mailcap vengono supportati dalla maggior parte dei sistemi Unix.

findmatch( caps, MIMEtype[, key[, filename[, plist]]])
Restituisce una doppia tupla; il primo elemento � una stringa che contiene la riga di comando da eseguire (che pu� essere passata ad os.system()), il secondo elemento � il dato mailcap per un tipo MIME passato. Se non viene trovato un tipo MIME corrispondente viene restituito (None, None).

key � il nome del campo desiderato, che rappresenta il tipo di attivit� da eseguire; il valore predefinito � 'view', visto che nei casi pi� comuni si vuole semplicemente vedere il corpo dei dati di tipo MIME. Altri possibili valori potrebbero essere 'compose' ed 'edit', se si volesse creare un nuovo corpo del tipo MIME dato o si volesse modificarlo. Vedere la RFC 1524 per una lista completa di tali campi.

filename � il file con nome che sostituir� "%s" sulla riga di comando; il valore predefinito � '/dev/null' che quasi certamente non � ci� che vogliamo, quindi in genere verr� sovrascritto specificando un nome di file.

plist pu� essere una lista contenente parametri con nome; il valore predefinito � semplicemente una lista vuota. Ogni inserimento nella lista deve essere una stringa contenente il nome del parametro, un segno di uguale ("=") ed il valore del parametro. Le voci relative ai mailcap possono contenere parametri con nome quali %{foo}, che verr� sostituito dal valore del parametro di nome 'foo'. Ad esempio se la riga di comando "showpartial %{id} %{number} %{total}" si trovasse in un file mailcap e plist fosse impostata a ['id=1', 'number=2', 'total=3'], la riga di comando risultante sarebbe 'showpartial 1 2 3'.

In un file mailcap il campo ``test'' pu� essere facoltativamente specificato per testare alcune condizioni esterne (quali l'architettura della macchina o l'ambiente grafico in uso) per determinare se applicare o meno la riga del mailcap. findmatch() controller� automaticamente tali condizioni e salter� l'istruzione se il controllo fallisce.

getcaps( )
Restituisce un dizionario che mappa i tipi MIME in una lista di voci per file mailcap. Il dizionario pu� essere passato alla funzione findmatch(). Un'istruzione viene immagazzinata come una lista di dizionari ma non dovrebbe essere necessario conoscere i dettagli di tale rappresentazione.

L'informazione � derivata da tutti i file mailcap trovati sul sistema. Le impostazioni del file mailcap utente $HOME/.mailcap sovrascriveranno le impostazioni dei file mailcap di sistema /etc/mailcap, /usr/etc/mailcap e /usr/local/etc/mailcap.

Un esempio d'uso:

>>> import mailcap
>>> d=mailcap.getcaps()
>>> mailcap.findmatch(d, 'video/mpeg', filename='/tmp/tmp1223')
('xmpeg /tmp/tmp1223', {'view': 'xmpeg %s'})
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.