Email e domini
Verifica indirizzo email
Copertura: Funziona con indirizzi di qualsiasi paese, anche con domini accentati o in altri alfabeti. I domini usa e getta provengono da un elenco aperto con migliaia di servizi di email usa e getta; i domini di posta gratuita includono i grandi provider internazionali e nazionali.
Apri lo strumentoIn questa pagina
A cosa serve
Controlla un indirizzo email senza scrivergli: la sintassi, se il dominio esiste e riceve email e se è usa e getta, generico o di posta gratuita.
Requisiti
Chiunque può leggere queste guide, senza account. Alcuni strumenti richiedono Pro, come indicato in ogni guida.
Prima di scrivere a un indirizzo o di fidarti, controllalo qui. Guardiamo come è scritto e il suo dominio: se esiste, se riceve email e che tipo di indirizzo è. Non possiamo sapere se la casella in sé esiste, perché non contattiamo mai il suo server di posta, e non salviamo l’indirizzo.
Come usarlo
Scrivi o incolla l’indirizzo email che vuoi controllare.
Premi «Controlla l’indirizzo». Verifichiamo come è scritto e cerchiamo il suo dominio nel DNS pubblico.
Leggi il risultato e i segnali. Se ti suggeriamo un altro dominio (per esempio gmail.com invece di gmial.com), conferma l’indirizzo con chi te l’ha dato.
Esempio inventato
Esempio inventato, non una ricerca reale. Non chiamare e non aprire i suoi link.
Interpretare il risultato
Questo indirizzo email non è valido: Non ha la forma di un indirizzo: manca la @ o il dominio, oppure contiene caratteri che un indirizzo non può usare.
Il dominio di questo indirizzo non esiste: Nessuno può ricevere email su questo dominio. Se qualcuno ti ha dato questo indirizzo, potrebbe averlo scritto male.
Il dominio non riceve email: Esiste, ma non ha server di posta o dichiara di non accettare email. Un messaggio a questo indirizzo non arriverà.
Il dominio riceve email: L’indirizzo è scritto bene e il suo dominio ha dei server di posta. Non possiamo confermare che questa casella specifica esista, solo che il dominio può ricevere email.
L’indirizzo non è scritto come deve esserlo un indirizzo email.
Il dominio non esiste nel DNS.
Il dominio dichiara di non ricevere alcuna email («null MX»).
Il dominio non ha server di posta.
Il dominio non ha record MX, quindi la posta va al suo stesso indirizzo. Funziona, ma è insolito.
È un servizio di email usa e getta: questi indirizzi durano minuti od ore e si usano spesso per registrarsi senza dare un indirizzo reale.
È un indirizzo generico (info@, support@, noreply@…) che appartiene a un team o a un servizio, non a una persona.
È un servizio di posta gratuito (Gmail, Outlook, Yahoo…). Chiunque può aprire un account, quindi di solito una banca o un’azienda non ti scrivono da lì.
Il dominio somiglia molto a quello di un provider noto, quindi l’indirizzo potrebbe essere scritto male.
Limiti
Non controlliamo se questa casella specifica esiste: bisognerebbe contattare il suo server di posta, e non lo facciamo mai. L’indirizzo non viene salvato.
L’indirizzo viene inviato al server di NoCall solo per cercare il suo dominio nel DNS pubblico e non viene salvato. Non contattiamo mai il suo server di posta.
Risoluzione dei problemi
Non sembra un indirizzo email. Controlla che contenga una @ e un dominio.
Il DNS non ha risposto in tempo. Riprova tra qualche secondo.
Hai fatto molti controlli di fila. Aspetta un minuto e riprova.
Usare con l’API
Richiede una API key e dei crediti. Ogni chiamata completata costa 1 credito, anche quando non ci sono dati. Un account Pro attivo include 20 crediti per mese solare UTC, condivisi da tutte le rotte API e consumati per primi; i crediti mensili non usati non passano al mese successivo. I crediti acquistati nella pagina del tuo account funzionano senza Pro e non scadono mai.
Gli errori non vengono mai addebitati: 401 invalid_api_key (chiave mancante o non valida), 403 pro_required (nessun credito Pro e nessun credito acquistato), 422 input non valido, 429 quota_exceeded (crediti esauriti), rate_limit_exceeded o ai_busy (l’IA di sms-check è al limite della capacità), 503 tool_warming (i dati sono ancora in preparazione) o tool o provider non disponibile. Dopo un 429 o un 503, riprova quando sono trascorsi i secondi indicati nell’intestazione Retry-After.
Ciò che si può sapere di un indirizzo email senza contattare il suo server di posta: la sintassi, se il dominio esiste e riceve email, il suo provider e se è un indirizzo usa e getta, generico o di posta gratuita, con un suggerimento per un dominio di provider scritto male. La casella in sé non viene verificata e l’indirizzo non viene mai salvato né restituito.
Invia il corpo JSON alla rotta specifica del tool, oppure a POST /v2/tools aggiungendo il campo tool. Entrambe le rotte restituiscono lo stesso risultato.
POST https://api.nocall.io/v2/email-verify
POST https://api.nocall.io/v2/tools {"tool":"email-verify","email":"[email protected]"}Parametri
| Nome | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| string (3–320) | Sì | L’indirizzo da controllare, fino a 320 caratteri. Si consulta solo il suo dominio; l’indirizzo non viene mai salvato né restituito. |
REQUEST_ID="$(uuidgen)" && [ -n "$REQUEST_ID" ] &&
curl --request POST 'https://api.nocall.io/v2/email-verify' \
--header "Authorization: Bearer $NOCALL_API_KEY" \
--header 'Content-Type: application/json' \
--header "Idempotency-Key: $REQUEST_ID" \
--data '{"email":"[email protected]"}'import json
import os
import urllib.request
import uuid
api_key = os.environ.get('NOCALL_API_KEY')
if not api_key:
raise SystemExit('Set NOCALL_API_KEY')
request = urllib.request.Request(
'https://api.nocall.io/v2/email-verify',
method='POST',
data=json.dumps({'email': '[email protected]'}).encode(),
headers={
'Authorization': 'Bearer ' + api_key,
'Content-Type': 'application/json',
'Idempotency-Key': str(uuid.uuid4()),
},
)
with urllib.request.urlopen(request, timeout=30) as response:
result = json.load(response)
print(result['data']['result'], result['meta']['unitsCharged'])import { randomUUID } from 'node:crypto';
const requestId = randomUUID();
const apiKey = process.env.NOCALL_API_KEY;
if (!apiKey) throw new Error('Set NOCALL_API_KEY');
const response = await fetch('https://api.nocall.io/v2/email-verify', {
method: 'POST',
headers: {
Authorization: 'Bearer ' + apiKey,
'Content-Type': 'application/json',
'Idempotency-Key': requestId,
},
body: JSON.stringify({ email: '[email protected]' }),
});
const result = await response.json();
if (!response.ok) throw new Error(result.error?.code ?? 'request_failed');
console.log(result.data.result, result.meta.unitsCharged);Esempio di risposta (200)
Questo è l’esempio documentato nel riferimento API. Le ricerche usano un numero fittizio, mentre aggregati e risposte dell’IA mostrano la struttura del risultato, non dati reali.
{
"data": {
"tool": "email-verify",
"result": {
"domain": "outlok.com",
"domainAscii": "outlok.com",
"status": "domain_not_found",
"syntaxValid": true,
"acceptsMail": false,
"mx": {
"count": 0,
"provider": null,
"implicit": false,
"nullMx": false
},
"disposable": false,
"role": false,
"freeMail": false,
"suggestion": "outlook.com",
"signals": [
"domain_not_found",
"typo_domain"
],
"attention": true
}
},
"meta": {
"requestId": "req_example",
"unitsCharged": 1,
"usage": {
"periodStart": "2026-10-01",
"unitLimit": 20,
"unitsUsed": 3,
"unitsRemaining": 17
}
}
}Campi del risultato (data.result)
| Campo | Tipo | Descrizione |
|---|---|---|
| domain | string | null | Il dominio dell’indirizzo in Unicode; null se l’indirizzo non si può analizzare. |
| domainAscii | string | null | Lo stesso dominio in ASCII (punycode), oppure null. |
| status | "invalid" | "domain_not_found" | "no_mail" | "accepts_mail" | invalid, domain_not_found, no_mail o accepts_mail. accepts_mail significa che il dominio riceve email, non che questa casella esista. |
| syntaxValid | boolean | Se l’indirizzo è scritto come deve esserlo un indirizzo. |
| acceptsMail | boolean | Se il dominio riceve email. |
| mx | object | L’MX del dominio: count, provider, implicit (nessun MX, la posta va al suo indirizzo) e nullMx. |
| disposable | boolean | Se il dominio (o un dominio padre) è nell’elenco aperto dei servizi di email usa e getta. |
| role | boolean | Se è una casella generica (info@, support@, noreply@…), non di una persona. |
| freeMail | boolean | Se il dominio è un provider gratuito di posta personale (gmail.com, outlook.com…). |
| suggestion | string | null | Il dominio del provider a cui probabilmente si voleva scrivere (gmial.com → gmail.com), oppure null. |
| signals | array<string (enum, 9)> | syntax_error, domain_not_found, null_mx, no_mx, implicit_mx, disposable_domain, role_address, free_mail o typo_domain. |
| attention | boolean | Se il risultato merita un controllo: il dominio non riceve email, oppure l’indirizzo è usa e getta o probabilmente scritto male. |
Domande frequenti
Si può sapere se la casella esiste?
No, e nessun servizio può farlo in modo affidabile: l’unico modo è chiedere al server di posta del dominio, molti server rispondono di sì a qualsiasi indirizzo e le verifiche ripetute finiscono per essere bloccate. Controlliamo tutto quello che si può sapere senza contattarlo.
Che cos’è un indirizzo usa e getta?
Una casella che funziona per minuti od ore e che si usa per registrarsi da qualche parte senza dare un indirizzo reale. Se un cliente o un contatto te ne dà uno, più avanti non potrai raggiungerlo.
Che cos’è un indirizzo generico?
Un indirizzo che appartiene a una funzione e non a una persona: info@, support@, sales@, noreply@. Possono leggerlo molte persone, o nessuno nel caso di noreply@.
L’indirizzo che controllo viene salvato?
No. Viene usato una sola volta per cercare il suo dominio nel DNS e non viene salvato da nessuna parte. Registriamo solo che è stato fatto un controllo e il tipo di risultato (per esempio «il dominio riceve email»), senza l’indirizzo.
