Sistemi di elaborazione dell'informazione / Reti

SMTP Simple mail transfer protocol

E' il protocollo standard per il servizio di posta elettronica. E' un protocollo di tipo TCP/IP che definisce il formato del messaggio e l'agente di trasferimento messaggio (MTA), il quale memorizza e invia il messaggio. SMTP era stato definito in origine per il solo testo ASCII, ma la definizione del metodo di codifica MIME ed altri metodi di codifica abilitano il protocollo alla possibilità di effettuare attachments ai messaggi SMTP standard. Questo protocollo gestisce il trasferimento della posta dal sistema di posta di una macchina alla posta di un’altra macchina. Non è suo compito accettare la posta diretta ad altri utenti della stessa macchina; queste sono operazioni che spettano al sistema di posta locale. In sostanza SMTP si occupa solo della posta diretta a utenti di macchine remote. Il client SMTP accerta l'indirizzo IP della macchina di destinazione con il DNS e lo utilizza con il port "well-known" di SMTP (25), per iniziare la connessione con il server SMTP nella macchina di destinazione. L'inoltro della posta richiede lo scambio di stringhe chiamate comandi. Tutti i comandi sono codificati come stringhe ASCII e comprendono un numero di 3 cifre oppure un comando in formato testo o entrambi. I comandi più utilizzato sono i seguenti:
Hello(helo)
Questo comando serve per identificare il client (sender-SMTP), l’argomento contiene l’host name dello stesso client;
Mail
Questo comando è utilizzato per inizializzare la vera e propria transazione. In questo caso si deve indicare il mittente (reverse-path), a cui è riferita la creazione della e-mail;
Recipient (rept)
Questo comando è usato per identificare il destinatario della Email. Si possono creare più destinatari con l' uso multiplo di questo comando;
Data
Una volta digitato questo comando il server capirà che i successivi dati fanno parte del body della e-mail;
Quit
Questo comando è la fine della transazione, il server risponderà con un messaggio di conferma e chiuderà la transazione stessa. Di seguito vediamo un esempio in cui sono utilizzati tutti questi comandi:

L' elenco dei Reply number sono i seguenti:

211 System status, or system help reply
214 messaggio di Help
220 Servizio pronto
221 Servizio ha chiuso il canale
250 Richieste di azione completata, OK.
251 Utente non locale; si spedirà a <forward-path>
354 Inizia l'input dei dati; finisce con <CRLF>.<CRLF>
421 Servizio non avviabile
450 Richiesta di azione non avviabile [E.g., mailbox piena]
451 Richiesta di azione abbortita: errore locale durante il processo
452 Richiesta di azione abbortita: spazio di sistema insufficiente
500 Errore di sintassi, comando non riconosciuto
501 Errore di sintassy nei parametri o negli argomenti
502 Comando non implementato
503 Cattiva sequenza del comando
504 Parametri del comando non implementati
550 Richiesta di azione non presa: mailbox inavvibile
551 Utente non locale; perfavore prova <forward-path>
552 Richiesta di azione abbortita: si eccede l'allocazione di spazio
553 Richiesta di azione non presa: nome della mailbox non permesso
554 Transazione fallita

Lo standard SMTP è un protocollo "furbo", perché prevede alcune astuzie come quella di non obbligare il trasferimento di un messaggio più di una volta qualora questo abbia più destinatari, o quella di verificare prima l'esistenza del luogo di destinazione, evitando così di lasciare trasferire inutilmente i dati sul server per poi scoprire che il messaggio non è giunto a destinazione, per esempio a causa di un errore nella digitazione dell'indirizzo.























































Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.