Appunti Internet - © 1997-2003 Loris Tissino
Quello della posta elettronica, o e-mail ( electronic mail) è una dei servizi più diffusi e praticati su Internet. Molti servizi possono essere visti in analogia con quelli offerti dal servizio di posta tradizionale (talora indicata, su Internet, come snail mail, posta "lumaca"), anche se talvolta non ci sono delle corrispondenze precise.
Per cominciare, una casella postale è un luogo ove alcuni messaggi di posta elettronica vengono accodati. In molti casi, si tratta semplicemente di file di testo a cui vengono via via aggiunte le righe corrispondenti ai nuovi messaggi arrivati. In sistemi più sofisticati si fa uso di apposite basi di dati.
Molto spesso esiste una relazione univoca tra una casella postale ed un indirizzo di posta elettronica, che è l'indicazione in forma standard di come inviare un messaggio alla casella (ad esempio, l'espressione mario@aziendaxyz.it indica la casella di posta elettronica dell'utente Mario presso il sistema di posta elettronica della rete aziendaxyz.it).
Vi sono però delle eccezioni. Ad esempio:
Il simbolo @ (in inglese at, in italiano spesso letto "chiocchiolina") serve a separare il nome dell'utente dal nome del calcolatore che ospita la casella di posta dell'utente. Per le reti che ospitano più calcolatori appartenenti ad un dominio di secondo livello, normalmente è sufficiente indicare quest'ultimo, poiché il servizio di risoluzione dei nomi del sistema DNS è in grado di indicare quale calcolatore effettivamente si occupa della posta elettronica all'interno del dominio. In pratica, nonostante la casella postale di Mario sia fisicamente disponibile presso il calcolatore posta.aziendaxyz.it, non sarà necessario indicare come indirizzo mario@posta.aziendaxyz.it e sarà sufficiente mario@aziendaxyz.it.
Dal punto di vista dei programmi coinvolti, quello della posta elettronica è uno dei servizi più complessi di Internet. Una buona parte della complessità deriva dal fatto che il servizio è stato concepito per poter funzionare anche con calcolatori che non sono permanentemente collegati ad Internet.
Teoricamente, se io dovessi spedire un messaggio alla casella mario@aziendaxyz.it, potrei chiedere al mio programma di posta elettronica di contattare il calcolatore che si occupa della posta presso la rete aziendaxyz.it e consegnare il messaggio.
Ma le cose non sono così semplici. Cosa succederebbe infatti se quel calcolatore al momento fosse fuori servizio (perché spento, sovraccaricato, in manutenzione o altro)? La spedizione non potrebbe avvenire. Per questo motivo è stato inventato un meccanismo di tipo store and forward (letteralmente, "immagazzina e inoltra"), che consiste nell'avere dei server per la posta in uscita a cui il nostro calcolatore si rivolge quando deve spedire i messaggi. Il server accetta i nostri messaggi e se ne prende cura fino a quando la spedizione non avviene con esito positivo o risulta impossibile anche dopo diversi tentativi. La cosa interessante è che nel frattempo il mio calcolatore non deve preoccuparsi di nulla (un po' come, dopo aver spedito una lettera all'ufficio postale tradizionale, posso tranquillamente tornarmene a casa).
Nel malaugurato caso la spedizione non potesse andare a buon fine, il server di posta ci potrebbe avvisare con un messaggio (ad esempio, user unknown, "utente sconosciuto").
La spedizione avviene tramite un protocollo particolare, chiamato SMTP, ovvero Simple Mail Transfer Protocol, "protocollo semplice per il trasferimento della posta". Il programma che si occupa della spedizione dei messaggi si chiama server SMTP.
Quand'è che il messaggio si considera consegnato? Non quando arriva al calcolatore dell'utente al quale è indirizzato, nè tanto meno quando viene effettivamente letto. Si considera consegnato quando viene accodato alla casella di posta elettronica a cui si fa riferimento con l'indirizzo.
Qui entra in gioco la ricezione dei messaggi. Infatti, non è affatto detto che il nostro utente Mario utilizzi per il proprio lavoro o per la gestione della posta proprio il calcolatore dove è presente la sua casella; a volte è così, ma è un caso piuttosto raro. Tipicamente, Mario dovrà invece indicare al suo programma di posta di farsi mandare tutti i messaggi che giacciono nella casella di posta dal calcolatore che la ospita.
Per recuperare la posta si utilizza normalmente il protocollo POP3 (Post Office Protocol, version 3). Il programma che si occupa di consegnare la posta al legittimo proprietario con il protocollo POP3 si chiama server POP3.
Una tipica "conversazione" tra programma di posta e server POP3 potrebbe assomigliare alla seguente:
P: utente mario S: ok P: password segreto S: ok, hai 2 messaggi per un totale di 4658 byte P: mostrami la lista S: messaggio 1 di 1240 S: messaggio 2 di 3418 P: mandami il numero 1 S: ecco (...) P: mandami il numero 2 S: ecco (...) P: cancella il numero 1 S: cancellato P: cancella il numero 2 S: cancellato P: ho finito
A volte i messaggi non vengono prelevati dal server ma lasciati sul server di posta. Ciò è comodo soprattutto quando la propria postazione di lavoro è variabile (a volte uso un calcolatore, a volte un altro), o quando si vuole dare un'occhiata alla posta da un calcolatore diverso dal solito.
Per queste esigenze, si possono usare un protocollo specifico, IMAP (Internet Message Access Protocol, protocollo per l'accesso ai messaggi Internet), oppure degli appositi servizi web (ossia server web configurati per consentire di leggere e scrivere messaggi di posta elettronica tramite un browser, i cosiddetti sistemi di webmail).
Un messaggio di posta elettronica si compone di un' intestazione e di un corpo. L'intestazione contiene informazioni strutturate (una serie di coppie nome-valore in un formato specifico) su chi ha inviato il messaggio, a chi è destinato, l'oggetto dello stesso, ecc. Il corpo del messaggio contiene il testo vero e proprio del messaggio.
Dal momento della spedizione all'arrivo alla casella di destinazione, il messaggio viaggia accompagnato da una "busta" (envelope ) con ulteriori informazioni.
I messaggi di posta elettronica sono sempre di puro testo. È tuttavia possibile allegare file binari (immagini, documenti formattati con un elaboratore di testo, fogli elettronici, ecc.) grazie a opportuni meccanismi di conversione (in opera "dietro le quinte").
Normalmente viene utilizzato un sistema chiamato MIME (Multipurpose Internet Mail Extension, estensione con molteplici scopi per la posta su internet), che prevede diversi tipi di conversione a seconda delle necessità (tra questi, di frequente è usata una conversione chiamata Base64 in cui tre byte del file originario vengono convertiti in quattro caratteri di un testo semplice). Storicamente, si sono utilizzati anche altre modalità, di cui talora si trova traccia, quali uuencode/uudecode (specialmente in ambiente Unix) e BinHex (specialmente in ambiente Macintosh).
Un particolare tipo di allegato è quello che rende il messaggio simile ad una pagina web; viene effettuata una conversione di ciò che scriviamo in HTML. Sebbene questa modalità sia spesso impostata come default in molti programmi per la gestione della posta, è bene non abusarne, poiché:
Alcuni esempi di messaggi di posta elettronica con dei commenti sul modo in cui sono gestiti gli allegati sono disponibili nella mia raccolta di esempi.