10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

23
10110 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail

Transcript of 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

Page 1: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

Reti di Calcolatori

IL LIVELLO APPLICAZIONI:E-mail

Page 2: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

La posta elettronica

Funzionamento del sistema di E-mailIl formato dei messaggiIl protocollo SMTPI protocolli POP, IMAP

Page 3: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

La Posta Elettronica o E-mail

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

Page 4: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

La Posta Elettronica

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).

Page 5: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

Trasferimento di E-mail

Nodo Client

mittente agenteutente

coda dellaposta da spedire

agente ditrasferimento

destinatario agenteutente

mailboxesdegli utenti

agente ditrasferimento

Nodo Server

connessione TCPsulla porta 25

SMTP

Page 6: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

Indirizzi di Posta Elettronica

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.

Page 7: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

Formato dei Messaggi

(a) Posta normale (b) Posta elettronica

Page 8: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

Campi Intestazione

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).

Page 9: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

Campi Intestazione (cont.)

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

Page 10: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

Un Esempio di Intestazione

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 +0200Received: 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: helloTo: [email protected]: [email protected]: Lotus Notes Release 5.0.10 March 22, 2002From: [email protected]: Thu, 9 Oct 2003 15:28:12 +0200Content-Length: 710Subject: <oggetto messaggio><testo messaggio…>

Page 11: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

Codifica dei Messaggi

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.

Page 12: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

MIME

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: versione MIME Content-Type: tipo del messaggio Content-Transfer-Encoding: tipo di codifica Content-ID: identificatore unico del

messaggio Content-Description: descrizione del contenuto

Page 13: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

MIME: tipo del messaggio

Page 14: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

MIME: tipo di codifica

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 encodingViene 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).

Page 15: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

Esempio di Intestazione MIME (1/2)

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 +0200Message-ID: <000201c392c2$cb70e4b0$c501a8c0@vajo>MIME-Version: 1.0Content-Type: multipart/mixed;

boundary="----=_NextPart_000_0003_01C392D3.8EFB3B50"X-Mailer: Microsoft Outlook, Build 10.0.3416Content-Length: 117200This is a multi-part message in MIME format.------=_NextPart_000_0003_01C392D3.8EFB3B50

Page 16: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

Esempio di Intestazione MIME (2/2)

Content-Type: text/plain;charset="iso-8859-1"

Content-Transfer-Encoding: quoted-printableCarissimi=20invio in allegato la convocazione del Consiglio dei Corsi di Laurea e di…Domenico Sacc=E0------=_NextPart_000_0003_01C392D3.8EFB3B50Content-Type: application/pdf;

name="Convocazione votazioni IngInfo 22-10-03.pdf"Content-Transfer-Encoding: base64Content-Disposition: attachment;

filename="Convocazione votazioni IngInfo 22-10-03.pdf"Pj4gDXN0cmVhbQ0K8n5iU/Nue8RAmL2RonDU7cO7MurDg/wefzWtmC8/rUVdA9mx/wYqLg7CDMIR…------=_NextPart_000_0003_01C392D3.8EFB3B50--

Page 17: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

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:

Il Protocollo SMTP

HELO <host>“Saluta” il server.

MAIL FROM: <indirizzo>Indica il mittente del messaggio.

RCPT TO: <indirizzo>Indica il destinatario.

DATAInvia i campi dell’intestazione (es. Subject), ed il corpo del messaggio terminato da un punto (.) messo da solo su una linea.

QUITChiude la connessione

“busta”

Page 18: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

Esempio di “conversazione” SMTP

Server: 220 dns.icar.cnr.it … logging access from: minos.cs.icar.cnr.it [150.145.63.34]

Client: HELO dns.icar.cnr.it

Server: 250 dns.icar.cnr.it Hello minos.cs.icar.cnr.it [150.145.63.34], pleased to meet you

Client: MAIL FROM: <[email protected]>

Server: 250 2.1.0 <[email protected]>... Sender ok

Client: RCPT TO: <[email protected]>

Server: 250 2.1.5 <[email protected]>... Recipient ok

Client: DATA

Server: 354 Enter mail, end with "." on a line by itself

Client: Subject: prova

testo prova

.

Server: 250 2.0.0 hA5BpSJ9031480 Message accepted for delivery

Client: QUIT

Server: 221 2.0.0 dns.icar.cnr.it closing connection

Connection closed by foreign host.

Page 19: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

Gateway di Posta Elettronica

Quando le macchine che si scambiano messaggi di posta elettronica non supportano connessioni TCP occorre far uso di un gateway al livello delle applicazioni.

Page 20: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

Gestione delle mailing list

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.

Page 21: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

Caselle Postali Remote

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.

Page 22: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

Accesso remoto alle caselle postali

Sul mail server operano solitamente due programmi server:

o il server SMTP per ricevere ed inviare i messaggio il server POP e/o IMAP per consentire l’accesso remoto alle caselle postali.

Page 23: 10110 01100 01100 01011 01011 Reti di Calcolatori IL LIVELLO APPLICAZIONI: E-mail.

1011010110

01100 01100

0101101011

POP e IMAP