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.