I protocolli di email 1 Posta elettronica Tre componenti: • user agents • mail servers • Simple mail transfer protocol (SMTP) User agent • ovvero il mail reader • composizione, lettura, editing dei messaggi di posta • ad es., Eudora, Outlook, elm, pine • messaggi in arrivo e in partenza memorizzati sul server 2 Posta elettronica: mail servers Mail server • mailbox contiene i messaggi in arrivo (ancora da leggere) per lo user agent • coda messaggi in uscita (da spedire) • protocollo SMTP fra mail servers per spedire la posta client: sending mail server “server”: receiving mail server 3 Posta elettronica: SMTP SMTP è definito nella RFC 821. Usa TCP per trasferire in modo affidabile i messaggi email dal client al server, usando la porta 25. Trasferimento diretto: dal sending server al receiving server. Tre fasi del trasferimento: • handshaking, • trasferimento messaggi, • chiusura. Interazione comando/risposta: • comando: testo ASCII; • risposta: codice e frase di stato. I messaggi devono essere in ASCII a 7 bit. 4 Esempio di interazione SMTP S: C: S: C: S: C: S: C: S: C: C: C: S: C: S: 220 hamburger.edu HELO crepes.fr 250 Hello crepes.fr, pleased to meet you MAIL FROM: <[email protected]> 250 [email protected]... Sender ok RCPT TO: <[email protected]> 250 [email protected]... Recipient ok DATA 354 Enter mail, end with “.” on a line by itself Do you like ketchup? How about chips? . 250 Message accepted for delivery QUIT 221 hamburger.edu closing connection 5 Prova di interazione SMTP telnet servername 25 Aspettare la risposta 220 dal server. Inserire i comandi HELO, MAIL FROM, RCPT TO, DATA, QUIT. Nota: è possibile spedire una email senza usare un email reader. 6 SMTP: note finali SMTP usa connessioni persistenti. SMTP richiede che il messaggio • HTTP: pull; SMTP: push. (header & body) sia in ASCII a 7 • Entrambi hanno interazione Confronto con HTTP: bit. comandi/risposte in ASCII, Alcune sequenze di caratteri non codici di stato. sono permesse (es. CRLF.CRLF). • HTTP: ogni oggetto è Quindi i messaggi devono essere incapsulato nel suo messaggio codificati (base 64 o quoted di risposta; SMTP: oggetti printable). multipli spediti in un messaggio SMTP server usa CRLF.CRLF per multipart determinare la fine del messaggio. 7 Formato dei messaggi di mail SMTP: protocollo per lo scambio di messaggi email. RFC 822: standard per messaggi in formato testo. • Header lines, ad es.: To: From: Subject: sono diversi dai comandi SMTP! • Body: il “messaggio”, caratteri ASCII soltanto. 8 Formato messaggi: estensioni multimediali MIME: Multipurpose Internet Mail Extensions, RFC 2045, 2056. Linee aggiuntive nello header definiscono il MIME content type 9 MIME types Content-Type: type/subtype; parameters Text esempi di subtypes: plain, Video html. Image esempi di subtypes: jpeg, gif. esempi di subtypes: mpeg, quicktimes. Application altri dati che devono essere processati dal reader prima di essere visibili; Audio esempi di subtypes: basic (8bit mu-law encoded), esempi di subtypes: msword, octet-stream. 32kadpcm (32kbps coding). 10 Multipart Type From: [email protected] To: [email protected] Subject: picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 --98766789 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Dear Bob, Please find a picture of a crepe. --98766789 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ………………… ……………………………………………………………………… ……………………base64 encoded data --98766789-- 11 Protocolli di accesso alla posta SMTP: spedizione al server di ricezione e memorizzazione. Protocolli di accesso mail: recupero dal server. POP: Post Office Protocol [RFC 1939]. • • Autorizzazione (agent <--> server) e download. IMAP: Internet Mail Access Protocol [RFC 2060]. Più funzionalità e maggiore complessità. Manipolazione dei messaggi memorizzati sul server. HTTP: Hotmail, Yahoo! Mail, ecc. 12 Protocollo POP3 Fase di autorizzazione Comandi client: • user: username; • pass: password. Risposta server: • +OK • -ERR Fase di transazione (client) list: lista dei numeri di messaggi, con dimensione degli stessi; retr: recupero messaggi in base al numero; dele: cancellare; quit 13