L'email o posta elettronica
Storia
L'email è nata nei laboratori della BBN (Bolt, Beranek and Newman Corporation), l'azienda che fornì gli IMP (Information Message Processor) all'ARPA nella primordiale ARAPANET di 4 nodi nel 1969.
Ray Tomlinson aveva scritto un programma che si chiamava SNDMSG per un PDP-10 che permetteva ad utenti di uno stesso computer di scambiarsi appunti scrivendo in "caselle di posta" che erano dei file con il nome dell'utente.
Quando BBN dovette occuparsi di ARPANET, Tomlinson (siamo nell'autunno del 1971) integrò il suo SNDMSG con un primordiale programma di FTP detto CPYNET che in sostanza copiava il messaggio nel file utente della macchina host; finché si era tutti nella stessa macchina bastava scrivere utente come destinatario; occorreva però ora dire che l'utente era in un altra macchina per cui decise di usare la @ per significare questo comando; quindi, il destinatario assunse la forma utente@host che vige tuttora. La prima email fu un messaggio destinato a tutti i colleghi che spiegava come usare l'email :-)
Funzionamento
Il funzionamento della posta dal SNDMSG + CPYNET di Tomlison si è alquanto complicato per tenere conto delle generalità dell'uso della posta in un sistema come Internet. Attualmente le specifiche di funzionamento dell'email sono descritte nella
RFC 822.
Vi sono due protocolli coinvolti nel funzionamento della EMAIL:
- SMTP - Simple Mail Transfer Protocol
-
Definito nella RFC2821 è il protocollo che
si occupa della spedizione dei messaggi di posta e lo potremmo paragonare alla buca delle lettere nella posta
oridnaria.
Come descritto nella RFC 2821, la struttura del protocollo è la seguente:
+----------+ +----------+
+------+ | | | |
| User |<-->| | SMTP | |
+------+ | Client- |Commands/Replies| Server- |
+------+ | SMTP |<-------------->| SMTP | +------+
| File |<-->| | and Mail | |<-->| File |
|System| | | | | |System|
+------+ +----------+ +----------+ +------+
SMTP client SMTP server
dove il client-SMTP risiede nel nostro client di posta ed il server-SMTP presso il dominio a cui stiamo spedendo il messaggio.
I comandi sono di tipo bidirezionale (two ways) intendendo con ciò che si stabilisce un regime di botta e risposta tra client e server. Il server contattato dal client può essere un server vero e proprio o un relay SMTP o un affidatario, cioè un servizio che si trasformerà in client subito dopo la consegna del messaggio per contattare un'altro SMTP a sua volta.
Generalmente il server di posta del proprio provider funge da affidatario (relay) nel senso che si trasforma subito dopo la spedizione in client per consegnare la posta al server SMTP nel dominio specificato. Di solito il relay server viene anche limitato a spedire posta solo in determinati domini.
Un insieme di comandi definiscono il protocollo, ad esempio EHLO è il comando con cui il client chiama il server, VRFY è il comando con cui il client chiede al server di verificare l'esistenza di un destinatario (e il server risponde con un codice numerico), MAIL è il comando con cui il server consegna il messaggio vero e proprio, e così via.
Alla fine il server SMTP deposita il tutto nel file system e il protocollo POP3 prende in consegna i messaggi recapitati.
- POP3 - Post Office Protocol
-
Definito nell'RFC1939, POP3 è il prtocollo di consegna della posta al destinatario (Post Office Protocol) e lo possiamo paragonare alla cassetta della posta di casa nostra.
La sua struttura è simile a quella di SMTP.
In questo protocollo, il client esegue una chiamata TCP sulla porta 110 del server che risponde con una richiesta di autenticazione (si porta nello stato AUTHORIZATION) e il client risponde inviando username e password con i comandi USER/PASS (se si pensa alla cassetta della posta, questa è la fase in cui inseriamo la chiave nella serratura della cassetta), dopodiché il server si porta in stato TRANSACTION in cui il client può inviare i comandi di LIST per ottenere la lista delle email e RETR per scaricare un messaggio (opzionalmente il messaggio può rimanere nel filesystem del server oppure può venire cancellato).
- IMAP - INTERNET MESSAGE ACCESS PROTOCOL
-
Definito nell'RFC3501 è un protocollo che permette la gestione della posta
direttamente nel server. Infatti POP3 consente solo di listare e scaricare i messaggi da una casella di posta e di cancellarli una volta scaricati e niente più. La distribuzione delle email in cartelle separate si può fare solo da client, nel proprio filesystem, non in quello del server. IMAP consente proprio di estendere la capacità di organizzare la posta anche direttamente nel server ed è a questo protocollo che si appoggia il sistema di webmail, in cui una applicazione web funge da client IMAP verso il server IMAP.
Ovviamente il set di comandi del protocollo IMAP è molto più ricco di quelli di POP3, perché consentono di creare cartelle nel server, di spostarle e quant'altro. Molte altre funzioni di IMAP possono trovarsi su WikipediA.
Torna all'inizio -
I servizi