Posta Elettronica in Internet
Crediti
Parte delle slide seguenti sono adattate dalla
versione originale di J.F Kurose and K.W. Ross
(© 1996-2004 All Rights Reserved)
2-1
Posta elettronica
coda
messaggi in uscita
mailbox utente
user
agent
Tre componenti principali:
 user agent
 mail server
mail
server
 simple mail transfer
protocol: SMTP
User Agent
SMTP
 “Lettore di posta” (mail
reader)
mail
 Composizione e lettura dei
server
messaggi di posta
 Es., Eudora, Outlook, elm,
Netscape Messenger
user
 I messaggi in ingresso/uscita
agent
memorizzati sul server
SMTP
SMTP
user
agent
mail
server
user
agent
user
agent
user
agent
2-2
Posta elettronica: mail server
user
agent
Mail Server
 mailbox contiene le mail in
arrivo per l’utente
 Coda di messaggi (message
queue) delle mail in uscita
(non ancora inviate)
 SMTP protocol tra i mail
server per distribuire le
mail
 SMTP client: mail server
invia le mail
 SMTP server: mail
server riceve le mail
mail
server
SMTP
SMTP
mail
server
user
agent
SMTP
user
agent
mail
server
user
agent
user
agent
user
agent
2-3
Posta elettronica: SMTP [RFC 821]
 Usa tcp per il trasferimento affidabile dei messagi da
client a server sulla porta 25
 Trasferimento diretto: da server a server, non si
usano server intermedi di posta
 Tre fasi



Handshaking (saluto)
Trasferimento di uno o più messaggi (connessione
permanente)
Chiusura
 Interazione mediante comandi/risposte
 Comando: testo ASCII
 Risposta: codice di stato e frase
 Attenzione: I messaggi devono essere comunque
riportati in formato ASCII a 7 bit, anche i dati
multimediali
2-4
Esempio di invio mail
4) Il client SMTP manda il
messaggio di Alice sulla
connessione TCP
5) Il mail server di Bob
inserisce il messaggio nella
mailbox di Bob
6) Bob utilizza il suo user
agent per leggere il
messaggio
1) Alice usa il suo user agent
per comporre un messaggio
per [email protected]
2) L’user agent manda il
messaggio al mail server di
Alice; il messaggio è
inserito nella coda dei
messaggi
3) Il client SMTP apre una
connessione TCP con il mail
server di Bob (se fallisce
riprova dopo 30 min.)
1
user
agent
2
mail
server
3
mail
server
4
5
6
user
agent
2-5
Esempio di interazione SMTP
S-C:Connessione TCP tra client e server
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <[email protected]>
S: 250 [email protected]... Sender ok
C: RCPT TO: <[email protected]>
S: 250 [email protected] ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection
2-6
Prova
 telnet servername 25
 Osserva 220 reply dal server
 Digita i comandi:
 HELO
 MAIL FROM
 RCPT TO
 DATA
 QUIT
 Questi comandi permettono di inviare email senza
usare uno user agent
2-7
SMTP: conclusioni
 RFC (821) del 1982
 SMTP usa connessioni TCP
persistenti
 Richiede che il messaggio
(header & body) sia in
formato ASCII 7-bit
 Il server SMTP usa
CRLF.CRLF per
determinare la fine del
messaggio
Confronto con http:
 http: protocollo pull
 smtp: protocollo push
 http: header in ASCII 7-
bit, nessuna limitazione per
il body
 smtp: header & body in
ASCII 7-bit
 http: ogni oggetto
incapsulato in un messaggio
di risposta separato
 smtp: un messaggio con più
oggetti è inviato come unico
messaggio in più parti
2-8
Formato dei messaggi di email
SMTP (RFC 821): protocollo
per lo scambio dei messaggi
email
RFC 822: standard per il
formato dei messaggi di
testo:
 header, es.
header
linea
vuota
body
To:
 From:
 Subject:
differenti dai comandi SMTP

 body

il “messaggio”, solo
caratteri ASCII-7 bit
2-9
Formato Messaggi: Estensioni multimediali
 MIME: Multipurpose Internet Mail Extensions, RFC 2045, 2056
per dati multimediali e di specifiche applicazioni
 Righe addizionali nell’header dichiarano il tipo di contenuto
MIME
Versione MIME
Metodo di
codifica dati
Dichiarazione tipo,
sottotipo e parametri
dei dati multimediali
dati codificati
From: [email protected]
To: [email protected]
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data
2-10
Tipi MIME
Content-Type: type/subtype; parameters
Text
 es. sottotipi: plain, html
Video
 es. sottotipi: mpeg,
quicktime
Image
 es. sottotipi: jpeg, gif
Application
 dati che devono essere
Audio
 es. sottotipi: basic (8-bit
mu-law encoded),
32kadpcm (codifica a 32
kbps)
processati da
un’applicazione prima di
diventare “visibili”
 es. sottotipi: msword,
octet-stream
Nota: Processo registrazione MIME presso IANA per sviluppo coordinato
2-11
Multipart Type
 E-mail contenente
From: [email protected]
più oggetti
To: [email protected]
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=StartOfNextPart
--StartOfNextPart
Dear Bob, Please find a picture of a crepe.
--StartOfNextPart
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data
--StartOfNextPart
Do you want the recipe?
 Boundary
character:
delimitano gli
oggetti
 ContentTransferEncoding e
Content-Type
per ogni oggetto
2-12
Il messaggio ricevuto
Received: from crepes.fr by hamburger.edu; 6 Oct
2003
From: [email protected]
To: [email protected]
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
 Riga di header aggiunta dal server ricevente
 Received indica il mail server inviante, by indica il mail server
ricevente
 Più linee “Received” se il messaggio è stato inoltrato da più
server SMTP lungo il percorso da mittente a destinatario
2-13
Protocolli di accesso alla posta
 Soluzione tradizionale: utente legge direttamente




la posta sul mail server
Attraverso l’user agent è possibile visualizzare file
multimediali e di specifiche applicazioni
Mail server ricevente deve essere sempre attivo
=> non può stare sull’host dell’utente
Agenti di posta accedono alle mailbox che
risiedono su un mail server condiviso (da più utenti)
In ricezione occorre un protocollo di “pull” per
accedere alla mailbox collocata sul mail server
2-14
Protocolli di accesso alla posta
user
agent
SMTP
mail server
mittente
SMTP
access
protocol
user
agent
mail server
ricevente
 SMTP: consegna/memorizzazione nel server di posta del
mittente
 Protocollo di accesso alla mail: recupero della posta dal server
 POP: Post Office Protocol [RFC 1939]
• Autenticazione (agent <-->server) e scaricamento
 IMAP: Internet Mail Access Protocol [RFC 2060]
• Più possibilità (più complesso)
• Manipolazione dei messaggi memorizzati sul server
 HTTP: Hotmail , Yahoo! Mail, ecc.
2-15
Protocollo POP3
1) Autorizzazione
 comandi cliente:
user: username
 pass: password
 risposte server:
 +OK
 -ERR

2) Transazione, client:
 list: elenca messaggi per
numero e dimensione
 retr: scarica messaggio per
numero
 dele: cancella
 quit
S:
C:
S:
C:
S:
+OK POP3 server ready
user bob
+OK
pass hungry
+OK user successfully logged
C:
S:
S:
S:
C:
S:
S:
C:
C:
S:
S:
C:
C:
S:
list
1 498
2 912
.
retr 1
<message 1 contents>
.
dele 1
retr 2
<message 2 contents>
.
dele 2
quit
+OK POP3 server signing off
3) Aggiornamento
on
2-16
Protocollo POP3

Scarica ed elimina
(download and delete)
1.
2.
3.
User agent elimina la
posta dalla mailbox
dopo averla scaricata
User agent permette di
creare cartelle,
spostare messaggi,
effettuare ricerche nei
messaggi
Un utente distribuisce
la posta sui diversi host
da cui accede alla
mailbox

Scarica e conserva
(download and keep)
1.
2.
3.
User agent conserva
la posta sulla mailbox
Utente può leggere i
messaggi da macchine
diverse
POP3 stateless tra
sessioni diverse, non
permette di
strutturare i messaggi
in directory
 Prova
 telnet POP3server 110
2-17
Protocolli IMAP e HTTP
 IMAP
 Mantiene tutti i
messaggi in un posto:
il server
 Permette all’utente di
organizzare i
messaggi in cartelle
 Mantiene lo stato
dell’utente tra una
sesione e l’altra:
 nomi della cartelle
e associazione tra
messaggi e cartelle
 Più complesso del POP
 HTTP
 Web mail (Hotmail)
 Usato per spedire e
ricevere mail
attraverso i mail
server
 SMTP utilizzato tra
mail server
 Accessibilità globale
 Organizzazione di
messaggi in cartelle

server IMAP utilizzato
di solito
2-18
Scarica

mail server