SMTP
Cos’è SMTP (Simple Mail Transfer Protocol)?
SMTP (Simple Mail Transfer Protocol) è un protocollo TCP/IP utilizzato per inviare e ricevere e-mail su una rete come Internet. Non è un protocollo di recupero e-mail; tuttavia, fornisce un metodo standardizzato per la consegna delle e-mail, consentendo così ai client e ai server di posta di scambiare dati. Ciò facilita la comunicazione e-mail diffusa, semplice e affidabile. La maggior parte dei client di posta utilizza SMTP, inclusi Gmail, Microsoft Outlook, Apple Mail e Yahoo Mail.
Modello client-server SMTP
SMTP utilizza un modello client-server. Il client si riferisce al computer o all’applicazione Web con cui l’utente interagisce per scrivere, inviare e accedere ai messaggi e-mail. Gli utenti non interagiscono direttamente con i server di posta, che sono computer specializzati le cui funzioni sono inviare, ricevere e inoltrare e-mail.
Nel modello client-server SMTP, avviene quanto segue:
Un server di posta elettronica utilizza SMTP per inviare un messaggio da un client di posta elettronica a un altro server di posta elettronica.
Il server utilizza SMTP come servizio di inoltro per inviare l’e-mail al server ricevente. Il server ricevente utilizza un client di posta elettronica per scaricare la posta in arrivo tramite Internet Message Access Protocol (IMAP), ad esempio, e la inserisce nella posta in arrivo del destinatario. Il destinatario può quindi accedere e visualizzare i messaggi su richiesta.
Come funziona SMTP
Quando un utente fa clic sul pulsante Invia nel proprio client di posta elettronica, viene stabilita una connessione TCP (Transmission Control Protocol) che si collega a un server SMTP, ovvero una connessione tra il server di posta elettronica e il client di posta elettronica.
Per stabilire la connessione e avviare il processo di invio della posta elettronica, il client SMTP invia un comando predefinito basato su testo denominato HELO al server SMTP. Quando riceve la connessione TCP da un client, il processo SMTP avvia una connessione tramite una porta, solitamente la porta 25, per inviare la posta elettronica. Da qui, il client comunica al server cosa fare fornendo informazioni quali gli indirizzi e-mail del mittente e del destinatario e il contenuto della posta elettronica. Informa inoltre il server quando la trasmissione dei dati è completa, a quel punto il server chiude la connessione.
Un agente di trasferimento posta (MTA), che è un programma specializzato eseguito dal server, verifica quindi se entrambi gli indirizzi e-mail appartengono allo stesso dominio e-mail.
Se appartengono allo stesso dominio, l’e-mail viene inviata direttamente al destinatario.
Se non appartengono allo stesso dominio, il server interroga il Domain Name System (DNS) per identificare il dominio del destinatario e il server IP (Internet Protocol), quindi invia il messaggio al server corretto.
Questo server potrebbe essere o meno la destinazione dell’e-mail. In tal caso, il destinatario utilizza IMAP o Post Office Protocol 3 (POP3) per ricevere l’e-mail. In caso contrario, il processo di connessione SMTP si ripete tra più server e-mail finché l’e-mail non raggiunge un server controllato dal provider di posta elettronica del destinatario. A questo punto, raggiunge la posta in arrivo del destinatario.
Cos’è un server SMTP?
Un server SMTP è un’applicazione o un computer che invia, riceve e inoltra e-mail alle destinazioni appropriate. Ecco i passaggi per configurare un server SMTP, noto anche come server di posta in uscita:
- Il software del server SMTP appropriato deve essere configurato su un computer, su un server o nel cloud.
- L’indirizzo del server, il numero di porta e i protocolli di sicurezza devono essere configurati.
- Le impostazioni DNS devono essere configurate.
- Le regole del firewall devono essere impostate per prevenire problemi di recapito delle e-mail.
Tutti i dispositivi connessi alla rete sono dotati di porte standardizzate a cui è assegnato un numero, con ogni numero riservato a determinati protocolli e alle relative funzioni. Il numero di porta identifica processi specifici quando un messaggio Internet o di rete viene inoltrato a un server.
La porta 25 è solitamente riservata a SMTP. SMTP può anche utilizzare le porte 465 o 587 se la porta 25 è bloccata per tenere fuori i truffatori, che comunemente abusano della porta per inviare e-mail di spam. Se anche queste porte sono bloccate, SMTP può utilizzare la porta 2525. I server SMTP sono impostati su una modalità di ascolto sempre attiva. Non appena un server rileva una connessione TCP da un client, il processo SMTP avvia una connessione alla porta 25 per inviare l’e-mail.
I server SMTP in uscita inviano messaggi per gli utenti. I client di posta elettronica, utilizzati per leggere e inviare e-mail, devono anche avere l’indirizzo IP del server SMTP. Per gestire problemi come lo spam, gli amministratori del server devono controllare quali client possono utilizzare il server. Possono farlo limitando gli utenti in base al loro indirizzo IP o implementando un sistema o un comando che richiede l’autenticazione del client.
Comandi SMTP
I comandi SMTP sono istruzioni basate su testo che facilitano l’intero processo SMTP tra client di posta elettronica, server di posta elettronica e MTA. Questi comandi vengono emessi automaticamente, senza che l’utente finale debba immetterli.
Il comando HELO è il client di posta elettronica che si identifica su un server. Avvia la connessione SMTP tra questi due componenti del processo SMTP.
Altri comandi SMTP includono quanto segue:
- MAIL. Questo comando avvia un trasferimento di messaggi e comunica al server SMTP che una nuova transazione sta iniziando e chi sta inviando l’e-mail.
- RCPT. Questo comando identifica l’indirizzo e-mail del destinatario.
- DATI. Questo comando avvia il trasferimento di dati tra il client e il server. Il contenuto del messaggio viene spostato sul server SMTP.
- RSET. Questo comando viene utilizzato per annullare la transazione di posta e reimpostare la connessione SMTP senza chiuderla. Viene inviato al server, dove vengono rimossi tutti i dati sull’e-mail.
- QUIT. Una volta inviata l’e-mail, il client invia questo comando al server per chiudere la connessione.
SMTP e altri protocolli
SMTP è in genere limitato e utilizzato per inviare messaggi e-mail da un mittente a un destinatario. È limitato nella sua capacità di mettere in coda i messaggi all’estremità ricevente. Per questo motivo, viene solitamente utilizzato con POP3 o IMAP, che consente all’utente di salvare i messaggi in una casella di posta del server e di scaricarli periodicamente da un server.
SMTP è solitamente utilizzato con TCP per garantire una consegna affidabile di pacchetti di dati e IP per ottenere il contenuto di un messaggio di posta elettronica sul server giusto.
Un’alternativa a SMTP ampiamente utilizzata in Europa è X.400/X.500. Quando è stato creato, X.400 era destinato a fungere da protocollo internazionale primario. Per la maggior parte degli utenti, X.400/X.500 è stato eclissato da SMTP, ma è ancora utilizzato nei settori della difesa e delle telecomunicazioni.
SMTP vs. IMAP e POP
SMTP è utilizzato per inviare, inoltrare o inoltrare messaggi da un client di posta e non è utilizzato per ricevere messaggi, consegnare messaggi alla destinazione finale o visualizzarli agli utenti. Per queste funzioni, vengono invece utilizzati IMAP e POP. Quando utilizzati insieme, SMTP e IMAP o POP trasmettono messaggi di posta elettronica.
IMAP è un protocollo di recupero di posta elettronica standard che gestisce e recupera messaggi di posta elettronica. Mantiene un’e-mail su un server e quindi la sincronizza su diversi dispositivi. IMAP funziona come intermediario tra il server di posta elettronica e il client di posta elettronica. Quando gli utenti leggono un’e-mail tramite IMAP, la leggono dal server. Non scaricano o archiviano l’e-mail sul loro dispositivo locale.
Il protocollo IMAP consente agli utenti di organizzare i messaggi in cartelle, contrassegnare i messaggi e salvare le bozze dei messaggi sul server. Gli utenti possono anche avere più applicazioni client di posta elettronica che si sincronizzano con il server di posta elettronica per mostrare in modo coerente quali messaggi sono letti o non letti.
La maggior parte dei server e dei client di posta elettronica supporta anche POP e lo utilizza per ricevere e-mail da server remoti e inviarle a un client locale. POP è un protocollo client-server unidirezionale in cui le e-mail vengono ricevute e conservate sul server di posta elettronica. POP consente inoltre agli utenti di scaricare e-mail da un server al client in modo che il destinatario possa visualizzare l’e-mail offline.
Mentre POP è considerato un servizio di archiviazione e inoltro, IMAP è pensato come un file server remoto, perché l’utente può archiviare l’e-mail sul server e accedervi da qualsiasi dispositivo o posizione in base alle esigenze. Inoltre, a differenza di POP, IMAP sincronizza le e-mail su più dispositivi o client. Detto questo, sia POP che IMAP sono supportati dai moderni client di posta elettronica e server Web.
SMTP vs. ESMTP
Extended Simple Mail Transfer Protocol (ESMTP) è un’estensione dell’SMTP originale per l’invio di e-mail che supportano file grafici, audio e video, nonché testo in varie lingue. ESMTP è stato rilasciato nel 1995 per gli utenti che desideravano allegare file multimediali alle e-mail. Il protocollo aggiornato ha abilitato funzioni più recenti come la protezione dei server risparmiando larghezza di banda. Oggi, quasi tutti i server e i client di posta elettronica commerciali supportano ESMTP.
A differenza di ESMTP, i file multimediali non possono essere allegati direttamente a un’e-mail in SMTP senza l’ausilio di Multipurpose Internet Mail Extensions, o MIME. Allo stesso modo, ESMTP consente agli utenti di ridurre le dimensioni delle e-mail, mentre SMTP non lo fa.
Un’altra differenza fondamentale tra SMTP ed ESMTP è che ESMTP include comandi aggiuntivi. Un esempio è il comando EHLO che abilita l’uso di ESMTP quando viene stabilita per la prima volta la connessione tra il client di posta elettronica e il server di posta.
API SMTP vs. HTTP
SMTP è stato utilizzato dal 1982 e rimane il protocollo di posta elettronica più comune per inviare un messaggio di posta elettronica. Tuttavia, negli ultimi anni, si è sviluppata una tendenza all’utilizzo di interfacce di programmazione delle applicazioni HTTP (API) basate su cloud per inviare e ricevere e-mail.
Le API HTTP offrono diversi vantaggi. Innanzitutto, la comunicazione tra client e server di posta elettronica, ad esempio quando si utilizzano app mobili, è più veloce di SMTP perché le API HTTP richiedono meno comandi avanti e indietro per autenticare il mittente e il destinatario.
Inoltre, le API offrono funzionalità che non sono disponibili con SMTP. Ad esempio, le API includono funzionalità HTTP integrate per passare parametri e per scopi di autenticazione. Inoltre, le e-mail transazionali, come le conferme di acquisto o le e-mail, possono essere inviate automaticamente e in risposta a trigger specifici senza la necessità di messa in coda.
Infine, le API fornite da terze parti riducono al minimo il carico sui server di posta elettronica. Sono anche facili da integrare, riducendo l’onere della manutenzione sui provider di posta elettronica e riducendo la complessità delle app di posta elettronica.
Alcune API SMTP possono anche fare quanto segue:
- Indicare errori con codici di risposta HTTP standard.
- Segnalare dati di eventi associati a e-mail specifiche, come aperture, clic e rapporti clic-apertura. Librerie di richiesta di supporto in più linguaggi di
- programmazione per facilitare l’uso da parte degli sviluppatori.
Sistemi basati su SMTP e Unix
Sui sistemi basati su Unix, Sendmail rimane uno dei server di posta SMTP più ampiamente utilizzati. Oltre ad accettare messaggi di posta elettronica in uscita e inviarli ai destinatari definiti, Sendmail è in grado di mettere in coda i messaggi se un destinatario non è immediatamente disponibile. Offre anche l’autenticazione per prevenire, o almeno ridurre al minimo, lo spam e può essere utilizzato con Secure Sockets Layer, o SSL, per proteggere i messaggi di posta elettronica dagli attacchi man-in-the-middle.
Sendmail fornisce il trasporto di posta elettronica dietro le quinte. Viene in genere utilizzato per recapitare messaggi preformattati, il che significa che è richiesta un’interfaccia o un front-end separato e intuitivo.
Server SMTP interni vs. servizi di terze parti
I server SMTP possono essere configurati internamente o come servizio di terze parti.
I server SMTP interni vengono eseguiti in modo indipendente, mentre un provider esegue server SMTP di terze parti. I fornitori di SMTP di terze parti si occupano di tutto, dalla manutenzione e dal monitoraggio dei server di posta elettronica alla sicurezza. Ciò significa che gli utenti non hanno bisogno di competenze o budget per gestire e mantenere il proprio server interno. Tuttavia, gli utenti devono comunque preoccuparsi dei tempi di inattività causati da interruzioni o da eventuali termini e condizioni aggiuntivi.
I server SMTP interni non sono limitati all’invio di un numero specifico di e-mail al giorno, come potrebbero essere alcuni provider terzi. Tuttavia, gli utenti devono avere le conoscenze tecniche e il budget per gestire, gestire e monitorare il server. Inoltre, gli utenti sono responsabili dell’implementazione della propria sicurezza. Ciò potrebbe includere la selezione di protocolli di posta elettronica sicuri, l’aggiornamento del firmware del server o l’utilizzo di firewall per server di posta elettronica.
Provider SMTP
Esempi di provider di servizi SMTP includono quanto segue:
- Amazon Simple Email Service. Amazon SES è un servizio SMTP basato su cloud che consente a venditori e sviluppatori di inviare automaticamente campagne e-mail e newsletter di marketing e transazionali mirate. Fornisce un’interfaccia SMTP e un’API e i messaggi possono essere inviati da qualsiasi applicazione. SES fornisce anche statistiche sui mittenti e strumenti di recapito delle e-mail, oltre a funzionalità di gestione IP per aiutare i mittenti ad aumentare la propria affidabilità e raggiungere più caselle di posta degli utenti.
- Brevo. Questo servizio SMTP, precedentemente chiamato Sendinblue, supporta e-mail transazionali e marketing e-mail di massa con la sua infrastruttura dedicata e risorse tecniche, inclusi plugin SMTP e un’API e-mail transazionale gratuita. Il suo server SMTP dedicato supporta invii di e-mail ad alto volume e test e-mail gratuiti. Con questo servizio, i marketer possono inviare fino a 300 e-mail al giorno gratuitamente.
- SendGrid. Questa piattaforma e-mail SMTP basata su cloud è adatta per le aziende che desiderano inviare e-mail transazionali e di marketing su larga scala. SendGrid fornisce anche numerose funzionalità di recapito e-mail SendGrid fornisce numerosi strumenti e modelli di recapito delle Email per semplificare il processo di invio delle email, insieme ad analisi delle email e integrazione fluida con altre app e piattaforme tramite un’API.
- SendLayer. Questo provider di email transazionale offre un’API e un relay SMTP per massimizzare l’affidabilità e il recapito di molti tipi di messaggi email, tra cui email transazionali, email di conferma e notifiche di spedizione. Il servizio include analisi di apertura e clic, supporto per credenziali SMTP e API e registri email dettagliati per tracciare email inviate e respinte.
I modelli di prezzo per questi servizi variano a seconda del fornitore, poiché alcuni offrono un prezzo mensile per un numero specifico di email che gli utenti possono inviare, mentre altri fornitori offrono piani a pagamento al mese o modelli pay-as-you-go. Potrebbero essere disponibili anche versioni gratuite di ogni strumento SMTP, ma sono normalmente limitate dal numero di email che gli utenti possono inviare.