Torna al blog
Sicurezza

Lista dei domini email usa e getta: come bloccarli

Josselin Liebe
Josselin Liebe

Quando un prodotto offre un piano gratuito, le registrazioni false seguono. La maggior parte dei team nota il problema solo quando il tasso di rimbalzo delle email aumenta, la conversione da prova a pagamento cala senza spiegazione, o i crediti referral vengono abusati. A quel punto, il danno è già fatto.

Abbiamo lavorato con un'azienda B2B SaaS che gestisce un prodotto freemium. Avevano un flusso di onboarding ben costruito, buone email di attivazione e una sequenza drip strutturata. Nulla funzionava come previsto. Quando abbiamo esaminato i dati di registrazione insieme, quasi uno su otto nuovi account era stato creato con un indirizzo email usa e getta. Dopo aver aggiunto il rilevamento delle email usa e getta alla registrazione usando l'API di Veille, le registrazioni false sono calate di oltre il 10% nel primo mese. Le metriche di conversione sono tornate significative. I dati sulle prestazioni email hanno finalmente riflesso la realtà.

Questa guida spiega come costruire quel livello di rilevamento: quali blocklist open-source sono utili, dove mancano, e come combinarle con verifiche API in tempo reale per mantenere pulito il flusso di registrazione.

Cos'è un dominio email usa e getta?

Un dominio email usa e getta appartiene a un servizio che crea caselle di posta su richiesta. Non è richiesta la creazione di un account. Non viene verificata alcuna identità. Gli utenti ottengono un indirizzo funzionante in pochi secondi. La casella scompare dopo qualche minuto o ora, a volte senza alcun limite di tempo. L'indirizzo è sparito o abbandonato molto prima che la tua email di benvenuto venga inviata.

I servizi più noti includono Mailinator, Guerrilla Mail, YOPmail, 10MinuteMail e Temp-Mail. Ma questi sono solo i più visibili. Ci sono centinaia di provider più piccoli e meno conosciuti, inclusi domini creati specificamente per aggirare le blocklist che prendono di mira quelli più ovvi.

Non tutti coloro che usano un'email usa e getta cercano di abusare della tua piattaforma. Gli utenti attenti alla privacy, gli sviluppatori che testano integrazioni e le persone che evitano email di marketing hanno tutti valide ragioni per usare indirizzi temporanei. Il problema è che i malintenzionati — persone che creano più account falsi, richiedono ripetutamente prove gratuite o abusano dei programmi referral — li usano anche loro. E sono molto più difficili da filtrare in seguito.

Il punto chiave: le email usa e getta sono un problema di registrazione, non un problema di deliverability. I rimbalzi, il danno al sender score e la riduzione del posizionamento in inbox sono conseguenze, non cause. È meglio fermare il problema al modulo di registrazione che diagnosticarlo dalle analisi email settimane dopo.

Quali blocklist vale la pena usare

Su GitHub sono disponibili diverse liste gestite dalla community. Differiscono per numero di domini coperti, frequenza di aggiornamento e accuratezza.

disposable-email-domains/disposable-email-domains

Circa 4.000 domini, aggiornati tramite contributi della community che richiedono prove a supporto. È la scelta prudente: meno falsi positivi, ma copertura non completa. Un buon punto di partenza se stai configurando questo per la prima volta.

disposable/disposable-email-domains

Circa 100.000 domini, aggiornati automaticamente ogni giorno. Copertura più ampia, ma meno accurata. Alcune voci includono servizi di privacy che non sono veramente usa e getta. Utile per piattaforme ad alto rischio dove preferisci bloccare troppo piuttosto che troppo poco — ad esempio piattaforme di gaming, siti di coupon o servizi crypto.

7c/fakefilter

Circa 5.000 domini, aggiornati quotidianamente, e ogni voce rimanda alla sua fonte. La possibilità di tracciare il motivo per cui un dominio è elencato è utile quando si investiga un caso in cui un utente reale è stato bloccato.

FGRibreau/mailchecker

Disponibile come librerie pronte all'uso per Node.js, PHP, Ruby e altri linguaggi. Una buona opzione se preferisci una libreria integrata rispetto a un semplice file di testo.

Nessuna di queste liste è completa. Coprono i provider più comuni e si mantengono ragionevolmente aggiornate, ma sono sempre in ritardo rispetto ai servizi più nuovi.

Domini usa e getta comuni da bloccare

Se hai bisogno di un punto di partenza rapido mentre configuri un sistema di rilevamento adeguato, questi domini compaiono spesso nelle attività di registrazione falsa:

mailinator.com
guerrillamail.com
temp-mail.org
yopmail.com
10minutemail.com
trashmail.com
emailondeck.com
maildrop.cc
sharklasers.com
guerrillamailblock.com
grr.la
mailnesia.com
getnada.com
mohmal.com
throwam.com
dispostable.com
tempail.com
fakeinbox.com
throwaway.email
tempinbox.com

Questa lista è una misura temporanea, non una soluzione a lungo termine. Nuovi domini usa e getta appaiono ogni settimana. Alcuni scompaiono rapidamente, altri rimangono attivi per mesi. Una lista che non viene mai aggiornata perderà tutto ciò che è stato creato dopo l'ultima modifica.

Perché le liste statiche diventano obsolete

I servizi email usa e getta stanno cambiando. Molti ora offrono API REST o GraphQL, il che significa che una persona può creare automaticamente un nuovo indirizzo email senza aprire un browser. Un nuovo dominio usa e getta può essere configurato e pronto a ricevere email in meno di un'ora, molto prima che appaia in qualsiasi lista pubblica.

Alcuni attaccanti non usano affatto servizi esistenti. Registrano invece domini a basso costo, configurano le impostazioni di base del server di posta, usano l'indirizzo una volta e vanno avanti. Questi domini sembrano legittimi a qualsiasi verifica di lista statica. L'unico modo per rilevarli è analizzare segnali come la configurazione DNS, quando è stato registrato il dominio e se il server di posta risponde correttamente.

È qui che le liste statiche raggiungono il loro limite. Funzionano bene per bloccare i provider noti senza aggiungere latenza, poiché la verifica è solo una ricerca in un insieme di valori noti. Ma non possono coprire domini personalizzati monouso o servizi appena creati.

Rilevamento in tempo reale con l'API di Veille

L'API di validazione email di Veille (GET /v1/intelligence/email) verifica gli indirizzi email contro un database continuamente aggiornato di oltre 100.000 domini usa e getta noti, combinato con analisi DNS e del server di posta in tempo reale. Restituisce:

  • disposabletrue se il dominio è un provider usa e getta noto
  • risk_score — un punteggio da 0 (sicuro) a 100 (alto rischio), che combina tutti i segnali disponibili
  • role_account / role_type — rileva caselle condivise come info@, noreply@ o admin@
  • dns.mx — se il dominio ha un server di posta valido e configurato
  • smtp_valid — se la casella specifica può ricevere email (disponibile con qualification_check=true)

Il campo risk_score è il più utile per prendere decisioni articolate. Invece di un blocco o consenso binario, puoi definire soglie: lasciare passare punteggi bassi, richiedere una verifica aggiuntiva per punteggi medi e rifiutare punteggi alti direttamente nel modulo.

Come implementare il blocco delle email usa e getta

Python — verifica in una blocklist statica

Scarica la lista da GitHub e conservala in memoria. Fallo una volta all'avvio dell'applicazione, o a intervalli programmati, non ad ogni richiesta.

import requests

BLOCKLIST_URL = (
    "https://raw.githubusercontent.com/"
    "disposable-email-domains/disposable-email-domains/"
    "refs/heads/main/disposable_email_blocklist.conf"
)

def load_blocklist() -> set[str]:
    response = requests.get(BLOCKLIST_URL, timeout=10)
    return set(response.text.strip().splitlines())

DISPOSABLE_DOMAINS = load_blocklist()

def is_known_disposable(email: str) -> bool:
    domain = email.rsplit("@", 1)[-1].lower()
    return domain in DISPOSABLE_DOMAINS

Aggiorna la lista una volta a settimana usando un task programmato. La lista cambia abbastanza spesso da far sì che una versione vecchia perda abusi reali, ma non così spesso da richiedere aggiornamenti continui.

Python — uso dell'API di Veille per il rilevamento in tempo reale

import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.veille.io/v1"

def validate_email(email: str) -> dict:
    response = requests.get(
        f"{BASE_URL}/intelligence/email",
        params={"query": email},
        headers={"x-api-key": API_KEY},
        timeout=3,
    )
    response.raise_for_status()
    return response.json()

def signup_gate(email: str) -> tuple[bool, str]:
    data = validate_email(email)

    if data["disposable"]:
        return False, "Please use a permanent email address to sign up."

    if data["risk_score"] >= 75:
        return False, "We could not verify this email address. Please try a different one."

    return True, ""

TypeScript — middleware di validazione per Express

import express, { Request, Response, NextFunction } from "express";

const API_KEY = "YOUR_API_KEY";
const BASE_URL = "https://api.veille.io/v1";

interface EmailValidation {
  disposable: boolean;
  risk_score: number;
  smtp_valid: boolean;
}

async function validateEmailMiddleware(
  req: Request,
  res: Response,
  next: NextFunction
): Promise<void> {
  const { email } = req.body as { email: string };

  try {
    const response = await fetch(
      `${BASE_URL}/intelligence/email?query=${encodeURIComponent(email)}`,
      { headers: { "x-api-key": API_KEY }, signal: AbortSignal.timeout(3000) }
    );

    const data = (await response.json()) as EmailValidation;

    if (data.disposable || data.risk_score >= 75) {
      res.status(422).json({ error: "This email address cannot be used for registration." });
      return;
    }

    next();
  } catch {
    // If the API is unreachable, allow the request through and log the failure
    console.warn(`[veille] email validation failed for ${email}, allowing through`);
    next();
  }
}

const app = express();
app.use(express.json());
app.post("/auth/signup", validateEmailMiddleware, (req, res) => {
  res.json({ status: "ok" });
});

Una nota importante sull'implementazione: se l'API di validazione non è raggiungibile o restituisce un errore, lascia passare la richiesta. Non bloccare gli utenti a causa di un problema di rete. Registra il fallimento e rivedi quelle registrazioni separatamente.

Dove aggiungere la validazione

Il modulo di registrazione è il posto più importante, ma non l'unico:

  • Flussi di modifica email — un utente esistente che passa a un indirizzo usa e getta è un segnale di allerta
  • Moduli di lista d'attesa e accesso anticipato
  • Moduli per coupon e codici promozionali
  • Iscrizione al programma referral

Prima rilevi un indirizzo usa e getta, meno lavoro dovrai fare in seguito per pulire i tuoi dati.

Come evitare i falsi positivi

Alcuni servizi legittimi generano indirizzi email che sembrano simili a quelli usa e getta. Apple Hide My Email, Firefox Relay, alias di Proton Mail, SimpleLogin e addy.io creano tutti indirizzi di inoltro con pattern insoliti. Una blocklist troppo restrittiva potrebbe bloccarli per errore.

La differenza importante: questi indirizzi inoltrano a una casella reale appartenente a una persona reale che ha scelto di proteggere la propria privacy. Bloccare questi utenti significa perdere clienti reali, non prevenire frodi.

Due passaggi aiutano a evitare questo problema. Prima di tutto, mantieni una lista di servizi di privacy relay noti e salta tutte le verifiche per quei domini:

PRIVACY_RELAY_DOMAINS = {
    "privaterelay.appleid.com",
    "relay.firefox.com",
    "simplelogin.co",
    "addy.io",
    "anonaddy.com",
}

def should_skip_check(email: str) -> bool:
    domain = email.rsplit("@", 1)[-1].lower()
    return domain in PRIVACY_RELAY_DOMAINS

In secondo luogo, usa soglie di risk_score invece della semplice corrispondenza di dominio. Un indirizzo di inoltro da un servizio di privacy noto avrà tipicamente un punteggio basso. Un dominio usa e getta sconosciuto creato la settimana scorsa avrà un punteggio alto. È qui che l'API di Veille offre il maggior valore.

Prima di attivare qualsiasi logica di blocco in produzione, eseguila in modalità test per una settimana: registra ciò che sarebbe stato bloccato senza rifiutare effettivamente alcuna richiesta. Rivedi i risultati manualmente. Se compaiono utenti reali nei registri, adegua le tue soglie.

Un approccio a livelli

Nessuna singola verifica è sufficiente. Una configurazione affidabile combina più livelli:

  1. Lista di consenso per i privacy relay — verificata prima; gli indirizzi di questi domini saltano tutte le altre verifiche
  2. Blocklist statica — ricerca rapida, blocca immediatamente i provider usa e getta più noti
  3. API di Veille — verifica in tempo reale per tutto ciò che ha superato la lista statica, usando disposable, dns.mx e risk_score
  4. Comportamento post-registrazione — gli account che non aprono mai un'email, non completano mai l'onboarding e non mostrano attività dopo 7 giorni devono essere revisionati, indipendentemente da come hanno superato le verifiche iniziali

Logica decisionale:

Segnale Azione
Dominio nella lista di consenso privacy relay Consentire
Dominio nella blocklist statica Rifiutare al modulo di registrazione
disposable: true dall'API Rifiutare al modulo di registrazione
risk_score ≥ 75 Rifiutare al modulo di registrazione
risk_score 50–74 Consentire e segnalare per revisione manuale
Nessuna attività dopo 7 giorni Archiviare e rimuovere dalle liste attive

FAQ

Con quale frequenza dovrei aggiornare la blocklist?

Una volta a settimana è sufficiente per la maggior parte dei team. Configura un task automatizzato per scaricare la versione più recente e ricaricarla in memoria. Aggiornare più spesso apporta pochi benefici; aggiornare meno spesso significa perdere provider appena identificati.

Dovrei bloccare gli indirizzi basati su ruolo come info@azienda.com?

Dipende dal tuo prodotto. Per le registrazioni consumer, gli indirizzi condivisi come info@ o admin@ sono spesso segnale di un lead di bassa qualità o di una casella condivisa. Per i prodotti business, questi possono essere l'unico indirizzo pubblicamente disponibile di un'azienda. Usa il campo role_account dell'API di Veille per segnalarli separatamente invece di bloccarli direttamente, e poi gestiscili con un flusso di onboarding diverso.

E i domini catch-all?

Alcuni domini accettano email inviate a qualsiasi indirizzo, anche se non esiste alcuna casella reale per quell'indirizzo. Una blocklist statica non può rilevarlo. Usa smtp_valid con qualification_check=true nell'API di Veille per verificare che una casella specifica possa effettivamente ricevere email, non solo che il dominio sia configurato.

Posso bloccare tutti i provider email gratuiti?

No. La maggior parte degli utenti legittimi si registra con provider gratuiti come Gmail, Outlook o Yahoo. Bloccare i provider gratuiti eliminerebbe la maggior parte dei tuoi utenti reali. La distinzione corretta è tra usa e getta e permanente, non tra gratuito e a pagamento.

Esiste una lista che copre tutti i domini usa e getta?

No. Nuovi servizi email usa e getta vengono creati regolarmente, spesso con l'obiettivo specifico di evitare le blocklist esistenti. L'approccio più efficace è combinare una lista statica per i provider noti con un'API in tempo reale per tutto il resto.

Risorse di Veille

Veille monitora oltre 953 provider email usa e getta, organizzati in 9 categorie: caselle da 10 minuti, servizi temporanei, indirizzi burner, caselle trash, generatori di email false, servizi di inoltro anonimo, servizi di alias e relay, strumenti per la privacy e altri. Il database viene aggiornato ogni settimana.

Due strumenti gratuiti da usare insieme a questa guida:

  • Directory dei provider email usa e getta — sfoglia tutti i 953+ provider monitorati, con un'etichetta di categoria e descrizione per ciascuno
  • Strumento di confronto blocklist — inserisci qualsiasi dominio e controlla se è elencato in 12 blocklist open-source contemporaneamente, tra cui disposable-email-domains/disposable-email-domains, disposable/disposable-email-domains, 7c/fakefilter, FGRibreau/mailchecker e altre

Per il rilevamento in tempo reale alla registrazione — dove hai bisogno di disposable, risk_score e smtp_valid restituiti immediatamente — l'API di validazione email di Veille gestisce ciò che nessuna lista statica può fare.