Cos'è il Simple Mail Transfer Protocol (SMTP)?

Il Simple Mail Transfer Protocol (SMTP) è uno standard di rete per l'invio di e-mail.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Scopri come funziona il Simple Mail Transfer Protocol (SMTP)
  • Ulteriori informazioni sui comandi, i server e le envelope SMTP
  • Definisci Extended SMTP (ESMTP)

Copia link dell'articolo

Cos'è il Simple Mail Transfer Protocol (SMTP)?

Il Simple Mail Transfer Protocol (SMTP) is è uno standard tecnico per la trasmissione di posta elettronica (e-mail) su una rete. Come altri protocolli di rete, SMTP consente a computer e server di scambiare dati indipendentemente dall'hardware o dal software sottostante. Proprio come l'uso di una forma standardizzata di indirizzamento di una busta consente al servizio postale di operare, SMTP standardizza il modo in cui le e-mail viaggiano dal mittente al destinatario, rendendo possibile un recapito diffuso della posta elettronica.

SMTP è un protocollo di consegna della posta, non un protocollo di recupero. Un servizio postale consegna la posta a una casella postale, ma il destinatario deve la comunque recuperare dalla casella. Allo stesso modo, SMTP consegna un'e-mail al server di posta di un provider di posta elettronica, ma vengono utilizzati protocolli separati per recuperare quell'e-mail dal server di posta in modo che il destinatario possa leggerla.

Come funziona SMTP?

Tutti i protocolli di rete seguono un processo predefinito per lo scambio di dati. SMTP definisce un processo per lo scambio di dati tra un client di posta elettronica e un server di posta. Un client di posta elettronica è ciò con cui un utente interagisce: il computer o l'applicazione Web a cui accede e invia e-mail. Un server di posta è un computer specializzato per l'invio, la ricezione e l'inoltro di e-mail; gli utenti non interagiscono direttamente con i server di posta.

Ecco un riepilogo di ciò che passa tra il client di posta elettronica e il server di posta per iniziare l'invio di un'e-mail:

  • Apertura della connessione SMTP: Poiché SMTP utilizza il Transmission Control Protocol (TCP) come protocollo di trasporto, questo primo passaggio inizia con una connessione TCP tra client e server. Successivamente, il client di posta elettronica avvia il processo di invio dell'e-mail con un comando "Hello" specializzato (HELO o EHLO, descritto di seguito).
  • Trasferimento dei dati dell'e-mail: The client sends the server a series of commands accompanied with the actual content of the email: the email header (including its destination and subject line), the email body, and any additional components.
  • Mail Transfer Agent (MTA): il server esegue un programma denominato Mail Transfer Agent (MTA). Questo MTA controlla controlla il dominio dell'indirizzo email del destinatario e, se è diverso da quello del mittente, interroga il Domain Name System (DNS) per trovarne l'indirizzo IP. È come un ufficio postale che cerca il codice postale del destinatario di una lettera.
  • Chiusura della connessione: il client avvisa il server quando la trasmissione dei dati è completa e il server chiude la connessione. A questo punto il server non riceverà ulteriori dati di posta elettronica dal client a meno che il client non apra una nuova connessione SMTP.

Di solito, questo primo server di posta elettronica non è la destinazione finale dell'e-mail effettiva. Il server, dopo aver ricevuto l'e-mail dal client, ripete questo processo di connessione SMTP con un altro server di posta. Quel secondo server fa lo stesso, finché alla fine l'e-mail raggiunge la posta in arrivo del destinatario su un server di posta controllato dal provider di posta elettronica del destinatario.

Confronta questo processo con il modo in cui la posta viaggia dal mittente al destinatario. Un corriere non porta una lettera direttamente dal mittente al destinatario. La porta per prima cosa al suo ufficio postale. L'ufficio postale spedisce la lettera a un altro ufficio postale in un'altra città, poi a un altro e così via finché la lettera non raggiunge il destinatario. Allo stesso modo, le e-mail passano da un server all'altro tramite SMTP fino a quando non arrivano alla posta in arrivo del destinatario.

Cos'è un'envelope SMTP?

Una "envelope" SMTP è l'insieme di informazioni che il client di posta elettronica invia al server di posta sulla provenienza dell'e-mail e sul punto di arrivo. L'envelope SMTP è distinta dall'intestazione e dal corpo dell'e-mail e non è visibile al destinatario dell'e-mail.

Cosa sono i comandi SMTP?

I comandi SMTP sono istruzioni predefinite basate su testo che indicano a un client o server cosa fare e come gestire i dati di accompagnamento. Considerali come pulsanti che il client può selezionare per fare in modo che il server accetti i dati correttamente.

  • HELO/EHLO: questi comandi dicono "Hello" e avviano la connessione SMTP tra client e server. "HELO" è la versione di base di questo comando mentre "EHLO" è per un tipo specifico di SMTP.
  • MAIL FROM: questo comando indica al server chi sta inviando l'e-mail. Se Alice sta cercando di inviare un'e-mail al suo amico Bob, un client potrebbe inviare "MAIL FROM:<alice@example.com>".
  • RCPT TO: questo comando consente di elencare i destinatari dell'e-mail. Se sono presenti più destinatari, il client può inviare questo comando più volte. Nell'esempio precedente, il client dell'e-mail di Alice invierebbe "RCPT TO:<bob@example.com>".
  • DATA: questo comando precede il contenuto dell'e-mail, ad esempio:

DATA
Data: Lun, 4 aprile 2022
Da: Alice alice@example.com
Oggetto: Uova alla Benedict in casseruola
A: Bob bob@example.com

Ciao Bob,
Venerdì porterò le uova alla Benedict in casseruola.
-Alice
.
  • RSET: questo comando reimposta la connessione, rimuovendo tutte le informazioni precedentemente trasferite senza chiudere la connessione SMTP. RSET viene utilizzato se il client ha inviato informazioni errate.
  • QUIT: termina la connessione.

Cos'è un server SMTP?

Un server SMTP è un server di psota che può inviare e ricevere e-mail tramite il protocollo SMTP. I client di posta elettronica si connettono direttamente al server SMTP del provider di posta elettronica per iniziare a inviare un'e-mail. Su un server SMTP vengono eseguiti diversi programmi software:

  • Mail Submission Agent (MSA): l'MSA riceve le e-mail dal client di posta elettronica.
  • Mail Transfer Agent (MTA): l'MTA trasferisce le email al server successivo nella catena di consegna. Come descritto sopra, se necessario potrebbe interrogare il DNS per trovare il record DNS di scambio posta (MX) del dominio del destinatario.
  • Mail Delivery Agent (MDA): l'MDA riceve e-mail dagli MTA e le archivia nella casella di posta elettronica del destinatario.

Quale porta è utilizzata dall'SMTP?

Nell'ambito delle reti, una porta è il punto virtuale in cui vengono ricevuti i dati di rete; possiamo immaginarla come il numero dell'appartamento nell'indirizzo di posta ordinaria. Le porte aiutano i computer a ordinare i dati di rete alle applicazioni corrette. La sicurezza della rete misura il modo in cui i firewall possono bloccare le porte non necessarie in modo da impedire l'invio e la ricezione di dati dannosi.

Da sempre, l'SMTP utilizzava solo la porta 25. Oggi la porta 25 è ancora utilizzata dall'SMTP, ma sono utilizzate anche le porte 465, 587 e 2525.

  • La porta 25 è utilizzata per lo più per le connessioni tra server SMTP. I firewall per le reti degli utenti finali spesso bloccano questa porta poiché gli spammer cercano di abusarne per inviare grandi quantità di spam.
  • La porta 465 era stata progettata per l'uso da parte di SMTP con la crittografia Secure Sockets Layer (SSL). SSL è stato tuttavia sostituito da Transport Layer Security (TLS) e per questo motivo i moderni sistemi di posta elettronica non usano più questa porta. Appare solo in sistemi legacy (datati).
  • La porta 587 è la nuova porta predefinita per l'inoltro delle e-mail. Le comunicazioni SMTP tramite questa porta utilizzano la crittografia TLS.
  • La porta 2525 non è ufficialmente associata a SMTP, ma alcuni servizi di posta elettronica vi offrono la consegna SMTP nel caso in cui le porte di cui sopra siano bloccate.

SMTP e IMAP/POP

L'Internet Message Access Protocol (IMAP) e il Post Office Protocol (POP) sono protocolli utilizzati per consegnare le e-mail alla loro destinazione finale. Il client di posta elettronica deve recuperare l'e-mail dal server di posta finale della catena per mostrare l'e-mail all'utente. A questo scopo, il client utilizza IMAP o POP e non SMTP.

Per capire la differenza tra SMTP e IMAP/POP, considera la differenza tra una tavola di legno e una corda. Una tavola di legno può essere utilizzata per spingere qualcosa in avanti, ma non per tirarla. Una corda può tirare un oggetto, ma non può spingerlo. Allo stesso modo, SMTP "spinge" le e-mail a un server di posta ma IMAP e POP la "trascinano" fino all'applicazione dell'utente.

Cos'è l'Extended SMTP (ESMTP)?

Extended Simple Mail Transfer Protocol (ESMTP) è una versione del protocollo che amplia le sue capacità originali, consentendo l'invio di allegati e-mail, l'uso di TLS e altre funzionalità. Quasi tutti i client di posta elettronica e i servizi di posta elettronica utilizzano ESMTP, non l'SMTP di base.

ESMTP include alcuni comandi aggiuntivi, come "EHLO", un messaggio "hello" esteso che consente l'uso di ESMTP all'inizio della connessione.

Cos'è Cloudflare Email Routing?

Cloudflare Email Routing è progettato per semplificare la creazione e la gestione degli indirizzi e-mail, senza dover tenere d'occhio ulteriori caselle di posta. Con Email Routing, gli utenti possono creare un numero qualsiasi di indirizzi e-mail personalizzati da utilizzare in situazioni in cui non desiderano condividere il proprio indirizzo e-mail principale. Le e-mail vengono quindi instradate alla loro casella di posta elettronica preferita, senza dover mai esporre l'indirizzo e-mail principale.

Cloudflare Email Routing funziona modificando l'envelope SMTP di un'e-mail, lasciando inalterati l'intestazione e il corpo. Per maggiori informazioni, consulta il post del nostro blog.