Vai al contenuto

Come funziona la verifica delle email

Verificaemail.com risponde a una sola domanda: questo indirizzo email esiste? Lo fa senza scrivere al destinatario. Chiede al server di posta del suo dominio se accetterebbe un messaggio per quell’indirizzo e interrompe la conversazione prima di inviarlo. Questa guida spiega ogni passaggio, come leggere ogni esito e perché nessun verificatore, il nostro compreso, è esatto al 100%.

Aggiornata il .

Vuoi solo controllare un indirizzo?

Verifica un indirizzo

Come avviene la verifica

Sono quattro passaggi. I primi due non toccano nessun server di posta; il terzo sì, ma non invia nulla.

  1. La sintassi. Controlliamo che l’indirizzo sia scritto come «nome@dominio.ext». È un controllo locale: nessuno viene contattato.
  2. Il dominio e i record MX. Chiediamo al DNS i record MX del dominio, la parte dopo la @. Elencano i server di posta che ne ricevono i messaggi, ciascuno con una preferenza: si prova prima il numero più basso. Se il dominio non ne ha, non c’è un server a cui chiedere e l’indirizzo non supera il controllo (cos’è un record MX).
  3. Il dialogo SMTP. Ci colleghiamo a uno dei server MX, sulla porta 25 (quella con cui i server di posta si parlano tra loro), e iniziamo una normale conversazione SMTP: ci presentiamo (EHLO), indichiamo il mittente del messaggio (MAIL FROM) e il destinatario da verificare (RCPT TO).
  4. La risposta e la chiusura. A RCPT TO il server risponde con un codice a tre cifre: lo leggiamo e chiudiamo la conversazione. Non arriviamo mai a DATA, il comando che trasmette il contenuto di un messaggio: all’indirizzo non arriva nulla.
S: 220 mail.example.com ESMTPC: EHLO verifica.example.netS: 250 mail.example.comC: MAIL FROM:<mittente@example.net>S: 250 OKC: RCPT TO:<mario.rossi@example.com>S: 250 OKC: QUITS: 221 Bye
Schema di una conversazione SMTP: C è il client (il server che verifica), S il server di posta dell’indirizzo. Indirizzi e server sono di esempio, non è un log reale.

I codici di risposta seguono una regola semplice, fissata dallo standard (RFC 5321): quelli che iniziano per 2 dicono che il server ha accettato, per 4 che ha rifiutato per ora (errore temporaneo), per 5 che ha rifiutato in modo definitivo. I server aggiungono spesso un codice più preciso a tre numeri, come 5.1.1 (RFC 3463).

Come leggere ogni esito

Lo strumento mostra un esito e, sotto, la risposta del server riga per riga. Questi sono gli esiti possibili.

Gli esiti dello strumento e il loro significato
Esito Cosa significa
Valida Il server ha accettato l’indirizzo come destinatario.
Non valida L’indirizzo è scritto male, il dominio non ha un server di posta oppure il server ha rifiutato il destinatario.
Non verificabile Il server non ha dato una risposta utile: non sappiamo se la casella esista.
Catch-all Il server accetta qualsiasi indirizzo del dominio: la sua risposta non dice nulla sulla casella.

Valida

Il server ha risposto a RCPT TO con un codice che inizia per 2, di solito 250: accetta il destinatario. È l’esito che cerchi, ma va letto per quello che è. Al momento della verifica il server era disposto a ricevere posta per quell’indirizzo. Non dice se la persona leggerà il messaggio, né se un filtro anti-spam lo fermerà.

Non valida

Le cause sono tre: l’indirizzo è scritto male, il dominio non ha un server di posta (nessun record MX) oppure il server rifiuta il destinatario con un codice che inizia per 5. Il codice tipico è 550 5.1.1: lo standard lo descrive come «bad destination mailbox address», cioè la casella indicata non esiste.

C: RCPT TO:<non.esiste@example.com>S: 550 5.1.1 User unknown
Esempio generico di rifiuto: il testo dopo il codice cambia da server a server.

È un errore permanente: scrivere a quell’indirizzo produrrebbe un hard bounce, quindi conviene toglierlo dalla lista.

Non verificabile

È la risposta onesta quando il server non permette di concludere: non risponde, chiude la connessione, chiede di riprovare più tardi (codici che iniziano per 4) oppure rifiuta le richieste di chi verifica gli indirizzi. In questi casi non diciamo che l’indirizzo non esiste, perché non lo sappiamo.

L’esito non viene memorizzato: riprova dopo qualche minuto. Ogni tentativo conta nel limite giornaliero.

Catch-all

Un server catch-all accetta i messaggi per qualsiasi indirizzo del suo dominio, anche inventato, e decide dopo che farne: smistarli in una casella, scartarli, rimbalzarli più tardi. Spesso è una scelta di chi gestisce il dominio, per non perdere i messaggi scritti con un errore di battitura.

Per un verificatore è un vicolo cieco: il codice 250 arriva comunque, quindi non dice nulla sulla casella. Un verificatore se ne accorge chiedendo anche di un indirizzo che non può esistere: se il server lo accetta, accetta tutto. In quel caso lo strumento risponde che l’indirizzo potrebbe essere valido. Se devi scrivere a una lista, tratta questi indirizzi come incerti: invia con prudenza e controlla i rimbalzi. Nella verifica massiva sono segnalati e non si pagano. La definizione nel glossario.

Greylisting

È una difesa anti-spam: il server rifiuta temporaneamente (codice 4) il primo contatto da un mittente che non conosce e accetta quelli successivi. I server di posta legittimi riprovano da soli dopo un po’; molti programmi di spam no (RFC 6647).

Per chi verifica un indirizzo il risultato è un errore temporaneo a RCPT TO, che non dice nulla sulla casella: lo strumento lo mostra come non verificabile. Riprovando dopo qualche minuto l’esito a volte cambia.

Casella piena

Se la casella ha superato la quota, il server può rifiutare il destinatario con un errore di casella piena. Lo standard lo chiama X.2.2, «mailbox full», e lo tratta come un errore temporaneo (4.2.2); alcuni provider lo rispondono anche come definitivo (5.2.2). La casella esiste, ma in questo momento non può ricevere altri messaggi.

Per vedere cosa ha risposto davvero il server leggi il riquadro «Risposta del server» sotto l’esito: il codice è lì.

Server che rifiutano le verifiche

Alcuni server non vogliono essere interrogati sui propri indirizzi: rispondono con un rifiuto generico, chiudono la connessione o non rispondono, magari perché considerano sospetto chi controlla molti indirizzi. Il comando VRFY, nato per chiedere a un server se un indirizzo esiste, può essere disattivato per motivi di sicurezza (lo prevede lo standard, RFC 5321, sezione 7.3): la verifica si basa quindi su RCPT TO.

Per te l’esito è «non verificabile». L’unico modo di sapere se la casella esiste è scriverle.

Perché nessun verificatore è esatto al 100%

Un verificatore non legge le caselle degli altri: vede solo ciò che il server del destinatario decide di rispondere. Per questo:

  • Un server può rispondere «sì» a tutto. Succede con i server catch-all; altri accettano il destinatario e decidono solo dopo aver ricevuto il messaggio se consegnarlo o rimbalzarlo. Da RCPT TO non si vede.
  • Un «no» temporaneo non è un «no». Il greylisting e i limiti di velocità rispondono con un errore temporaneo che non riguarda la casella.
  • Alcuni server non rispondono a chi verifica. Rifiutano, chiudono la connessione o tacciono: lo diciamo, invece di indovinare.
  • La casella cambia. Un indirizzo valido oggi può essere chiuso, pieno o abbandonato domani. Lo strumento tiene il risultato in memoria per 30 minuti; dopo la verifica riparte da zero.
  • Valida non vuol dire letta. L’esito riguarda l’esistenza della casella, non il fatto che il messaggio arrivi nella posta in arrivo: dipende anche dai filtri anti-spam e dall’autenticazione del mittente (SPF, DKIM, DMARC).

Per questo distinguiamo gli esiti certi (valida, non valida) da quelli incerti (non verificabile, catch-all) e non promettiamo una percentuale di precisione: dipende dai domini della tua lista, perché i server si comportano in modo diverso.

L’indirizzo che verifichi non viene salvato: i dettagli sono nelle domande frequenti e nell’informativa privacy. Hai una lista intera? La verifica massiva è in arrivo.

Fonti

Verifica subito un indirizzo email

Il tool è gratuito, il risultato arriva in tempo reale e l’indirizzo non viene salvato.