10110
Reti di Calcolatori
01100
01011
IL LIVELLO APPLICAZIONI:
E-mail
10110
01100
01011
La posta elettronica
Funzionamento del sistema di E-mail
Il formato dei messaggi
Il protocollo SMTP
I protocolli POP, IMAP
La Posta Elettronica o E-mail
10110
01100
01011



Questa applicazione permette di scambiare dati tra due o più utenti
identificati univocamente sulla rete.
Gli standard RFC 821 e RFC 822 proposti da ARPANET sono stati accettati
a scapito di altre proposte come X.400 proposto dal CCITT.
Due sottosistemi:



user agent: agenti utenti che permettono di comporre, inviare e ricevere
messaggi di posta.
Transfer agent: agenti di trasferimento che si occupano di far arrivare i
messaggi dal mittente al destinatario, tramite il protocollo SMTP
Il sistema di posta supporta cinque funzioni di base:

composizione

trasferimento

notifica

visualizzazione

memorizzazione
La Posta Elettronica
10110
01100
01011

Agenti utente



Programmi per leggere, comporre e gestire la posta e le
mailboxes (es. Eudora, Netscape Messenger, Outlook, Pine,
Mailtool)
Possono utilizzare protocolli per la gestione di mailbox remote
(POP3, IMAP).
Agenti di trasferimento


Gestiscono il trasferimento dei messaggi dalla sorgente alla
destinazione e la ricezione dei messaggi sui server di posta.
Sono programmi di sistema eseguiti in background che usano il
protocollo SMTP per trasferire i messaggi sulla rete (es. sendmail,
postfix).
Trasferimento di E-mail
10110
01100
01011
Nodo Client
mittente
agente
utente
coda della
posta da spedire
agente di
trasferimento
SMTP
connessione TCP
sulla porta 25
destinatario
agente
utente
mailboxes
degli utenti
Nodo Server
agente di
trasferimento
Indirizzi di Posta Elettronica
10110
01100
01011

Hanno il formato
utente@dominio




Gli indirizzi sono risolti dal DNS che individua il server a cui inviare il
messaggio (eventualmente usa una richiesta MX)
Il server di posta riceve i messaggi e li accoda nella mailbox
dell’utente.
La mailbox è un file di testo in una directory specifica nel server (es.
in Unix può essere /spool/mail/utente )
L’utente può accedere alla posta localmente leggendo il file mailbox.
Lo user agent per la lettura della posta provvede a individuare i
singoli messaggi nella mailbox.
10110
Formato dei Messaggi
01100
01011
(a) Posta normale
(b) Posta elettronica
10110
Campi Intestazione
01100
01011
To:
Indirizzo DNS del destinatario (o destinatari).

Cc:
Copia in carta carbone (indirizzi “per conoscenza”)

Bcc:
Copia in carta carbone con indirizzi invisibili ai riceventi.

From:
indirizzo di chi ha scritto il messaggio (necessario).

Sender:
indirizzo di chi ha inviato il messaggio (opzionale).

10110
Campi Intestazione (cont.)
01100
01011
Received:
Indica l’agente che ha ricevuto il messaggio insieme ad un
timestamp. Viene inserito da ogni agente durante il
trasferimento. Si può cosi ricostruire il percorso della email.

Date:
Data e ora in cui il messaggio è stato inviato

Reply-to:
Indirizzo al quale inviare le risposte (reply) se diverso da
From.

Message-Id:
Numero unico che individua il messaggio

Subject:
Oggetto del messaggio

Un Esempio di Intestazione
10110
01100
01011
Return-Path: <[email protected]>
Received: from esacom57-int.estec.esa.int (esacom57-ext.estec.esa.int [131.176.107.4])
by dns.icar.cnr.it (8.12.3/8.12.3/Debian -4) with ESMTP id h99CMFFQ013000
for <[email protected]>; Thu, 9 Oct 2003 14:22:15 +0200
Received: from esacom52.estec.esa.int (esacom52.estec.esa.int [131.176.7.7])
by esacom57-int.estec.esa.int (8.12.9/8.12.9/ESA-External-v3.2) with ESMTP
id h99CSGxL004751 for <[email protected]>; Thu, 9 Oct 2003 14:28:16
+0200 (MET DST)
Subject: hello
To: [email protected]
Message-ID: [email protected]
X-Mailer: Lotus Notes Release 5.0.10 March 22, 2002
From: [email protected]
Date: Thu, 9 Oct 2003 15:28:12 +0200
Content-Length: 710
Subject: <oggetto messaggio>
<testo messaggio…>
Codifica dei Messaggi
10110
01100
01011




La posta è inviata come testo ASCII.
Non è possibile trasmettere caratteri non ASCII con messaggi di
e-mail senza una opportuna codifica.
La soluzione è stata quella di usare il formato MIME per
permettere alle e-mail di codificare e trasmettere caratteri non
ASCII.
MIME definisce una struttura del corpo del messaggio e
definisce come codificare i messaggi non ASCII.
MIME
10110
01100
01011



Multipurpose Internet Mail Extensions (RFC 1521)
Aggiunge dei campi di intestazione per definire la struttura del corpo
del messaggio
I campi sono gestiti dallo user agent





Mime-Version:
Content-Type:
Content-Transfer-Encoding:
Content-ID:
Content-Description:
versione MIME
tipo del messaggio
tipo di codifica
identificatore unico del messaggio
descrizione del contenuto
10110
01100
01011
MIME: tipo del messaggio
MIME: tipo di codifica
10110
01100
01011

I tipi di codifica possibili sono:



Caratteri a 7 o 8 bit
Usato per testo ASCII, con righe fino a 1000 caratteri.
Base 64 encoding
Gruppi di 24 bit sono codificati in unità di 6 bit.
Le 64 combinazioni possibili sono codificate tramite caratteri ASCII: 26
caratteri maiuscoli, 26 minuscoli, le dieci cifre, ‘+’ e ‘/’.
Tale codifica è utilizzata per file binari (es. allegato word).
Quoted-printable encoding
Viene usata la codifica ASCII a 7 bit per i primi 127 caratteri.
I caratteri con codifica superiore a 127 sono rappresentati con un ‘=‘
seguito da due cifre esadecimali che corrispondono al valore del
carattere.
Codifica usata per testo con caratteri di controllo (es. HTML, RTF).
Esempio di Intestazione MIME (1/2)
10110
01100
01011
Return-Path: <[email protected]>
Received: …
From: [email protected]
To: "Gianluigi Folino" <[email protected]>,
"Carlo Mastroianni" <[email protected]>, …
Cc: <[email protected]>, "'Preside'" <[email protected]>
Date: Wed, 15 Oct 2003 04:19:36 +0200
Message-ID: <000201c392c2$cb70e4b0$c501a8c0@vajo>
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_0003_01C392D3.8EFB3B50"
X-Mailer: Microsoft Outlook, Build 10.0.3416
Content-Length: 117200
This is a multi-part message in MIME format.
------=_NextPart_000_0003_01C392D3.8EFB3B50
Esempio di Intestazione MIME (2/2)
10110
01100
01011
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Carissimi=20
invio in allegato la convocazione del Consiglio dei Corsi di
Laurea e di
…
Domenico Sacc=E0
------=_NextPart_000_0003_01C392D3.8EFB3B50
Content-Type: application/pdf;
name="Convocazione votazioni IngInfo 22-10-03.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="Convocazione votazioni IngInfo 22-1003.pdf"
Pj4gDXN0cmVhbQ0K8n5iU/Nue8RAmL2RonDU7cO7MurDg/wefz
WtmC8/rUVdA9mx/wYqLg7CDMIR
…
------=_NextPart_000_0003_01C392D3.8EFB3B50--
Il Protocollo SMTP
10110
01100
01011
I comandi SMTP sono inviati in ASCII utilizzando una connessione
TCP sulla porta 25 della macchina destinataria (provare con un
programma java o con il comando “telnet host 25”)
Sequenza di comandi del client:







HELO <host>
“Saluta” il server.
MAIL FROM: <indirizzo>
“busta”
Indica il mittente del messaggio.
RCPT TO: <indirizzo>
Indica il destinatario.
DATA
Invia i campi dell’intestazione (es. Subject), ed il corpo del messaggio
terminato da un punto (.) messo da solo su una linea.
QUIT
Chiude la connessione
10110
Esempio di “conversazione” SMTP
01100
01011
Server:
Client:
Server:
Client:
Server:
Client:
Server:
Client:
Server:
Client:
Server:
Client:
Server:
220 dns.icar.cnr.it … logging access from: minos.cs.icar.cnr.it [150.145.63.34]
HELO dns.icar.cnr.it
250 dns.icar.cnr.it Hello minos.cs.icar.cnr.it [150.145.63.34], pleased to meet you
MAIL FROM: <[email protected]>
250 2.1.0 <[email protected]>... Sender ok
RCPT TO: <[email protected]>
250 2.1.5 <[email protected]>... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Subject: prova
testo prova
.
250 2.0.0 hA5BpSJ9031480 Message accepted for delivery
QUIT
221 2.0.0 dns.icar.cnr.it closing connection
Connection closed by foreign host.
10110
Gateway di Posta Elettronica
01100
01011
Quando le macchine che si scambiano messaggi di posta
elettronica non supportano connessioni TCP occorre far uso di un
gateway al livello delle applicazioni.
Gestione delle mailing list
10110
01100
01011



Una mailing list è una lista di indirizzi cui è assegnato un indirizzo e-mail.
Un mail exploder (o forwarder) è un programma che verifica in un archivio
se un indirizzo è in realtà una lista, e manda una copia del messaggio a tutti gli
appartenenti alla lista.
Spesso questi programmi sono eseguiti su appositi host, detti e-mail
gateway.
Caselle Postali Remote
10110
01100
01011


La casella di posta è in genere posta su server potenti ed
operanti 24h su 24.
L’utente accede alla propria casella di posta remota tramite
appositi protocolli:

Post Office Protocol (POP3)
protocollo semplice per recuperare i messaggi e memorizzarli sulla
macchina dell’utente.

Interactive Mail Access Protocol (IMAP)
più complesso per permettere di leggere i messaggi conservandoli
sul server di posta. Utilizzato di solito con interfaccia Web.

Distributed Mail System Protocol (DMSP)
permette di gestire la posta su più server ed in maniera asincrona.
Accesso remoto alle caselle postali
10110
01100
01011

Sul mail server operano solitamente due programmi server:
o
o
il server SMTP per ricevere ed inviare i messaggi
il server POP e/o IMAP per consentire l’accesso remoto
alle caselle postali.
10110
01100
01011
POP e IMAP
Scarica

LivelloApplicazione2 - ICAR-CNR