Simple Mail Transfer Protocol
Introduzione
Simple Mail Transfer Protocol ( SMTP) è il protocollo standard per la trasmissione via internet di email. In italiano si potrebbe tradurre come “Protocollo elementare di trasferimento postale”.
E' un protocollo relativamente semplice, testuale, nel quale vengono specificati uno o più destinatari di un messaggio, verificata la loro esistenza, e infine il messaggio viene trasferito. E' abbastanza facile verificare come funziona un server SMPT mediante un programma TELNET. L'SMTP usa il protocollo di trasmissione TCP, e per accedervi, la porta 25. Per associare il server SMTP a un dato nome di dominio (DNS), si usa un record denominato MX, ( Mail Exchange ).
L'SMTP iniziò a diffondersi sempre più fin dai primi anni 80'. A quel tempo era un protocollo complementare all' UUCP più adatto a gestire il trasferimento di e-mail fra computer la cui connessione era intermittente. In altre parole il protocollo SMTP funziona meglio se i computer sono sempre collegati alla rete.
Sendmail fu uno dei primi, ( ma non il primo ), agente o programma di trasferimento di posta elettronica ad implementare il protocollo SMTP. Nel 2001 sono almeno 50 i programmi che implementano il protocollo SMTP come client ( mittente dei messaggi ) o server, ( destinatario del messaggio). Vi sono altri programmi, lato server, che usano l'SMTP : Exim, Postfix, Qmail, Microsfot Exchange Server.
L'SMTP era un protocollo basato esclusivamente sul riconoscimento di caratteri di testo ASCII, e quindi ha forti difficoltà a trattare con file binari. Fu quindi sviluppato uno standard MIME per codificare file binari, utile a trasferirli via email. Al giorno d'oggi molti server SMTP supportano l'estensione 8BITMIME. Questa estensione consente un trasferimento più agevole dei file binari, come se fossero file di testo.
L'SMTP è un protocollo "push" che non pemette, su richiesta, il "prelievo" di messaggi da server remoto. Per fare questo il mail client deve usare il POP3, o Post Office Protocol, oppure l'IMAP, o Internet Message Access Protocol. Alcuni server SMTP per fare queste operazioni usano il protocollo ERTN.
Esempio di comunicazione SMTP
Dopo aver stabilito una connessione tra il mittente ( il client) e il destinatrio ( il server ), ciò che accade è una sessione SMTP vera e propria. Nella successiva conversazione, qualsiasi cosa inviata dal client è preceduta con "C:" , mentre qualsiasi cosa inviata dal server è preceduta da "S:". Su molti computer si può stabilire una connessione mediante il comando telnet :
telnet www.example.com 25
Questo comando apre un collegamento SMTP verso l'host www.example.com.
S: 220 www.example.com ESMTP Postfix
C: HELO mydomain.com
S: 250 Hello mydomain.com <br
C: MAIL FROM: sender@mydomain.com
S: 250 Ok
C: RCPT TO: friend@example.com
S: 250 Ok
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>
C: Subject: test message
C: From: sender@mydomain.com
C: To: friend@example.com
C:
C: Hello,
C: This is a test.
C: Goodbye.
C: .
S: 250 Ok: queued as 12345
C: quit
S: 221 Bye
Sebbene opzionale, quasi tutti I client richiedono al server che l’estensione SMTP utilizzi un saluto di tipo “EHLO”, piuttosto che di tipo “HELO”, mostrato sopra, e il corpo del testo delle email è formattato tipicamente in MIME.
La sicurezza e lo spamming del protocollo SMPT
Una delle limitazioni del protocollo originale SMPT è che non è adeguatamente programmato per l’autenticazione, o verifica delle identità, dei mittenti. Per ovviare a questo problema è stata sviluppata un’estensione chiamata SMPT-AUTH. Nonostante questo , lo spamming riamane ancor oggi problema maggiore. Attualmente non si ritiene conveniente modificare profondamente il protocollo, a causa dell’enorme effetto che avrebbe sull’enorme numero di protocolli SMTP già installati a livello mondiale. Per ovviare a tali inconvenienti è stato proposto comunque un nuovo protocollo chiamato Internet Mail 2000
Per queste ragioni vi sono sempre più proposte per protocolli a modulazione d’ampiezza che assistono le operazioni SMPT. Il gruppo di ricerche Antispam dell’IRTF sta lavorando su un certo numero di proposte per fornire un semplice metodo di autenticazione, flessibile, leggero e scalabile. Tra quelli esaminati, molto probabilmente verrà utilizzato il Sender Policy Framework, formalmente conosciuto come Sender Permitted From. Tuttavia , questo protocollo di sicurezza è messo in discussione a causa di violazioni del copyright nei confronti di brevetti Microsoft.
Gli standard RFC
- RFC 821 pubblicato nel 1982
- RFC 1123 pubblicato nel 1989. Correzioni all'RFC 821
- RFC 1425 pubblicato nel 1993. Introduce il comando EHLO
- RFC 1651 pubblicato nel 1994. Rimpiazza l'RFC 1425
- RFC 1869 pubblicato nel 1995. Rimpiazza l'RFC 1651
- RFC 1891 pubblicato nel 1996. Corregge l'RFC 1869
- RFC 2821 pubblicato nel 2001. Rimpiazza gli RFC 821, RFC 1123, RFC 1869
- RFC 2822 pubblicato nel 2001.