Caratteristiche tecniche
Questa pagina d'informazione è certamente la meno accessibile di
questo sito web. È necessario essere al corrente del formato dei
messaggi trasmessi per posta elettronica (in particolare la codifica
MIME)
per seguire tutti i dettagli.
Generalità
All'origine, i protocolli Internet sono stati sviluppati per gli
Stati Uniti d'America, prima di essere utilizzati in altri paesi.
Quest'internazionalizzazione ha richiesto di tenere conto di alfabeti
più ricchi dell'alfabeto americano.
Inoltre, dopo i testi di base, i protocolli di posta elettronica
hanno integrato la possibilità di inviare testi con impaginazione ed
archivi di qualsiasi natura.
Purtroppo, per ogni problema incontrato, molte soluzioni tecniche
distinte sono state adottate senza che, di solito, tale diversità
presenti un interesse pratico.
D'altra parte, la complessità delle norme fa che non sono rispettate
alla lettera dai mailers, che sia per difficoltà d'attuazione, o a
causa d'esecuzione molto aproximative.
Nella pratica, la maggior parte dei mailers utilizza un sottoinsieme
limitato dei formati di messaggi possibili.
Due scelte sono dunque possibili:
- sia provare a trattare meglio possibile tutti i messaggi il
rischio di realizzare un'applicazione molto complessa,
- sia limitarsi ai casi più correnti (che possono comunque
includere il 99% dei messaggi).
È il secondo approccio che è stato adottato per Libremail.
Tuttavia, versione dopo versione, Libremail munta sempre più casi
particolari, senza tuttavia essere diventato molto più complesso che
all'origine.
Trattamento dei mails ricevuti in funzione della loro struttura
- Se il mail ricevuto si limita ad una zona di testo di tipo
text/plain, Libremail pubblicherà questo testo.
- Nel caso di messaggi multipart/alternative (inizialmente del
testo quindi l'equivalente in HTML), Libremail pubblicherà la
sezione testo del mail.
- Se il mail è in HTML puro (text/html), Libremail non fa conversioni
per pubblicare in modo leggibile questo tipo di messaggio.
Con contro, l'attrezzo suphtm è capace di individuare ed
eliminare prima della teletrasmissione i messaggi in HTML puro.
- Se un mail è del tipo di multipart/report, Libremail pubblicherà le
varie zone di testo che contiene le une al seguito delle altre.
Non ci sono ricerche di archivi uniti nei mails di tipo
multipart/report.
- Nel caso di un mail di tipo multipart/mixed, Libremail pubblicherà
il testo contenuto nella prima sezione. Secondo il caso, sarà:
- il testo contenuto in una sezione di tipo text/plain,
- lo sotto sezione text/plain di una sezione multipart/alternative,
- il testo non convertito della sezione text/html se non ci sono
sezioni text/plain.
Dopo questa visualizzazione, Libremail aggiungerà l'elenco degli
archivi uniti che potranno essere recuperati. Le sezioni text/html,
che possiedono un nome d'archivio, tuttavia non saranno esaminate
(dalla versione 1.2.1).
Se il mail contiene sezioni message/rfc822, quest'ultimi saranno
trattati come mails, ed il loro testo sarà aggiunto a quello del mail
principale.
Con contro, se un mail di tipo multipart/mixed comporta molte zone di
testo successive, solo la prima sarà pubblicato.
In un mail multi sezione, si può scegliere (dalla versione 1.1.0) di
pubblicare la sezione text/html (senza conversione dei segnali) al
posto della sezione text/plain .
Le sezioni multipart/related comparsa all'interno di altre sezioni
multipart è esaminata (dalla versione 1.2.1) per il trattamento dei
bordi di sezioni, senza tuttavia che la loro presenza non comporta
cambiamenti nell'analisi del mail.
Struttura dei messaggi inviati
Per la spedizione di mails, Libremail si limita a due strutture di
messaggio soltanto:
- mail costituito soltanto da una sezione testo di tipo text/plain,
- mail di tipo multipart/mixed composti di una sezione text/plain
seguito da uno o più archivi uniti.
Codifica dei caratteri
Così precisati più su, i protocolli Internet sono anzitutto stati
americani prima di internationaliser. Ma, gli americani possiedono 2
caratteristiche che le distinguono dalla maggior parte dei popoli
del pianeta:
- possiedono uno stock sproporzionato di armi di distruzione
massiccia,
- la loro lingua non comporta accenti.
Per la posta elettronica, è il 2o punto che è il più importante, in
particolare parce che all'origine, i protocolli Internet sono stati
previsti per una trasmissione dei caratteri su 7 pezzi.
In queste condizioni i caratteri aventi il 8o pezzo significativo
(cioè a 1) dovevano essere codificati.
Del resto, anche oggi dove la trasmissione dei caratteri su 8 pezzi
si è generalizzata, la norma di trasmissione prevede che i caratteri
dell'intestazione dei messaggi aventi il 8o pezzo significativo
piazzato saranno sempre codificati.
Due formati di codifica esistono: il formato "quoted printable" ed
il formato base64.
- Per la visualizzazione dei campi dell'intestazione dei messaggi,
Libremail sopporta dall'inizio la codifica quoted printable (quasi
universale) e dalla versione 1.0.4 la codifica base64 (molto più raro
e senza interesse pratico con un alfabeto europeo, se non può essere
quello di impedire una visualizzazione leggibile con mailers vecchi,
e complicare la selezione dei mails direttamente da parte del server
di messaggeria a partire dal campo Subject:).
- Per la visualizzazione del contenuto messaggi ricevuti, libremail
accetta dall'inizio i testi trasmessi direttamente su 7 o 8 pezzi
(senza codifica visibile al ricevimento), ed i messaggi codificati al
formato quoted printable.
I messaggi codificati base64 sono ora convertiti (dalla versione
1.1.0), ma con un trattamento dei salti di linea più rudimentale che
per gli altri formati. In qualsiasi modo, l'occupazione di questa
codifica per i testi dei mails è molto rara, e completamente
ingiustificata con un alfabeto europeo.
- Per il recupero degli archivi uniti, le codifiche quoted printable
e base64 tutti due è convertito dall'inizio, (e questo è il inferiore
delle cose).
- Per la spedizione di mails, Libremail realizza automaticamente
una codifica quoted printable dei campi dell'intestazione che
contengono caratteri speciali, mentre il corpo dei messaggi è
trasmise sotto 8-pezzi e dunque, senza codifica.
- Per inviare archivi uniti, in funzione del contenuto di
quest'archivi, Libremail sceglie tra la codifica quoted printable e
la codifica base64, quello che è il meno ingombrante.
Queste scelte tecniche decidono perfettamente nei paesi sviluppati
(ad esempio Francia), ma non sono può non essere adattati ad altre
regioni del mondo come l'Africa (a verificare).
Se risultasse che in questi paesi, i caratteri accentuati siano
correttamente trasmessi nei campi d'intestazione (in particolare
nell'argomento del mail), e nelle parti unite, ma non nel testo del
messaggio, occorrerebbe creare ed utilizzare una versione modificata
di "envmail" perché questi messaggi siano trasmessi con la codifica
quoted printable.
Giochi di caratteri riconosciuti
- All'origine, Libremail è stato concepito per lavorare con il gioco
di caratteri per difetto ISO-8859-15 o ISO-8859-1 quando il simbolo
€ (euro) non è necessario.
Può dunque pubblicare senza conversione i mails derivati da un PC che
funziona così bene sotto Windows (a alla versione 98), che sotto
alcune distribuzioni di GNU/Linux e di altro UNIX.
- Un sottoinsieme dei caratteri (non affichables nello stato) compresi
nell'intervallo 80h a 9Fh (utilizzato in particolare su Mac) è
convertito nel suo equivalente nel gioco ISO-8859-15.
- Libremail individua anche la codifica UTF-8 e converte i caratteri
corrispondenti quando sono equivalenti ad un carattere presente
nell'intervallo A0h a FFh del gioco ISO-8859-15.
Coloro che corrispondono ad un carattere dell'intervallo 80h a 9Fh
in questo gioco ISO non sono convertiti. Da un lato si arriverebbe
a caratteri non affichables, altro parte la loro codifica UTF-8 è
molto più anarchica di quello dei caratteri a partire da A0h.
Tuttavia, altri caratteri UTF-8, probabilmente dei caratteri
tipografici Mac, sono anche convertiti quando è possibile.
- Dalla versione 2.0 (ed i beta versioni 1.9.2 e 1.9.3), Libremail
analizza la variabile d'ambiente # per individuare il gioco di
caratteri (ISO-8859-n o UTF-8) utilizzato dal sistema di
sfruttamento.
I mails redatti con lo stesso gioco di caratteri di quello del
sistema di sfruttamento sono pubblicati senza conversione, gli altri
sono convertiti di ISO-8859-1 a UTF-8 o di UTF-8 a ISO-8859-15 per
permettere una buona visualizzazione dei caratteri accentuati.
Da stesso, la battitura dei mails può essere realizzata anche bene
con il gioco di caratteri ISO-8859-15 che il gioco di caratteri
UTF-8 .
- La codifica UTF-7 non è trattata da Libremail.
Ora e fuso orario
Per la visualizzazione delle date ed ore di spedizione dei messaggi,
Libremail non teneva conto dei fusi orari a versione 2.1.4 .
Dalla versione 2.2, il comando vmailsj corregge le divergenze
(in ore intere) tra il fuso orario del mittente e quello del destinatario
e ne tiene conto per fare una selezione cronologica di mails che utilizza
fusi orari diversi.
Gli attrezzi che servono a visualizzare il contenuto dei mails continuano
a pubblicare così come sono tra i mails date ed ore di spedizione e
fuso orario del mittente.