La configurazione SMTP è il processo di impostazione del tuo server di posta (o client email) per inviare messaggi correttamente utilizzando il Simple Mail Transfer Protocol. Se fatto bene, le tue email arrivano nelle caselle di posta. Se fatto male, dovrai affrontare errori di consegna, problemi di autenticazione o messaggi che finiscono silenziosamente nella cartella spam. Tre cose fondamentali che devi sempre configurare correttamente sono la porta giusta, il metodo di crittografia corretto e le credenziali di autenticazione funzionanti.
Indice dei contenuti
- Come funziona davvero SMTP
- Le porte SMTP spiegate: 25, 465 e 587
- Porta 25 vs 587: Quale dovresti usare?
- Porta SMTP 465: La porta SSL legacy
- Autenticazione SMTP: Come funziona
- Configurazione del server email passo dopo passo
- Impostazioni SMTP comuni per i provider più diffusi
- Risoluzione dei problemi di connessione SMTP
Come funziona davvero SMTP
SMTP è il protocollo che il tuo client email o applicazione utilizza per consegnare i messaggi in uscita a un server di posta, che poi li instrada verso il destinatario. Gestisce solo il lato dell'invio. La ricezione della posta è gestita da protocolli separati: IMAP (per la sincronizzazione) o POP3 (per il download).
Quando fai clic su "Invia", il tuo client apre una connessione TCP al server SMTP, si autentica, consegna il messaggio e si disconnette. Il server quindi tenta di consegnare quel messaggio al server di posta del destinatario utilizzando lo stesso protocollo, cercando il record DNS MX (Mail Exchange) della destinazione per scoprire dove inviarlo.
SMTP è definito in RFC 5321 , che ha sostituito l'originale RFC 2821. Comprendere le specifiche aiuta quando devi eseguire il debug di conversazioni SMTP grezze o configurare un server da zero.
Le porte SMTP spiegate: 25, 465 e 587
Ci sono tre porte che incontrerai in qualsiasi configurazione SMTP. Ognuna ha un ruolo specifico, e usare quella sbagliata è una delle cause più comuni di errori di consegna della posta.
| Porta | Nome | Crittografia | Uso tipico |
|---|---|---|---|
| 25 | SMTP | Nessuna (o STARTTLS) | Relay server-to-server (MTA to MTA) |
| 465 | SMTPS | SSL/TLS implicito | Invio client legacy (app più vecchie) |
| 587 | Submission | STARTTLS (TLS esplicito) | Invio email client autenticato |
Porta 25 vs 587: Quale dovresti usare?
La porta 25 è la porta SMTP originale, definita nel 1982. È stata progettata per i server di posta che comunicano tra loro, non per gli utenti finali che inviano messaggi. La maggior parte degli ISP e dei provider cloud blocca la porta 25 in uscita dagli IP residenziali e dell'hosting condiviso specificamente per prevenire lo spam. Se stai eseguendo un'applicazione che invia email, provare a usare la porta 25 quasi certamente fallirà.
La porta 587 è la scelta giusta per inviare email da un client o da un'applicazione. È stata standardizzata in RFC 6409 come la porta dedicata "message submission". Richiede STARTTLS, il che significa che la connessione inizia non crittografata e poi si aggiorna a TLS prima che vengano inviate le credenziali. Questo è quello che Gmail, Outlook e praticamente tutti i moderni provider di posta si aspettano che tu usi.
Porta SMTP 465: La porta SSL legacy
La porta 465 ha una storia insolita. È stata brevemente assegnata a SMTPS (SMTP over SSL) nel 1997, quindi quell'assegnazione è stata revocata nel 1998 quando STARTTLS sulla porta 587 è diventato l'approccio preferito. Nonostante sia ufficialmente deprecata, molti server di posta hanno continuato a supportarla, ed è stata successivamente re-registrata dall'IANA per uno scopo diverso.
In pratica, la maggior parte dei provider accetta ancora le connessioni sulla porta 465 utilizzando SSL/TLS implicito. Ciò significa che TLS avvolge l'intera connessione dal primo byte, piuttosto che aggiornarsi a metà handshake come STARTTLS. Alcune applicazioni più vecchie e hardware (certi stampanti di rete, CRM legacy) supportano solo la porta 465, quindi rimane utile in quei casi.
- Usa la porta 465 se la tua applicazione o dispositivo richiede specificamente SSL implicito e non può fare STARTTLS.
- Usa la porta 587 per tutto il resto. È lo standard moderno.
- Evita completamente la porta 25 per l'invio del client.
Autenticazione SMTP: Come funziona
L'autenticazione SMTP (spesso scritta come SMTP AUTH) è definita in RFC 4954 . Richiede al client di provare la sua identità prima che il server accetti la posta in uscita. Senza di essa, chiunque potesse raggiungere il tuo server potrebbe usarlo per inviare spam, motivo per cui i relay aperti sono considerati un grave problema di sicurezza.
I meccanismi di autenticazione più comuni che vedrai nella configurazione SMTP sono:
- PLAIN: Invia il nome utente e la password codificati in base64. Sicuro solo su una connessione crittografata (TLS deve essere attivo prima).
- LOGIN: Simile a PLAIN ma invia nome utente e password come scambi separati. Richiede anche TLS.
- CRAM-MD5: Un meccanismo challenge-response che evita di inviare la password direttamente. Meno comune sui server moderni.
- XOAUTH2: Utilizzato da Gmail e altri account Google Workspace. Invece di una password, fornisci un token di accesso OAuth 2.0. Questo è quello di cui hai bisogno quando l'accesso alle app meno sicure è disabilitato.
Configurazione del server email passo dopo passo
Che tu stia configurando un client email come Thunderbird, un'app web che invia email transazionali o un server di posta self-hosted, il processo segue la stessa sequenza logica.
Per client email e applicazioni
-
Ottieni il nome host SMTP dal tuo provider.
Esempi:
smtp.gmail.com,smtp.office365.com,mail.yourdomain.com. - Scegli la porta giusta. Usa 587 con STARTTLS come predefinito. Torna a 465 con SSL solo se la tua app lo richiede.
- Inserisci le tue credenziali di autenticazione. Di solito è il tuo indirizzo email completo come nome utente più la tua password o password dell'app.
- Imposta il metodo di crittografia. Abbinalo alla porta: STARTTLS per 587, SSL/TLS per 465.
- Testa la connessione. La maggior parte dei client email ha un pulsante "Testa impostazioni account" o "Verifica". Usalo prima di salvare.
Per un server di posta self-hosted (esempio Postfix)
Se stai eseguendo il tuo server con Postfix, la configurazione SMTP principale si trova in
/etc/postfix/main.cf
. Ecco un esempio minimo funzionante per un server che fa relay tramite un provider SMTP di terze parti:
# /etc/postfix/main.cf - Basic relay configuration
relayhost = [smtp.sendgrid.net]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_use_tls = yes
Dopo la modifica, crea
/etc/postfix/sasl_passwd
con le tue credenziali, esegui
postmap /etc/postfix/sasl_passwd
per hasharlo, poi ricarica Postfix con
systemctl reload postfix
.
chmod 600 /etc/postfix/sasl_passwd
e
chmod 600 /etc/postfix/sasl_passwd.db
dopo aver creato il file. I file di credenziali leggibili sono una configurazione server comune sbagliata.
Impostazioni SMTP comuni per i provider più diffusi
| Provider | Host SMTP | Porta | Crittografia | Nota autenticazione |
|---|---|---|---|---|
| Gmail | smtp.gmail.com | 587 | STARTTLS | Usa password dell'app o OAuth2 |
| Gmail (alt) | smtp.gmail.com | 465 | SSL/TLS | Usa password dell'app o OAuth2 |
| Microsoft 365 | smtp.office365.com | 587 | STARTTLS | Modern Auth / password dell'app |
| Yahoo Mail | smtp.mail.yahoo.com | 465 | SSL/TLS | Password dell'app richiesta |
| Zoho Mail | smtp.zoho.com | 587 | STARTTLS | Email completa come nome utente |
| Amazon SES | email-smtp.us-east-1.amazonaws.com | 587 | STARTTLS | Credenziali SMTP IAM |
Risoluzione dei problemi di connessione SMTP
La maggior parte degli errori SMTP rientra in un piccolo numero di categorie. Prima di scavare nei log, controlla se la porta è effettivamente raggiungibile dal tuo server o dalla tua rete. Un firewall o un blocco dell'ISP è spesso il colpevole, e puoi confermarlo rapidamente senza alcun strumento speciale.
Puoi verificare se una porta SMTP è aperta sul tuo server di posta utilizzando un verificatore di porte online gratuito. Inserisci il nome host o l'IP del tuo server di posta, seleziona la porta 25, 465 o 587 ed esegui il test. Se il risultato torna come chiuso o timeout, il problema è a livello di rete (firewall, blocco dell'ISP o il servizio non è in esecuzione) piuttosto che un errore di configurazione all'interno della tua app.
Messaggi di errore comuni e cosa significano
- Connessione rifiutata / Connessione scaduta: La porta è bloccata o il servizio non è in ascolto. Controlla le regole del firewall e conferma che il daemon SMTP è in esecuzione.
- 535 Autenticazione fallita: Nome utente o password sbagliati. Per Gmail, questo di solito significa che hai bisogno di una password dell'app, non della password del tuo account.
- 550 5.7.1 Relay access denied: Il tuo server non è configurato per fare relay della posta per quell'indirizzo mittente, o l'autenticazione non è avvenuta prima del comando MAIL FROM.
- 421 Troppe connessioni: Il server ricevente ti sta limitando. Riduci la frequenza di invio o implementa una coda con ritardi.
- Handshake TLS fallito: Mancata corrispondenza del certificato o versione TLS obsoleta. Controlla che il certificato SSL del tuo server sia valido e che non stai cercando di usare TLS 1.0 o 1.1, che la maggior parte dei provider ha disabilitato.
Checklist diagnostica rapida
- Conferma che la porta SMTP è aperta e raggiungibile dal tuo ambiente di invio.
-
Verifica che il nome host si risolva correttamente con
nslookup smtp.yourdomain.com. - Controlla che il tuo IP di invio non sia su una lista di blocco utilizzando uno strumento come MXToolbox Blacklist Check .
- Conferma che i tuoi record DNS SPF, DKIM e DMARC siano pubblicati correttamente. Record mancanti o non funzionanti causano il rifiuto o la spamming della posta legittima.
-
Rivedi i log del tuo server di posta. Per Postfix, controlla
/var/log/mail.log. I codici di risposta SMTP effettivi nel log ti dicono esattamente cosa il server remoto ha rifiutato e perché.
La tua porta SMTP è effettivamente aperta?
Prima di incolpare la tua configurazione SMTP, conferma che il problema non sia una porta bloccata. Il nostro verificatore di porte gratuito ti consente di testare la porta 25, 465 o 587 su qualsiasi server di posta istantaneamente, quindi sai se stai affrontando un problema di firewall o un errore di configurazione.
Controlla la tua porta SMTP adesso →
La porta 465 utilizza SSL/TLS implicito, il che significa che l'intera connessione è crittografata dall'inizio. La porta 587 utilizza STARTTLS, che inizia come una connessione semplice e poi si aggiorna a TLS prima di inviare le credenziali. Entrambe sono sicure se configurate correttamente, ma la porta 587 è lo standard moderno consigliato per l'invio di email da client. Usa 465 solo se la tua applicazione richiede specificamente SSL implicito e non può supportare STARTTLS.
La porta 25 è bloccata sulla maggior parte delle reti residenziali e di hosting condiviso perché è stata storicamente utilizzata per inviare spam direttamente da macchine compromesse. Bloccando la porta 25 in uscita, gli ISP e i provider cloud (incluso AWS EC2 per impostazione predefinita) impediscono che i loro intervalli di IP siano utilizzati come fonti di spam. Per inviare email da applicazioni, usa la porta 587. Se stai eseguendo un server di posta legittimo che ha bisogno della porta 25 aperta per il relay server-to-server, di solito devi richiedere al tuo provider di rimuovere il blocco.
Nella maggior parte dei casi, il tuo nome utente SMTP è il tuo indirizzo email completo, ad esempio
you@yourdomain.com
. Alcuni sistemi più vecchi usano solo la parte locale prima del simbolo @. Per servizi come Amazon SES, il nome utente è una credenziale SMTP generata separatamente da IAM, non il tuo indirizzo email. Controlla sempre la documentazione per il tuo provider specifico. Quando usi Gmail o Outlook con l'autenticazione a due fattori abilitata, dovrai generare una password specifica dell'app piuttosto che usare la password del tuo account regolare.
Puoi testare a più livelli. Per prima cosa, controlla che la porta SMTP sia raggiungibile utilizzando uno strumento verificatore di porte o eseguendo
telnet smtp.yourdomain.com 587
dal tuo server. Se la porta è aperta, puoi testare l'intero handshake SMTP utilizzando
openssl s_client -starttls smtp -connect smtp.yourdomain.com:587
, che mostra il certificato TLS e ti consente di digitare comandi SMTP grezzi. Per un test end-to-end completo senza consegnare a una casella di posta reale, usa un servizio come Mailtrap, che accetta connessioni SMTP e ti mostra il messaggio senza inoltarlo.
L'autenticazione SMTP riuscita dimostra solo che sei autorizzato a usare il server. Il filtro spam avviene separatamente all'estremità ricevente ed è basato su una combinazione di fattori: se il tuo IP di invio è su una lista di blocco, se il tuo record SPF autorizza quell'IP a inviare per il tuo dominio, se la tua firma DKIM è valida e corrisponde al tuo record DNS, e se la tua politica DMARC è pubblicata. Un record SPF mancante o non funzionante da solo è sufficiente per far sì che Gmail o Outlook mettano i tuoi messaggi nella spazzatura. Controlla tutti e tre i record DNS e verifica la reputazione del tuo IP di invio.
Sì, ma con limitazioni. Il server SMTP di Gmail (
smtp.gmail.com
sulla porta 587) invierà la posta autenticata come il tuo account Gmail. Se vuoi che l'indirizzo "Da" mostri il tuo dominio personalizzato, devi aggiungere quell'indirizzo nelle impostazioni di Gmail in "Invia posta come" e verificare la proprietà. Tuttavia, Gmail aggiunge un'annotazione "inviato via gmail.com" visibile in alcuni client email. Per una configurazione più pulita con il tuo dominio, usare un provider di email transazionale come Amazon SES o un relay SMTP dedicato è una scelta migliore a lungo termine.