diff --git a/networking/030-smtp.md b/networking/030-smtp.md new file mode 100644 index 0000000..a405fa1 --- /dev/null +++ b/networking/030-smtp.md @@ -0,0 +1,23 @@ +# Simple Mail Transfer Protocol + +`SMTP` è un protocollo utilizzato per l'invio di email. Basato sul protocollo di trasmissione TCP, garantisce una comunicazione affidabile. + +SMTP può operare su diverse porte: + +- `25`: questa è la porta standard per SMTP. È utilizzata per l'invio di email senza crittografia, il che significa che le informazioni vengono trasmesse in chiaro. Per questo motivo, l'uso della porta 25 è spesso limitato o bloccato dai provider di servizi Internet per prevenire abusi e spam +- `465`: questa porta è utilizzata per `SMTPS` (SMTP Secure), che implementa la crittografia tramite `TLS` (Transport Layer Security) +- `587`: questa porta è utilizzata per SMTP con il comando `STARTTLS`, che consente di avviare una connessione sicura utilizzando TLS. Inizialmente, la connessione avviene in chiaro, ma può essere successivamente crittografata + +## Comandi SMTP + +SMTP è un protocollo basato su comandi e codici di risposta, similmente a HTTP. Utilizza vari comandi per gestire l'invio delle email e fornisce codici di stato come feedback per indicare il risultato delle operazioni. + +`HELP`: quando un client invia questo comando, il server risponde fornendo un elenco dei comandi supportati +`HELO`: inviato dal client per l'autoidentificazione. Questo comando è solitamente accompagnato da un indirizzo email o nome di dominio che identifica il mittente +`MAIL FROM`: seguito da un indirizzo email, questo comando identifica l'effettivo mittente del messaggio +`RCPT TO`: utilizzato per specificare uno o più indirizzi email che rappresentano i destinatari del messaggio +`DATA`: questo comando indica al server che il client è pronto a inviare il corpo del messaggio. Il server risponde con il codice 354, `Enter message, ending with '.' on a line by itself`. Questo significa che il client può inviare il messaggio e che il server considererà la trasmissione terminata quando riceverà un punto su una riga da solo +`QUIT`: inviato dal client per terminare la comunicazione con il server. Il server risponde con il codice 221, confermando la chiusura della connessione +`AUTH LOGIN`: comando utilizzato dal client per l'autenticazione sul server SMTP. Se l'autenticazione ha successo, il server risponde con il codice 235, indicando *Authentication successful* + +![smtp-commands](asset/img/smtp-commands.png) \ No newline at end of file diff --git a/networking/asset/img/smtp-commands.png b/networking/asset/img/smtp-commands.png new file mode 100644 index 0000000..5cc6245 Binary files /dev/null and b/networking/asset/img/smtp-commands.png differ