SMTP errors

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;

feedback
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;

feedback
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;

feedback
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);

feedback
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;

feedback
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;

feedback
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;

feedback
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;

feedback
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;

feedback
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;

feedback
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;

feedback
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;

feedback
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;

feedback
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.

feedback
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.

SMTP errors