Telemat Lab's home page


Copyright © 1986 Universita' di Firenze. All rights reserved.

Free license available.




INTERNET & APPLICATIONS


di: D. Mariano e C. Guadalupi


APPLICATIVI: E-mail

home pageIndicePrec.Succ.










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.




Nomi di Mailbox ed Aliases



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.




Espansione di un Alias e Mail Forwarding



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.




Relazione tra rete Internet e Mail



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.




Indirizzi di E-mail



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.




Anatomia degli Header (testate 822)



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:




SMTP (Simple Mail Transfer Protocol)



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.




L'estensione MIME per dati non-ASCII



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: 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



Telemat Lab's home page

home pageIndicePrec.Succ.


Explore the TELEMAT Site !!!

WORK IN PROGRESS by D. Mariano e C. Guadalupi