Copyright © 1986 Universita'
di Firenze. All rights reserved.
Free license available.
INTERNET & APPLICATIONS
APPLICATIVI: E-mail




E-mail (Electronic Mail)
L'E-mail è il servizio applicativo più largamente usato
e molti utenti accedono alla rete solo facendo uso di questo strumento. L'E-mail offre un
metodo molto conveniente per trasferire informazioni e per questo motivo gli utenti la
usano maggiormente dei protocolli FTP per trasferire files.
Questo servizio differisce dagli altri usi della rete, dove i protocolli di rete inviano
pacchetti direttamente alla destinazione, usando il timeout e la ritrasmissione qualora non
giunga acknowledgement. Nel caso della posta elettronica, il mittente non può
aspettare che la macchina remota si renda disponibile per poter continuare il proprio lavoro
o per essere sicuro che il trasferimento non vada in qualche modo perduto.
Per gestire il ritardo nel recapito della posta, il sistema usa una tecnica nota come
spooling. Quando l'utente invia un messaggio di mail, il sistema pone una copia
in una area di immagazzinamento privata, insieme all'identificazione del mittente, del
destinatario, della macchina di destinazione e del tempo di deposito. Il sistema inizia poi
il trasferimento, in background, alla macchina remota, permettendo al mittente di procedere
con le proprie attività. La figura mostra quanto detto:
Il processo di trasferimento in background diventa il client; esso dapprima associa al nome
della macchina di destinazione un indirizzo IP facendo uso del domain name system e dopo
tenta di instaurare una connessione TCP con il server di mail.
Se l'operazione va a buon fine, il processo di trasferimento passa una copia del messaggio
al server remoto che lo memorizza nella sua area di spool; solo allora il client
rimuoverà la copia locale. Se invece non è possibile stabilire la connessione
TCP, il processo di trasferimento controllerà periodicamente l'area di spool per
ritentare il recapito della posta ancora presente; se dopo il tempo massimo stabilito il
messaggio non sarà ancora stato inoltrato a destinazione, il sistema lo
segnalerà al mittente.
Ci sono tre punti fondamentali da chiarire nella descrizione del recapito
della mail vista finora.
Per primo, l'utente identifica il destinatario mediante due stringhe contenenti il nome
della macchina di destinazione di mail e l'indirizzo della mailbox dell'utente
residente su quella macchina.
In secondo luogo, i nomi di tali specifiche sono indipendenti da altri nomi assegnati alla
macchina; generalmente, il nome di una mailbox è come quello di un login di utente
ed il nome della macchina di destinazione è come quello di un domain name di macchina,
ma ciò non è necessario.
Infine il diagramma di figura non tiene conto nè della mail processing,
che riguarda la mail inviata da un utente ad un altro di una stessa macchina, nè della
mail forwarding, che riguarda la posta arrivata ad una macchina ma che deve essere
inoltrata ad un'altra macchina.
Molti sistemi forniscono un software di mail forwarding che include
un meccanismo di mail alias expansion (espansione di un alias). Un forwarder di mail
permette al sito locale di mappare gli identificatori usati in indirizzi di mail in un set di
uno o più nuovi indirizzi di mail.
Una mappatura alias può essere di due tipi: molti-uno ed uno-molti. Nel primo caso il
sistema di alias permette ad un singolo utente di avere identificatori di mail multipli,
assegnando un set di identificatori ad una singola persona. Nel secondo caso il sistema
permette ad un sito di associare un gruppo di destinatari ad un singolo identificatore.
Usare gli aliases che assegnano un identificatore ad una lista di identificatori rende
possibile impiantare un mail exploder che accetta un messaggio in ingresso e lo invia
ad un vasto set di destinatari; tale set sarà detto electronic mail listing
e non è necessario che tutti i membri di tale lista siano locali.
In figura è illustrato un sistema di mail che supporta aliases ed espansione di
lista:
La posta in ingresso ed in uscita passa attraverso il mail forwarder che espande gli aliases.
Se l'alias database specifica che all'indirizzo x deve essere assegnato il nuovo
indirizzo y, l'espansione dell'alias riscriverà l'indirizzo di destinazione;
il programma di espansione provvederà poi a determinare se y specifichi un
indirizzo locale o remoto e lo posizionerà nell'area di spool relativa.
Esistono due fondamentali differenze tra sistemi di inoltro di mail che
sono connessi o meno ad Internet.
Per prima cosa una rete TCP/IP rende possibile un servizio di recapito universale. Infatti
tutte le macchine connesse ad Internet si comportano come se fossero collegate ad un'unica
rete per cui è possibile definire un protocollo di scambio di mail di tipo standard.
In secondo luogo un sistema di E-mail costruito sul TCP/IP è molto più
affidabile di un qualunque altro sistema che poggia su reti arbitrarie. Ciò diventa
chiaro se si considera che il TCP/IP fornisce una connessione di tipo end-to-end; ciò
garantisce che ogni messaggio di mail rimarrà nella macchina del mittente fino a che
non sarà stato copiato con successo nella macchina del destinatario.
I sistemi alternativi usano i mail gateways per trasferire messaggi; questi eseguono
conversioni di formato sugli header della posta. In generale la macchina
del mittente non contatta direttamente la macchina del destinatario, ma invia la mail
attraverso macchine intermedie, a scapito dell'affidabilità del servizio; infatti una
volta che il messaggio ha raggiunto la macchina intermedia, la copia locale viene scartata,
perdendo la certezza che l'operazione di inoltro vada a buon fine. Risulta ovvio che nel caso
in cui si adopera un mail gateway, tale certezza sarà ancora più compromessa
a causa delle conversioni di formato.
Inoltre in tali sistemi alternativi ci sono dei ritardi introdotti dalle macchine intermedie,
sulle quali l'utente non ha nessun tipo di controllo diretto.
L'unico vantaggio del gateway è quello di rendere compatibile la mail prodotta su una rete
privata che non supporta TCP/IP per poi inoltrarla tramite Internet.
Per questo motivo gli standards TCP/IP per il servizio di E-mail sono divisi in due set: uno
standard specifica, nella testata, il formato del messaggio di mail (noto come '822' perchè RFC 822
contiene lo standard), mentre l'altro specifica i dettagli dello scambio di mail tra due
computers. Separare i due standards permette la costruzione dei gateways di mail per rendere
compatibili sistemi di inoltro di posta diversi, mantenendo però lo stesso formato per
entrambi.
La forma generale di un indirizzo di mail è abbastanza semplice:
local-part @ domain-name
dove domain-name è il domain-name del destinatario e local-part è
l'indirizzo della mailbox di quella macchina.
Comunque i gateways di mail rendono gli indirizzi più complessi, perchè chi
è fuori da Internet deve indirizzare la mail al più vicino gateway. In tal caso
l'indirizzo sarà:
local-part%domain-name @ machine-name
Una volta che la mail ha raggiunto la macchina intermedia specificata dal machine-name,
il software del gateway estrae il nome della mailbox sostituendo il simbolo '%' con '@' e
procede come nel caso precedente.
In ogni caso non esiste un vero e proprio standard per gli indirizzi che attraversano le barriere
dei gateways che collegano reti private con Internet, perchè ogni gateway determina i
dettagli che permettono di interpretare gli indirizzi di E-mail.
Un messaggio di posta elettronica ha una specifica struttura; essa
è identificata e descritta nell'intestazione di ogni messaggio. Lo standard 822
specifica, nella testata, il formato del messaggio di mail (noto come '822' perchè RFC 822
contiene lo standard).
Per vedere l'intestazione completa occorre visualizzare il messaggio con
il comando h invece di Return.
Eccone un esempio:
From bertolo@hp4.sm.die.unifi.it Mon Jan 23 11:25 MET 1995
Received: by hp4.sm.die.unifi.it id AA09100
(5.65+/IDA-1.3.5 for user_A); Mon, 23 Jan 95 11:25:16 +0100
Return-Path: <bertolo@hp4.sm.die.unifi.it>
From: maresa bertolo <bertolo@hp4.sm.die.unifi.it>
Date: Mon, 23 Jan 1995 11:24:54 +0100 (MET)
In-Reply-To: <9501231001.AA14397@pippo.sm.die.unifi.it> from "studente"
at Jan 23, 95 11:01:29 am
Cc: aprile@pippo.sm.die.unifi.it (walter aprile)
* Action: stampare i titoli
* Priority: 2
* Precedence: 1
* Prova-Header: fare la stampa
X-Mailer: ELM [version 2.4 PL23]
Content-Type: text
Content-Length: 648
Status: RO
Gli header evidenziati con * sono indicati solo se
selezionati tramite il
relativo menu di modifica
- From
- Indica l'indirizzo completo del mittente.
- Received:
- Indica la macchina dalla quale è stato spedito.
- Return-Path:
- L'indirizzo completo per rispondere al messaggio.
- From:
- Normalmente indica il nome completo del mittente,
esso è un' opzione e come tale può essere modificata.
Per questo motivo è possibile ricevere
- Date:
- Indica la data o l'ora in cui il messaggio è stato spedito.
(è indicata anche alla fine di From ...)
- In-Reply-To:
- Indica che il messaggio è una risposta (
Reply to:) indica il Message-ID, cioè il codice assegnato ad ogni messaggio
dal sistema di gestione della posta, ed il nome del utente al quale si
è risposto.
- Cc:
- Contiene la lista delle persone alle quali si è copiato il messaggio
(
Copies to:)
- * Action:
- Indica un azione esplicitamente indicata con l'
opzione A nel menu degli header.
- * Priority:
- Indica la priorità scelta.
- Precedence:
- Indica la precedenza scelta.
- Prova-Header:
- Indica un header creato con l'
opzione U del menu degli header.
- X-Mailer:
- Indica il tipo di interfaccia di mail usata.
- Content-Type:
- Il tipo del contenuto.
- Content-Length:
-
- Status:
-
Il complesso TCP/IP, oltre al formato del messaggio, specifica anche lo
standard per lo scambio di mail tra macchine. Questo standard è noto come il Simple
Mail Transfer Protocol (SMTP) ed è contenuto nell'
RFC 821
ed è più semplice del Mail Transfer
Protocol (MTP), che rappresenta il vecchio standard per l'E-mail (RFC 780).
L'SMTP infatti focalizza la propria attenzione su come il sistema di inoltro della mail passa
messaggi da una macchina ad un'altra. Non specifica invece come il sistema accetta mail da un
utente, come è immagazzinata la mail o quanto frequentemente il sistema tenta l'inoltro
della posta.
Per trasmettere dati di tipo non-ASCII, è stato definito il
Multipurpose Internet Mail Extensions (MIME), che non sostituisce l'SMTP, ma permette
a dati arbitrari di essere codificati in ASCII e trasmessi in un messaggio di E-mail standard.
Sarà così possibile assolvere alle seguenti funzioni:
- Inviare caratteri non ASCII in un file di testo (esempio: caratteri accentati).
- Inviare files o immagini (cioè dati di tipo non testo ASCII) all'interno di una
mail.
- Collocare in una mail più oggetti distinti.
Ogni messaggio MIME include informazioni per il destinatario rigurdanti il tipo di dati e la
codifica usata. Tali informazioni risiedono nella testata 822 (RFC 822) della mail.
Un caso particolare di messaggi MIME è rappresentato dai Multipart Messages,
che contengono più messaggi, ognuno con contenuto e codifica separati.

Ultimo aggiornamento: 11 Novembre 1996




Explore the TELEMAT Site !!!
WORK IN PROGRESS by D. Mariano e C. Guadalupi