Articoli

Country Code
Indirizzi IP
SMTP


Info e Link

Award
Download
Link
Aiuto
Feedback
Informazioni Legali
Contatti


Sponsor


Ricerca
Home Articoli Cybercrimine Protocolli SMTP
SMTP
 
Data documento:
20 Febbraio 2003

SMTP
(Simple Mail Transfer Protocol)


Il protocollo SMTP, descritto nella RFC 821, è un protocollo ad alto livello, e quindi molto semplice, per la gestione della posta elettronica. Si intrappone tra l'utente e il server di posta e il suo funzionamento è alla base di tutte le e-mail che viaggiano nella rete, essendo un metodo standard, tutti i client di posta più diffusi lo utilizzano.

Questo protocollo è formato da semplici comandi che rappresentano un vero e proprio colloquio tra l'utente (o il client di posta per lui) e il server di posta (normalmente in ascolto sulla porta 25), vediamoli in dettaglio :

HELO dominio.it - (Hello) E' la presentazione al server al quale ci stiamo collegando, dominio.it è il nome del nostro server;

Messaggi di risposta
250 dominio.it Il server di posta risponde con un ok e il nome del nostro server
421 dominio.it Service not available, closing transmission channel
Errore - Il servizio non è disponibile
500 Syntax error, command unrecognized
Errore - Il comando è sconosciuto
501 Failure reply Errore - Errore di connessione
504 Command parameter not implemented Errore - Parametro del comando non implementato


MAIL FROM:<mittente@server.it>
- (Mail) Questo comando indica al server di posta che siamo intenzionati a spedire un messaggio, il campo mittente@server.it è l'indirizzo di posta di chi stà inviando il messaggio;

Messaggi di risposta
250 OK Il mittente è stato accettato
421 dominio.it Service not available, closing transmission channel
Errore - Servizio non disponibile, viene interrotta la connessione
451 Requested action aborted: error in processing
Errore - Errore nel processo
452 Requested action not taken: insufficient system storage
Errore - La richiesta non può essere esaudita per spazio di archiviazione insufficiente
500 Syntax error, command unrecognized
Errore - Il comando è sconosciuto
501 Syntax error in parameters or arguments Errore - Errore di sintassi o nei parametri
552 Requested mail action aborted: exceeded storage allocation
Errore - Superato il limite di spazio di archiviazione disponibile


RCPT TO:<destinatario@server.it>
- (Recipient) Indica al server che vogliamo spedire il messaggio all'indirizzo destinatario@server.it, questo campo può essere ripetuto più volte qualora il messaggio debba essere inviato a più destinatari;

Messaggi di risposta
250 OK Il destinatario esiste ed è stato accettato
251 User not local; will forward to <forward@server.it>
Il destinatario non è presente, ma siccome è conosciuto l'email verrà inoltrata al indirizzo forward@server.it, serve ad avvisare il mittente che la prossima volta può utilizzare il nuovo indirizzo
421 dominio.it Service not available, closing transmission channel
Errore - Il servizio non è disponibile
450 Requested mail action not taken: mailbox unavailable
Errore - La casella richiesta è al momento non disponibile
451 Requested action aborted: error in processing Errore - Errore nel processo
452 Requested action not taken: insufficient system storage Errore - La richiesta non può essere esaudita per spazio di archiviazione insufficiente
500 Syntax error, command unrecognized Errore - Il comando è sconosciuto
501 Syntax error in parameters or arguments Errore - Errore di sintassi o nei parametri
503 Bad sequence of commands
Errore - Errore nella sequenza dei comandi
550 Failure reply
Il destinatario non è presente nel server e quindi il messaggio non può essere inviato
551 User not local; please try <forward@server.it>
Il destinatario non è presente, l'indirizzo dove può essere trovato e forward@server.it, ma l'email non verrà inoltrata, dovrà essere cura del mittente inviarla al nuovo indirizzo
552 Requested mail action aborted: exceeded storage allocation
Errore - Superato il limite di spazio di archiviazione disponibile
553 Requested action not taken: mailbox name not allowed Errore - Il nome fornito non è permesso


DATA - (Data) Con questo comando diciamo al server che tutto ciò che verrà scritto in seguito sarà il corpo dell'e-mail, cioè il messaggio vero e proprio, per terminare il blocco di testo da inviare, è necessario inserire <CRLF>.<CRLF> (un invio, un punto e un altro invio);

Messaggi di risposta
250 OK
Il messaggio è stato recepito correttamente (al termine del invio del messaggio dopo il <CRLF>.<CRLF>
354 Intermediate reply
Dopo aver inserito il comando data, il server indica con questo messaggio che è in attesa del corpo del messaggio.
421 dominio.it Service not available, closing transmission channel
Errore - Il servizio non è disponibile
451 Requested action aborted: error in processing Errore - Errore nel processo
452 Requested action not taken: insufficient system storage Errore - La richiesta non può essere esaudita per spazio di archiviazione insufficiente
500 Syntax error, command unrecognized Errore - Il comando è sconosciuto
501 Syntax error in parameters or arguments Errore - Errore di sintassi o nei parametri
503 Bad sequence of commands
Errore - Errore nella sequenza dei comandi
552 Requested mail action aborted: exceeded storage allocation
Errore - Superato il limite di spazio di archiviazione disponibile
554 Transaction failed
Errore - Fallimento


VRFY Nome
- (Verify) Verifica se il nome inserito è presente nel server a cui è stata formulata la richiesta, in caso affermativo viene fornita l'e-mail;

Messaggi di risposta
250 Nome Cognome <email@server.it>
Al nome richiesto corrisponde l'indirizzo email@server.it
251 User not local; will forward to <email@server.it>
Il nome esiste, ma è in un altro server con l'indirizzo email@server.it
421 dominio.it Service not available, closing transmission channel
Errore - Il servizio non è disponibile
500 Syntax error, command unrecognized Errore - Il comando è sconosciuto
501 Syntax error in parameters or arguments Errore - Errore di sintassi o nei parametri
502 Command not implemented
Errore - Comando non implementato
504 Command parameter not implemented Errore - Parametro del comando non implementato
550 String does not match anything Il nome richiesto non è presente in questo server
551 User not local; please try <email@server.it>
Il nome esiste, ma è in un altro server con l'indirizzo email@server.it
553 User ambiguous Esistono più utenti simili al nome fornito


EXPN Gruppo
- (Expand) Chiede che vengano elencati tutti gli appartenenti al gruppo richiesto, se il gruppo esiste vengono forniti i nomi e i relativi indirizzi e-mail;

Messaggi di risposta
250 Nome1 Cognome1 <email1@server.it>
250 Nome2 Cognome2 <email2@server.it>
Elenco dei componenti del gruppo richiesto con relative e-mail
421 dominio.it Service not available, closing transmission channel
Errore - Il servizio non è disponibile
550 Access Denied to You
Non si ha il permesso di visualizzare i componenti del gruppo richiesto
500 Syntax error, command unrecognized Errore - Il comando è sconosciuto
501 Syntax error in parameters or arguments Errore - Errore di sintassi o nei parametri
502 Command not implemented
Errore - Comando non implementato
504 Command parameter not implemented Errore - Parametro del comando non implementato


SEND FROM:<mittente@server.it> - (Send) Indica che vogliamo mandare un messaggio che dovrà essere inoltrato solo se l'utente con email specificata è attivo in quel momento e accetta messaggi terminale, utilizzato quindi come una rudimentale chat;

Messaggi di risposta
250 OK
Il comando è stato accettato
421 dominio.it Service not available, closing transmission channel
Errore - Servizio non disponibile, viene interrotta la connessione
451 Requested action aborted: error in processing Errore - Errore nel processo
452 Requested action not taken: insufficient system storage Errore - La richiesta non può essere esaudita per spazio di archiviazione insufficiente
500 Syntax error, command unrecognized Errore - Il comando è sconosciuto
501 Syntax error in parameters or arguments Errore - Errore di sintassi o nei parametri
502 Command not implemented
Errore - Comando non implementato
552 Requested mail action aborted: exceeded storage allocation
Errore - Superato il limite di spazio di archiviazione disponibile

SOML FROM:<mittente@server.it> - (Send or Mail) E' simile al comando Send, solo che in questo caso qualora l'utente non fosse attivo, il messaggio verrebbe postato come una normale mail;

Messaggi di risposta
250 OK
Il comando è stato accettato
421 dominio.it Service not available, closing transmission channel
Errore - Servizio non disponibile, viene interrotta la connessione
451 Requested action aborted: error in processing Errore - Errore nel processo
452 Requested action not taken: insufficient system storage Errore - La richiesta non può essere esaudita per spazio di archiviazione insufficiente
500 Syntax error, command unrecognized Errore - Il comando è sconosciuto
501 Syntax error in parameters or arguments Errore - Errore di sintassi o nei parametri
502 Command not implemented
Errore - Comando non implementato
552 Requested mail action aborted: exceeded storage allocation
Errore - Superato il limite di spazio di archiviazione disponibile


SAML
FROM:<mittente@server.it> - (Send and Mail) Invia il messaggio all'utente attivo, in ogni caso viene anche postato il messaggio come una normale mail;

Messaggi di risposta
250 OK
Il comando è stato accettato
421 dominio.it Service not available, closing transmission channel
Errore - Servizio non disponibile, viene interrotta la connessione
451 Requested action aborted: error in processing Errore - Errore nel processo
452 Requested action not taken: insufficient system storage Errore - La richiesta non può essere esaudita per spazio di archiviazione insufficiente
500 Syntax error, command unrecognized Errore - Il comando è sconosciuto
501 Syntax error in parameters or arguments Errore - Errore di sintassi o nei parametri
502 Command not implemented
Errore - Comando non implementato
552 Requested mail action aborted: exceeded storage allocation
Errore - Superato il limite di spazio di archiviazione disponibile


RSET
- (Reset) Cancella i comandi precedentemente inviati ritornando allo stato di semplice collegamento;

Messaggi di risposta
250 Nome1 Cognome1 <email1@server.it>
250 Nome2 Cognome2 <email2@server.it>
Elenco dei componenti del gruppo richiesto con relative e-mail
500 Syntax error, command unrecognized Errore - Il comando è sconosciuto
501 Syntax error in parameters or arguments Errore - Errore di sintassi o nei parametri
504 Command parameter not implemented Errore - Parametro del comando non implementato
550 Access Denied to You
Non si ha il permesso di visualizzare i componenti del gruppo richiesto


HELP [Command]
- (Help) Senza nessun comando visualizza la lista dei comandi, con il comando ne spiega la funzione e l'utilizzo;

Messaggi di risposta
211 System status, or system help reply
Informazioni sul comando richiesto
214 Help message
Informazioni sui comandi
500 Syntax error, command unrecognized Errore - Il comando è sconosciuto
501 Syntax error in parameters or arguments Errore - Errore di sintassi o nei parametri
502 Command not implemented
Errore - Comando non implementato
504 Command parameter not implemented Errore - Parametro del comando non implementato


NOOP
- (No Operation) Mantiene la connessione attiva, non eseguendo però alcuna operazione;

Messaggi di risposta
250 OK
Messaggio accettato
421 dominio.it Service not available, closing transmission channel
Errore - Servizio non disponibile, viene interrotta la connessione
500 Syntax error, command unrecognized Errore - Il comando è sconosciuto


TURN
- (Turn) Questo comando inverte le parti tra client e server, se il client invierà tale comando diventerà server e il server client, se il server invierà tale comando diventerà client e il client server, può essere rifiutato;

Messaggi di risposta
250 OK
Comando accettato
500 Syntax error, command unrecognized Errore - Il comando è sconosciuto
502 NO
Comando non accettato
503 Bad sequence of commands
Errore - Errore nella sequenza dei comandi


QUIT
- Termina la connessione attiva con il server.

Messaggi di risposta
221 dominio.it Service closing transmission channel
Conferma la chiusura
500 Syntax error, command unrecognized Errore - Il comando è sconosciuto


Elencati i comandi vediamo un semplice dialogo per l'invio di una mail:

Server: 220 server.it Simple Mail Transfer Service Ready
Client: HELO client.it
Server: 250 server.it
Client: MAIL FROM:<mail@client.it>
Server: 250 OK
Client: RCPT TO:<mail@server.it>
Server: 250 OK
Client: RCPT TO:<nomail@server.it>
Server: 550 No such user here
Client: DATA
Server: 354 Start mail input; end with <CRLF>.<CRLF>
Client: Corpo del messaggio
Client: .
Server: 250 OK
Client: QUIT
Server: 221 server.it Service closing transmission channel

In questo modo è stato mandato il messaggio "Corpo del messaggio" dal mittente mail@client.it ai destinatari mail@server.it e nomail@server.it, ma il secondo destinatario è sconosciuto dal sistema, quindi verrà inoltrato solo al primo.

Nel corpo del messaggio è possibile mettere del testo formattato in HTML o dei campi particolari quali Subject: o To: che spesso i client capiscono ed interpretano visualizzandoli poi in appositi campi all'utente.

Ultimo Articolo

22 ottobre 2006
Valle dell'Orta
(Galleria)


Fotografie

Arte e luoghi
Astronomia
Fauna
Parchi e riserve
Sport
Subacquea


Area Protetta
User:
Pass: