La posta elettronica è considerata come il servizio più usato su internet. Quindi la serie di protocolli TCP/IP offre una panoplia di protocolii che permette di gestire facilmente il routing della posta sulla rete.
Il protocollo SMTP (Simple Mail Transfer Protocol, tradotto Protocollo Semplice di Trasferimento della Posta) è il protocollo standard che permette di trasferire la posta da un server ad un altro con una connessione point to point.
Si tratta di un protocollo funzionante in modalità connessa, incapsulato in una trama TCP/IP. La posta è consegnata direttamente al server di posta del destinatario. Il protocollo SMTP funziona grazie a dei comandi testuali inviati al server SMTP (per default sulla porta 25). Ognuno dei comandi inviati dal client (validato dalla stringa di caratteri ASCII CR/LF, equivalente ad un pressione del tasto invio) è seguito da una risposta del server SMTP composta da un numero e da un messaggio descrittivo.
Ecco uno scenario di richiesta di invio di mail ad un server SMTP
S: 220 smtp.kioskea.net SMTP Ready C: EHLO terminale1.kioskea.net S: 250 smtp.kioskea.net C: MAIL FROM:<webmaster@kioskea.net> S: 250 OK C: RCPT TO:<meandus@meandus.net> S: 250 OK C: RCPT TO:<tittom@tittom.fr> S: 550 No such user here C: DATA S: 354 Start mail input; end with <CRLF>.<CRLF> C: Subject: Ciao C: Ciao Meandus, C: come va? C : C: A presto! C: <CRLF>.<CRLF> S: 250 OK C: QUIT R: 221 smtp.kioskea.net closing transmission
Le specifiche di base del protocollo SMTP vogliono che tutti i caratteri trasmessi siano codificati in codice ASCII a 7 bitse che l'ottavo bit sia esplicitamente messo a zero. Quindi per inviare dei caratteri accentuati bisogna ricorrere a degli algoritmi integranti le specifiche MIME :
E' inoltre possibile inviare una mail grazie ad un semplice telnet sulla porta 25 del server SMTP :
telnet smtp.kioskea.net 25(il server indicato qui sopra è volontariamente inesistente, potete provare sostituendo kioskea.net con il dominio del vostro fornitore internet)
Ecco un riassunto dei principal comandi SMTP
| Comando | Esempio | Descrizione |
|---|---|---|
| HELO (ormai EHLO) | EHLO 193.56.47.125 | Identificazione attraverso l'indirizzo IP o il nome del dominio del computer mittente |
| MAIL FROM: | MAIL FROM: expediteur@domaine.com | Identificazione dell'indirizzo del mittente |
| RCPT TO: | RCPT TO: destinataire@domaine.com | Identificazione dell'indirizzo del destinatario |
| DATA | DATA message | Corpo della mail |
| QUIT | QUIT | Uscita del server SMTP |
| HELP | HELP | Lista di comandi SMTP supportata dal server |
L'insieme delle specifiche del protocollo SMTP sono definite nelRFC 821 (da aprile 2001, le specifiche del protocollo SMTP sono definite nel RFC 2821).
Il protocollo POP (Post Office Protocol tradotto con "protocollo dell'ufficio postale") permette come indicato dal suo nome di andare a recuperare la propria posta su un server remoto (server POP). E' necessario per le persone che, non essendo connesse in permanenza ad internet, devono consultare le proprie mail off-line.
Esistono due versioni principali di questo protocollo, POP2 e POP3, alle quali sono attribuite rispettivamente le porte 109 e 110 e che funzionano attraverso dei comandi testuali radicalmente diversi.
Esattamente come nel caso del protocollo SMTP, il protocollo POP (POP2 e POP3) funziona grazie a dei comandi testuali inviati al server POP. Ciascuno dei comandi inviati dal client (validato dalla sequenza CR/LF) è composto da una parola-chiave, eventualmente accompagnata da uno o più argomenti ed è seguito da una risposta del server POP composta da un numero e da un messaggio descrittivo.
Ecco una tabella riassuntiva dei principali comandi POP2 :
| Comandi POP2 | |
|---|---|
| HELLO | Indentificazione attraverso l'indirizzo IP del computer mittente |
| FOLDER | Nome della casella da consultare |
| READ | Numero del messaggio da leggere |
| RETRIEVE | Numero del messaggio da recuperare |
| SAVE | Numero del messaggio da salvare |
| DELETE | Numero del messaggio da cancellare |
| QUIT | Uscita del server POP2 |
Ecco un riassunto dei comandi POP3 :
| Comandi POP3 | |
|---|---|
| USER identificativo | Questo comando permette di autentificarsi. Esso deve essere seguito dal nome dell'utente. cioè da una stringa di caratteri che identificano l'utente sul server. Il comando USER deve precedere il comando PASS. |
| PASS password | Il comando PASS permette di indicare al password dell'utente il cui nome è specificato ad un comando User precedente. |
| STAT | Informazione sui messaggi contenuti sul server |
| RETR | Numero di messaggi da recuperare |
| DELE | Numero di messaggi da cancellare |
| LIST [msg] | Numero di messaggi da visualizzare |
| NOOP | Permette di mantenere le connessioni aperte in caso di inattività |
| TOP <messageID> <n> | Comando che visualizza n linee di messaggio, il cui numero è dato in argomento. In caso di risposta positiva da parte del server, questo rinvia le intestazioni del messaggio, poi una linea vuota e infine le n prime linee del messaggio. |
| UIDL [msg] | Richiesta al server di rinviare una linea contenente delle informazioni sul messaggio eventualmente dato in argomento. Questa linea contiene una stringa di caratteri, detta listing d'identificatore unico, che permette di identificare in modo univoco il messaggio sul server, indipendentemente dalla sessione. L'argomento opzionale è un numero corrispondente ad un messaggio esistente sul server POP, cioè un messaggio non cancellato). |
| QUIT | Il comando QUIT chiede l'uscita del server POP3. Esso implica la cancellazione di tutti i messaggi segnati come eliminati e rinvia lo stato di questa azione. |
Il protocollo POP3 gestisce così l'autentificazione attraverso il nome utente e password, ma non è invece sicuro dato che le password, come le mail, circolano in chiaro (in modo non cifrato), sulla rete. In realtà, secondo la RFC1939, è possibile codificare la password utilizzando l'algoritmo MD5 e quindi beneficiare di un'autentificazione sicura. Tuttavia, essendo questo un comando opzionale, solo pochi server lo implementano. D'altra parte il protocollo POP3 blocca la casella postale durante la consultazione, il che significa che è impossibile avere una consultazione simultanea della stessa casella da due utenti.
Come è possibile inviare una mail grazie a telne, si può anche accedere alla propria posta grazie ad un semplice telnet sulla porta del server POP (110 per default) :
telnet mail.kioskea.net 110(il server indicato qui sopra è volontariamente inesistente, potete provare sostituendo kioskea.net con il dominio del vostro fornitore internet)
S: +OK mail.kioskea.net POP3 service S: (Netscape Messaging Server 4.15 Patch 6 (built Mar 31 2001)) C: USER jeff S: +OK Name is a valid mailbox C: PASS mia_pass S: +OK Maildrop ready C: STAT S: +OK 2 0 C: TOP 1 5 S: Subject: Ciao S: Ciao Meandus, S: come va? S : S: A presto! C: QUIT S: +OK
La visualizzazione dei dati che digitate dipende dal client Telnet usato. Secondo il client Telnet, bisognerà attivare l'opzione echo locale.
Il protocollo IMAP (Internet Message Access Protocol) è un protocollo alternativo al protocollo POP3 ma che offre molte più possibilità :
Per ulteriori informazioni sul protocollo SMTP, la cosa migliore è fare riferimento alla RFC 821 che spiega in dettaglio il protocollo :