Beta privataMailbeam è in beta privata: l'API pubblica non è ancora aperta.Iscriviti alla lista d'attesa

Mailbeam
TecnicoDi The Mailbeam Team6 min di lettura15 giugno 2025

Domini catch-all: che cosa sono e come trattarli

La verifica delle email standard funziona facendo una domanda al server di posta: «questa casella esiste?». La maggior parte dei server risponde con sincerità. I domini catch-all no: dicono di sì a qualsiasi indirizzo, che qualcuno lo legga o meno.

Questa guida spiega che cos'è una configurazione catch-all, perché è comune, come rilevarla e come prendere decisioni sensate su questi indirizzi senza cadere nel rifiuto indiscriminato.

Che cos'è un dominio catch-all?

Un dominio catch-all è configurato con una regola di casella jolly: qualsiasi messaggio inviato a qualsiasi indirizzo di quel dominio viene accettato e consegnato a una casella designata, invece di rimbalzare come non recapitabile.

Per esempio, se acme.com è configurato come catch-all:

  • john.smith@acme.com — viene consegnato (probabilmente reale)
  • xq87zk@acme.com — viene consegnato anche lui (quasi certamente falso)
  • ceo@acme.com — viene consegnato (probabilmente reale)
  • asdfjkl@acme.com — viene consegnato (probabilmente non reale)

Il dominio li accetta tutti. La verifica SMTP restituisce 250 OK per qualsiasi indirizzo di quel dominio.

Perché si configura un catch-all?

Ci sono ragioni legittime:

Alias di inoltro: un'azienda può volere che info@, sales@, hello@, contact@ — e qualsiasi variante venga in mente a qualcuno — finiscano nella stessa casella. Invece di creare ogni alias a mano, chi si occupa dei sistemi mette una regola catch-all.

Non perdere posta: se un cliente ha jane.smith@company.com in rubrica e scrive a jsmith@company.com, il catch-all garantisce che il messaggio arrivi. Nelle squadre di assistenza clienti questo riduce le richieste perse.

Privacy: i dipendenti possono usare un alias diverso per ogni servizio (newsletter-amazon@company.com, newsletter-linkedin@company.com) senza creare ciascun indirizzo nel sistema di posta.

Migrazioni da assetti precedenti: dopo un cambio di dominio o un'acquisizione, il catch-all sul vecchio dominio raccoglie la posta diretta ai vecchi indirizzi durante la transizione.

Sono tutte configurazioni reali e diffuse. Il catch-all non è di per sé sospetto: è una funzione standard dei server di posta usata da una percentuale significativa dei domini professionali.

Come il catch-all manda in crisi la verifica SMTP

La verifica SMTP standard funziona così:

→ RCPT TO: <user@example.com> ← 250 2.1.5 OK ← la casella esiste

oppure così:

→ RCPT TO: <user@example.com> ← 550 5.1.1 User unknown ← la casella non esiste

Su un dominio catch-all, ogni RCPT TO riceve un 250 OK. La tecnica dell'indirizzo di sondaggio — mandare un indirizzo deliberatamente casuale per verificare il comportamento del dominio — è il modo in cui si rileva il catch-all:

→ RCPT TO: <xk9a2b3c4d@acme.com> ← casuale, quasi certamente inesistente ← 250 2.1.5 OK ← catch-all confermato

Se un indirizzo casuale riceve 250 OK, qualsiasi 250 OK per un indirizzo dall'aria vera non significa niente: non possiamo distinguere recapitabile da non recapitabile con il solo SMTP.

Quanto sono comuni i domini catch-all?

I dati del settore indicano che fra il 10% e il 20% dei domini di posta professionali è configurato come catch-all. La percentuale è più alta in certi segmenti:

  • Grandi aziende (le squadre di sistemi preferiscono il controllo centralizzato)
  • Servizi professionali (studi legali, società di consulenza)
  • Aziende di vecchia data con infrastruttura ereditata
  • Domini B2B in generale, rispetto ai B2C

Presso i fornitori di posta per il grande pubblico (Gmail, Outlook, Yahoo) la configurazione catch-all non è possibile: rifiutano sempre gli indirizzi non validi con un 550. Il catch-all è quindi soprattutto una questione B2B.

Il problema di trattarlo come una cosa binaria

Un approccio ingenuo ai domini catch-all è rifiutarli tutti. La logica: se non posso verificare l'indirizzo, non dovrei accettarlo.

Il problema è che così rifiuteresti una percentuale importante dei tuoi potenziali clienti B2B legittimi. Uno strumento di vendita che rifiuta cmo@acme.com perché acme.com è catch-all è funzionalmente rotto per la raccolta di contatti professionali.

Il modello migliore è probabilistico: accetta gli indirizzi catch-all che portano segnali di legittimità e rifiuta quelli che sembrano generati automaticamente.

Assegnare un punteggio a un indirizzo catch-all

Alcuni servizi di verifica assegnano un punteggio agli indirizzi catch-all con un modello di apprendimento automatico addestrato su dati storici di invio. Mailbeam non lo fa, e vale la pena spiegare perché: non abbiamo un corpus di invii su cui addestrarci, e un numero di fiducia prodotto da un modello che non puoi ispezionare è difficile da usare quando sbaglia.

Quello che Mailbeam restituisce al suo posto è un punteggio additivo costruito a partire da un insieme fisso di segnali con pesi e limiti pubblicati:

  • Sintassi, percorso di posta, esito del sondaggio, usa e getta, indirizzo di ruolo, catch-all
  • Un indirizzo catch-all è limitato a 70, perché nessun sondaggio può confermarlo
  • Il campo reason dice catch_all_unverifiable, e status torna come risky invece che deliverable

Ogni punto è tracciabile fino a un controllo, quindi quando un punteggio sorprende si può capire perché. Il compromesso è onesto: una griglia di regole non batterà un buon modello sugli indirizzi ambigui. Quello che farà è dirti che cosa sa e dove si è fermata, che è ciò che ti serve per fissare la tua soglia.

Applicare un trattamento a livelli

// Non ci sono ancora SDK: questo è il wrapper di 12 righe di /docs/quickstart.
import { verifyEmail } from "./lib/mailbeam";

async function verifyEmailForUseCase(
  email: string,
  useCase: "signup" | "cold_outreach" | "lead_import"
) {
  const result = await verifyEmail(email);

  // Nessun catch-all: dritto per la sua strada
  if (!result.catchAll) {
    return { accept: result.valid && result.score >= 50 };
  }

  // Catch-all: usa soglie di punteggio diverse secondo il caso d'uso
  const thresholds = {
    signup:        40,   // permissivo — l'utente è davanti allo schermo e motivato
    cold_outreach: 70,   // severo — un bounce a freddo costa caro
    lead_import:   55,   // equilibrato
  };

  const threshold = thresholds[useCase];
  return { accept: result.score >= threshold, catchAll: true };
}

Ogni contesto merita una soglia diversa:

Caso d'usoPunteggio minimo consigliatoMotivo
Registrazione (utente presente)40Sbagliare costa poco; l'utente può correggere
Importazione di newsletter55Rischio moderato; facile da pulire dopo
Contatto a freddo70Rischio alto per la reputazione a causa dei bounce
Prospezione commerciale65Equilibrio fra copertura e rischio di bounce

Che cosa fare nell'interfaccia

Quando rilevi un indirizzo catch-all hai diverse possibilità:

Opzione 1: accettare in silenzio. Usa una soglia permissiva e accetta senza dirlo all'utente. Va bene nelle registrazioni B2B, dove non vuoi mettere attrito agli utenti aziendali.

Opzione 2: accettare con un avviso. Mostra un messaggio che non blocca: «Non siamo riusciti a verificare del tutto questo indirizzo; controlla che sia corretto prima di continuare». Utile nei moduli di raccolta contatti.

Opzione 3: chiedere conferma. Manda un'email di conferma e richiedi un clic prima di attivare l'account. È lo standard nelle registrazioni di alto valore.

Quello che non devi fare è mostrare un errore che dica che l'indirizzo non è valido: non lo è. È non verificabile con l'SMTP standard, che è un'altra cosa.

Il catch-all nella verifica massiva

Pulendo una lista ti troverai davanti lotti di indirizzi catch-all. L'approccio giusto:

const auth = { Authorization: `Bearer ${process.env.MAILBEAM_KEY}` };

// Invia la lista; la risposta è un id di lavoro, non i risultati.
const job = await fetch("https://api.mailbeam.dev/v1/verify/batch", {
  method: "POST",
  headers: { ...auth, "Content-Type": "application/json" },
  body: JSON.stringify({ emails }),
}).then((r) => r.json());

// Aspetta il webhook batch.completed, oppure interroga /v1/jobs/:id fino alla fine.
const { results } = await fetch(
  `https://api.mailbeam.dev/v1/jobs/${job.job_id}/results?format=json`,
  { headers: auth }
).then((r) => r.json());

for (const result of results) {
  // Un dominio catch-all accetta tutto, quindi l'esito torna come "risky"
  // invece di un sì o di un no netti. Segmenta in base al punteggio.
  if (result.status === "risky" && result.reason === "catch_all") {
    if (result.score >= 70)      keepInList(result.email);
    else if (result.score >= 40) flagForReview(result.email);
    else                         suppress(result.email);
  } else if (result.status === "undeliverable") {
    suppress(result.email);
  }
}

Non eliminare gli indirizzi catch-all in blocco. Segmentali per punteggio e decidi segmento per segmento.

In sintesi

I domini catch-all sono una funzione normale dell'infrastruttura di posta professionale, non un'anomalia. Riguardano fra il 10% e il 20% dei domini B2B. La verifica SMTP standard è cieca davanti a loro: ogni indirizzo di un dominio catch-all restituisce un risultato positivo.

La risposta giusta non è il rifiuto generalizzato, ma il punteggio probabilistico:

  • Rileva il catch-all con un indirizzo di sondaggio
  • Assegna un punteggio all'indirizzo usando segnali del dominio e della parte locale
  • Applica soglie adatte al tuo caso d'uso
  • Accetta quelli ad alta fiducia, marca quelli intermedi, rifiuta quelli bassi

Così mantieni la qualità della lista senza voltare le spalle a un segmento importante di utenti B2B legittimi.

Prossimi passi