Seminari del PHC - Sergio Steffè - 31 gennaio 7, 14 febbraio 2000 - Comunicazioni tra Calcolatori  - PISA 

INDIETRO INDICE PHC HOME AVANTI

2.9  E-mail, le mailing list, le news.
 
 

a] come funziona la posta elettronica (molto semplificato!)

Intanto ricordiamo che E-mail vuol dire Electronic mail, cioè posta elettronica.

Il processo di spedizione della posta elettronica consiste di varie fasi indipendenti tra di loro che di solito sono anche svolte da diversi calcolatori collegati in rete.

1) - scrittura del messaggio.
2) - ricezione, messa in coda per la spedizione, e spedizione.
2) - ricezione, messa in coda per la spedizione, e spedizione.
2) - ...... questa fase può essere ripetuta più volte su varie macchine
3) - ricezione e inserimento nella casella di posta dell'utente.
4) - lettura del messaggio.

Il messaggio viene indirizzato ad un soggetto identificato da un cosiddetto indirizzo di E-mail, che è una espressione complessa che nei casi più semplici è formata da un username e da un dominio internet di E-mail separati dalla fatidica @, tipo:

[email protected]
[email protected]
ma anche
sergio.steffe%[email protected]
[email protected]

Il dominio internet di E-mail è un particolare dominio internet che identifica mediante i record MX del Domain Name System quali sono le macchine che fungono da Mail Exchanger per il dominio di E-mail. Di solito ad un dominio internet di E-mail non corrisponde direttamente un IP, per cui comandi del tipo telnet o finger fatti verso un dominio internet di E-mail non funzionano o rispondono host unknown.

La parte scritta davanti alla @ varia molto, e viene interpretata dal Mail Exchanger appropriato, che la elabora e se necessario provvede a spedirla ad un altro calcolatore. Può essere un semplice username, oppure un alias che corrisponde ad un utente o ad una lista, oppure una espressione molto più complicata che in effetti è a sua volta un indirizzo di E-mail che il Mail Exchanger sa come usare.

Unico indirizzo di E-mail sicuramente esistente -perchè obbligatorio- per ogni dominio di E-mail è quello del Postmaster, come ad esempio:

[email protected]
[email protected]
[email protected]

E' a questo indirizzo che si deve fare riferimento per ogni problema che riguardi la E-mail di un dominio.
 

Vediamo di seguire il tragitto tipico di una E-mail, un passo alla volta.

1) - scrittura del messaggio.

Usando il programma di E-mail preferito, compongo il messaggio, scrivo l'indirizzo del destinatario e uso il comando "spedisci". Il messaggio completo in partenza consta così di una prima parte contenente informazioni come il mittente, il destinatario, l'ora di partenza, ed una seconda parte contenente il messaggio vero e proprio. Alle due parti viene dato il nome di header e body rispettivamente.

Non è detto che il calcolatore che uso sia sempre acceso o sia sempre collegato ad Internet. Non è detto che il calcolatore del destinatario sia immediatamente raggiungibile in rete. Per questo motivo il primo passo della spedizione è di solito quello di mandare il messaggio ad una macchina solida e ben collegata in rete che si prenda il compito di inoltrare ulteriormente il messaggio. Questa macchina è un server di rete che usa il protocollo SMTP (Simple Mail Transfer Protocol), e che fa da mail relay (a volte viene indicata come SMTP server).

Siamo dunque al passo

2) - ricezione, messa in coda per la spedizione, e spedizione.

Il server SMTP accetta dal mio calcolatore il messaggio, lo copia in una apposita zona di disco dove tiene in coda tutti i messaggi arrivati e da spedire (nelle macchine Linux /var/spool/mqueue) e dà conferma della operazione effettuata.

Periodicamente esamina i messaggi in coda, uno alla volta, legge la parte dell'indirizzo corrispondente al dominio di E-mail, determina quale è il corretto Mail Exchanger interrogando dei server dns, e cerca di passare il messaggio ad esso, sempre usando il protocollo SMTP. Normalmente non c'è un solo Mail Exchanger, ma ve ne sono parecchi con un ordine di preferenza. Può accadere che il Mail Exchanger preferito sia in quel momento irraggiungibile, ma che ce ne sia un altro disponibile ma con preferenza più bassa. In tal caso il messaggio viene passato a tale Mail Exchanger, che accetta il messaggio, ripetendo le fasi del passo

2) - ricezione, messa in coda per la spedizione, e spedizione.

Dopo un certo numero di passaggi tra varie macchine che si limitano a fare da mail relay usando il protocollo SMTP, il messaggio arriva finalmente ad un Mail Exchanger, che, ricevuto il messaggio via SMTP e messolo eventualmente in coda, provvede ad elaborare la prima parte dell'indirizzo, quella davanti alla @. Di solito a questo punto si è giunti al passo

3) - ricezione e inserimento nella casella di posta dell'utente.

Precisamente se il Mail Exchanger in questione fa anche da mailbox server, (a volte detto anche semplicemente mail server, termine però un pò più generico) riconosce l'utente, e aggiunge il messaggio in coda alla casella postale (nelle macchine Linux in /var/spool/mail/username ).

Se invece non riconosce l'utente, prende il messaggio e lo rispedisce al mittente, mandandone però notifica anche al Postmaster del proprio dominio di E-mail.

E' comune anche il caso in cui il destinatario sia un alias corrispondente ad una lista di indirizzi di E-mail, nel qual caso il calcolatore prende il messaggio e inizia le procedure di spedizione verso tutti gli indirizzi.

Può anche capitare che un utente lasci disposizione al mail server di farsi ulteriormente inoltrare la posta ad un altro indirizzo (nel file .forward).

Il caso più elaborato è quello in cui il Mail Exchanger sia collegato ad una sua rete interna in cui sia usato un sistema di E-mail a parte. In tal caso vengono convertiti opportunamente gli indirizzi e il messaggio viene instradato con le procedure opportune verso i calcolatori che lo riceveranno e che faranno infine da mailbox server.

Se tutto è andato liscio fino a questo punto, il messaggio rimane nella casella postale dell'utente, in attesa di essere letto. Per questo passo

4) - lettura del messaggio.

occorre che l'utente disponga di un calcolatore e di un programma di lettura che possa accedere al contenuto della sua casella postale. Viene sempre chiesto un user name ed una password. Ci sono vari protocolli come POP, IMAP e altri.

Il procedimento di spedizione della E-mail prende parecchie precauzioni per cercare di fare arrivare la posta al destinatario, o restituirla al mittente se ciò non fosse possibile. Ci sono tuttavia dei casi in cui la E-mail va dispersa: per esempio può rompersi il disco che contiene l'area di spool di un mail relay, o le caselle postali del mailbox server . Oppure possono essere errati sia mittente che destinatario. Un caso più subdolo è quello in cui si instauri un loop, cioè accada che un gruppo di mail relay continuino a rimpallarsi il messaggio tra di loro. Per evitare il formarsi di cicli infiniti, è previsto che un messaggio non possa subire più di una trentina di rimpalli, dopodichè viene eliminato, mandando però una segnalazione del fattaccio ai vari Postmaster dei dominii di E-mail coinvolti.

Ad ognuno di questi passi, il server che interviene lascia una piccola traccia delle sue operazioni modificando lo header. Una accurata analisi dello header permette di ricostruire tutta la strada fatta dal mail attraverso i vari server di rete. Purtroppo non tutti i programmi di lettura della E-mail riportano per intero e correttamente lo header. Accade raramente che un server per errore modifichi il body invece dell'header - ma può capitare. Meno raramente qualche server tronca dei mail più lunghi di qualche megabyte, o li rifiuta.
 

b] osservazioni

-----

Una delle domande più frequenti che si sentono fare a proposito della E-mail è questa: come posso sapere se il messaggio è arrivato ? Purtroppo l'unica risposta veramente sicura è "quando la persona cui hai scritto ti ha risposto !". Ci sono tuttavia alcune verifiche che si possono fare a volte per controllare alcuni dei vari passi, ma ovviamente occorre essere a conoscenza del compito svolto da ciascun calcolatore nel processo di spedizione della E-mail.

Se il mailbox server ha attivo il demone fingerd, con il comando finger si può scoprire se un certo utente ha ricevuto posta recentemente e quando ha fatto l'ultima volta un accesso alla propria casella di E-mail.

Sulle wokstations Linux, che spesso usano il programma sendmail come server per effettuare il mail relay e/o come server per la ricezione degli E-mail, si può controllare il file di log e cioè /var/log/maillog per vedere se tutto sta funzionando correttamente e si può dare il comando sendmail -bp per esaminare la coda dei messaggi in attesa di spedizione.

-----

Altra domanda comune riguarda la riservatezza e sicurezza della E-mail. Da questo punto di vista la posta elettronica si può paragonare ad una cartolina postale scritta a macchina: quello che vi è scritto sopra è visibile ai postini, e non c'è nessuna garanzia che il mittente sia davvero chi dice di essere.

La crittografia può aiutare moltissimo a questo proposito: lo standard del PGP (Pretty Good Privacy) può aiutare a garantire l'integrità del testo e la identità del mittente, ammesso che la macchina di partenza sia abbastanza sicura.

Comunque la legge italiana attualmente equipara la E-mail alla posta normale, per cui intercettare la posta elettronica altrui è reato né più né meno che intercettare la posta reale.

La Posta Elettronica ci espone poi ad un tipo di persecuzione che con la posta normale è invece difficile da realizzare, e cioè lo spamming che consiste nell'invio di un numero elevatissimo di messaggi assurdi da degli indirizzi inesistenti. Per difendersi da questo tipo di seccatura gli amministratori dei sistemi di posta elettronica sono stati costretti ad impedire ai mail relay di fornire il proprio servizio indiscriminatamente a tutti gli altri calcolatori in rete come accadeva una volta.

-----

Una domanda che capita meno frequentemente riguarda la configurazione del programma di posta elettronica che un utente usa per leggere e scrivere la propria posta elettronica sul proprio calcolatore.

Per funzionare questi programmi devono in qualche modo essere in possesso delle seguenti informazioni:

- quale è l' SMTP server, cioè il nome di una macchina che sia raggiungibile in rete, che sia sempre accesa in servizio e che sia disposta ad eseguire la fase 2), cioè a fare da primo mail relay.

- quale è il mailbox server, cioè il nome della macchina che sia raggiungibile in rete, che sia sempre accesa in servizio e che ospita la casella postale dell'utente.

- userid e password per accedere alla casella postale e leggerla.

- l' indirizzo di E-mail del mittente.

Se ci si collega ad una rete di un provider privato da casa, si deve stare attenti a configurare esattamente il primo mail relay come suggerito dal provider (che di solito indica quale è l'SMTP server disponibile a questo compito) altrimenti la propria posta rischierà di non partire.

-----

Vediamo a scopo esemplificativo qualche esempio di come siano ripartiti i compiti per la spedizione della E-mail tra alcune macchine del Dipartimento:

gauss:
fa da mailbox server per il dominio di E-mail dm.unipi.it.
fa da mail relay per le macchine del dominio unipi.it
fa da POP server.

mailserver2:
fa da mail relay per il dominio dm.unipi.it di cui è Mail Exchanger secondario.

paley:
fa da mailbox server per il dominio di E-mail mail.dm.unipi.it.
fa da mail relay per le macchine del dominio unipi.it
esporta mediante nfs le caselle postali degli utenti
fa da POP server

fourier:
fa da mail relay solo per sè stesso.
vede mediante nfs le caselle postali degli utenti

-----

Un ultimo rompicapo sorto in questi anni a proposito della posta elettronica riguarda la cosidetta posta multimediale. Inizialmente era permesso spedire solo messaggi scritti in ASCII a 7 bit. Quindi il sistema per spedire mediante la posta elettronica dei files binari (immagini, suoni, programmi, files in altri formati qualsiasi) era quello di codificare il file mediante caratteri ASCII, spedirlo per E-mail e decodificarlo all'arrivo.

Ad un certo punto si è cercato di automatizzare le fasi di codifica e decodifica. Questo è stato fatto fissando lo standard MIME (Multipurpose Internet Mail Extensions). Negli headers vengono incluse informazioni sul tipo di file e sulle codifiche usate, e il file viene codificato e incluso nel body del mail. Si parla allora di un file in ATTACH alla E-mail.

L'idea in sè voleva rendere più pratico l'uso dell'E-mail, ma di fatto si è dimostrata disastrosa. Quello che succede è infatti che molti utenti spediscono dei files senza rendersi conto che il formato in cui i files sono scritti è "proprietary", e che per leggere tali files servono dei ben precisi programmi commerciali che non tutti hanno o che non possono essere eseguiti se non su ben precisi calcolatori. Inoltre non tutti gli utenti usano dei programmi che sono in grado di riconoscere ed usare correttamente lo standard MIME. Ed infine è facile spedire grossi volumi di dati quasi senza rendersene conto. Come se non bastasse, accade di frequente che un banale testo ASCII, invece di essere spedito con il normale mail, venga spedito come documento di qualche Word Processor mediante l'ATTACH, col risultato assurdo di essere leggibile solo se si ha esattamente lo stesso sistema operativo e la stessa versione del Word Processor di chi ha spedito il messaggio.

Tutto questo sta creando una certa babele nella posta elettronica e dei grossi problemi agli amministratori dei mail servers.

Anche senza usare un mailer MIME, sulle macchine Linux è comunque possibile decodificare i mail multimediali, salvandoli in un file, ed usando un decodificatore come uudecode o munpack.
 

c] i comandi elementari

mail

uso tipico:

mail

mail [email protected]
mail [email protected] < filename

scopo:

serve a leggere o spedire messaggi o file ASCII.

funzionamento:

sulle macchine Unix:

mail

da solo serve a leggere la posta giunta: con ? si ha un help in linea e con q si esce dal mail; gli altri due comandi servono a spedire un mail all'utente steffe nel dominio di posta elettronica dm.unipi.it. Nel primo caso

mail [email protected]

subito dopo il comando, si inizia a scrivere il titolo e poi il testo del

messaggio. Occorre stare attenti ad andare a capo prima della fine della riga. Non si possono fare correzioni su righe precedenti - cioè

si può farlo ma la cosa non si dice in due parole, perché occorre invocare un editore che bisogna saper poi usare. Quando si è scritto

tutto il messaggio, si va a capo, si batte un singolo punto e si va di

nuovo a capo, e il messaggio è spedito. Se compare una scritta cc:

il sistema vuole sapere se deve spedire una altra copia per conoscenza a qualcun altro (carbon copy): se no si da un return.

Nel secondo caso

mail [email protected] < filename

si spedisce come lettera il contenuto del file di nome filename; questo è piuttosto utile per spedire testi di lavori scritti in tex o messaggi piuttosto lunghi ed elaborati, che conviene scrivere prima con un editore.

Una nota importante: non è possibile spedire direttamente con il mail testi scritti con Word Processors come Word e simili, a meno che non siano stati salvati con l'opzione "formato solo testo ASCII", e in tal caso vanno perse le informazioni di font e formattazione; è però possibile codificare un qualsiasi file in modo da poter usare la E-mail per spedirlo; in tal caso la persona che lo riceve dovrà farsi carico di decodificarlo. Sulle macchine unix i comandi sono rispettivamente uuencode e uudecode. Sui Mac si usa analogamente il binhex4. Il comando mail non riconosce lo standard MIME e accetta nel testo solo caratteri ASCI alfanumerici, il che vuol dire in pratica solo quelli prodotti dalle tastiere USA-ASCII. Vanno evitate perciò le tastiere "nazionali"e in particolare le lettere accentate.

non funzionamento:

la posta non consegnata ritorna al mittente; se si cerca un indirizzo di un particolare utente, a volte si può scrivere al postmaster del dominio una letterina:

esempio:

mail [email protected]

Dear postmaster,

I am looking for the E-mail address of professor Trager, who should be visiting your Department in this period of the year. Can you help me, please?

Best Regards

(qui mettete il vostro nome, cognome, indirizzo di E-mail e altri dati che ritenete utili, come numeri telefonici o di fax...)
.

( notate il punto da solo sulla riga: segna la fine del mail ).

Di solito il Postmaster risponde in un paio di giorni.

Se si ha l'impressione che della posta sia andata persa, si chiede al proprio postmaster di fare una verifica.

elm

uso tipico:

elm

scopo:

elm serve per gestire la posta elettronica

funzionamento:

guidato da menu. E' un programma più evoluto e con maggiori possibilità del semplice mail, per cui non è possibile descriverlo qui in poche parole.

non funzionamento:

essendo un programma a schermo pieno, richiede che siano correttamente dichiarati i dati del terminale e dei vari tasti.

emacs per la E-mail

Ricordiamo che l'editore emacs è in grado di gestire la posta elettronica !!

pine

uso tipico:

pine

scopo:

pine serve per gestire la posta elettronica. pine è un programma che usa lo standard MIME, e perciò ha la possibilità di spedire quasi qualsiasi cosa via E-mail, o direttamente o come "ATTACH".

funzionamento:

guidato da menu. E' un programma più evoluto e con maggiori possibilità del semplice mail, per cui non è possibile descriverlo qui in poche parole.

Pine è purtroppo ingannevolmente semplice da usare.

Se non configurato propriamente, o se usato sconsideratamente, può facilmente complicare la lettura dei messaggi ai destinatari.

Inoltre pine non mostra i veri header dei messaggi arrivati, ma li interperta, per cui spesso non permette di ricostruire il percorso esatto di un E-mail.

Se chi riceve il messaggio non sta usando un mailer multimediale MIME come pine, ma usa per esempio il comune mail, cosa che magari è costretto a fare perchè è collegato ad un terminale, quello che riceve è formato di due parti: all'inizio c'è un messaggio abbastanza leggibile, anche se spesso infarcito di strane stringhe E=20 E== e simili, che semplicemente corrispondono a caratteri ASCII estesi, come lettere accentate e cose del genere, e che non possono essere tradotte sullo schermo del terminale, e che il mailer normale traduce come può; questa parte è seguita dal famoso ATTACH, che pine ha codificato opportunamente, e che è una lunga sfilza di caratteri e cifre.

Se invece si usa pine, questa seconda parte viene tradotta in un file che viene salvato.

non funzionamento:

essendo un programma a schermo pieno, richiede che siano correttamente dichiarati i dati del terminale e dei vari tasti.

pine è molto configurabile dall'utente. Purtroppo è l'utente che deve inserire esattamente alcuni dati cruciali che determinano i campi fondamentali per il corretto instradamento della posta in partenza ( e questo è abbastanza facile) ma anche per il corretto instradamento della risposta. Da una statistica da me fatta in questo Dipartimento, in cui dopo tutto la posta elettronica è oramai comunemente usata da più di 10 anni, risulta che la maggior parte degli utenti non conosce esattamente e correttamente il proprio indirizzo di E-mail, spesso confondendolo col nome internet della macchina che usa o che crede di usare. Può darsi che i matematici siano, come vuole la tradizione, più distratti degli altri su simili dettagli, ma è comune che pine configurato dall'utente abbia qualche errore nel campo From:. In tal caso chi riceve il messaggio non può fare il semplice "reply" ma dovrebbe battere il corretto indirizzo nel campo To:.

eudora, popmail e simili, tra cui netscape

scopo:

servono a gestire la posta elettronica anche da un semplice PC

funzionamento:

sono dei programmi che sfruttano a fondo la architettura Client- Server; il programma client risiede sul proprio PC, e comunica con un POP server. Il client si fa spedire la posta dal server. Lettura e composizione delle risposte avvengono in locale sul proprio PC. Alla fine il client spedisce la posta al server che la smista ai vari hosts di Internet. Si ha un uso efficiente della linea di comunicazione, anche se di banda limitata, e per questo motivo il sistema è raccomandato per le connessioni in rete che usano linee telefoniche DIAL-UP.

non funzionamento:

I files di configurazione sono critici: se c'è un errore su uno di tali files sul proprio PC si rischia di perdere della posta ; inoltre i vari mailbox sono tenuti localmente, per cui sono accessibili solo se si è fisicamente su proprio PC.

Se siete in DIAL-UP e avete ricevuto dei mail molto lunghi ( per esempio degli ATTACH con figure) non riuscirete a leggere la posta. Quello che accade è che questi programmi prevedono che una volta iniziata la lettura della casella postale dal server, dopo un certo tempo (5 minuti tipicamente) la posta sia stata trasferita. Altrimenti rinunciano e danno il messaggio di "time out". Ora in 5 minuti su una linea DIAL-UP con modem a 14.400 si trasferiscono circa 500kB al massimo; un ATTACH di una foto non tanto grande e' sufficiente a causare questo "time out" e a bloccare del tutto la lettura della casella postale. A volte per questo motivo c'è però l'opzione "skip big messages", che può aiutare almeno a vedere gli altri messaggi.

mailing lists e listservers

scopo:

servono a distribuire delle circolari a gruppi di persone.

funzionamento:

una semplice mailing list è un elenco di indirizzi di E-mail. Con certi mailers è possibile mandare in un colpo solo il mail a tutta la lista di persone facendo un unico mail al nome della lista (=alias).

Un listserver è un programma che mantiene una o più mailing lists automaticamente; le varie persone possono aggiungersi o togliersi dalle mailing list mandando dei mail contenenti gli appositi comandi al listserver.

pericoli:

il sistema delle mailing list è delicatissimo: è relativamente facile scatenare inconsapevolmente delle reazioni a catena che producono milioni di messaggi! Più modestamente è facilissimo andare a rompere le scatole a centinaia di persone senza rendersene conto. Prima di mandare un mail ad una lista, occorre chiedersi: sono sicuro di voler mandare un mail a tutte quelle persone ? interesserà proprio tutti o almeno la grande maggioranza di loro ? Quanti di loro si seccheranno a sufficienza per prendere nota del mio indirizzo e rispondere per le rime ? Si rischia infatti di ricevere parecchie centinaia di risposte nel giro di poche ore !

esempio1: ( uso di una semplice mailing list )

se appare un operaio dell'ENEL che dice: "tra un' ora stacchiamo la corrente a tutto il Dipartimento", potete mandare un mail di questo tipo:

mail [email protected] [email protected] [email protected] [email protected]

Subject: ENEL

tra 60 minuti l'ENEL toglie la luce a tutto il Dipartimento !!!
saluti
(seguito dal vostro nome )

ciascuno dei "destinatari" è in realtà una lista di persone

esempio2: (informazioni di help da un listserver)

mail [email protected]

Subject:
help
.

Il listserver che si chiama [email protected] riceve il vostro mail con la singola parola help, che è uno dei comandi possibili, e vi rimanda per posta le istruzioni basilari per usarlo.

esempio3: (elenco delle liste che un dato listserver sta gestendo)

mail [email protected]

Subject:
lists
.

Il listserver che si chiama [email protected] riceve il vostro mail con la singola parola lists, che è uno dei comandi possibili, e vi rimanda per posta l'elenco di tutte le liste che gestisce. Sarà possibile iscriversi ( con subscribe) o togliersi (con unsubscribe) a ciascuna di tali liste, fare l'elenco delle persone che sono in ciascuna lista (con review), nonché, ovviamente, mandare con un singolo mail una circolare a tutte le persone della lista.

news

Le News sono una vera e propria Bacheca Elettronica Mondiale: i messaggi che le varie persone spediscono (in gergo si dice che si fa il posting di una News) rimangono per qualche giorno sulla "bacheca" - ovvero sui vari News Servers - e poi sono cancellati. Chiunque può leggere i messaggi ed eventualmente rispondere, usando il mail. Siccome i messaggi sono tantissimi, sono divisi in "sottobacheche", chiamate newsgroups.

Generalmente un utente si "iscrive" ad un certo numero di newsgroups. Ogni volta che vuole leggere i nuovi messaggi, il server si informa dal client su quali sono i newsgroups che interessano e su quali messaggi siano già stati letti, e, se è il caso, spedisce solo i messaggi veramente nuovi e non ancora letti, minimizzando così il traffico di rete. Ci sono newsgroups per tutti gli argomenti.

Il server più vicino è newsserver.unipi.it. Alcuni clients sono per esempio minuet sotto MS-DOS, Nuntius per i Mac, xrn sotto X11 sulle stazioni Unix.
 
INDIETRO INDICE PHC HOME AVANTI