# Verifica un singolo indirizzo

> Verifica un indirizzo email nel pannello o con l’API, scegli tra modalità rapida e completa e usa la verifica per bloccare gli indirizzi errati al momento dell’iscrizione.

Questa guida mostra come controllare un indirizzo email, a mano nel pannello oppure dal codice con l’API. Spiega anche come usare la verifica in un modulo di iscrizione per bloccare refusi e indirizzi usa e getta prima che arrivino nella lista.

## Prima di iniziare

- Ogni verifica costa 5 crediti. Controlla il saldo nella barra laterale o in **Workspace → Billing**.
- Per l’API, usa una chiave API con **Full Access**. Le chiavi di solo invio non possono verificare indirizzi.

## Modalità rapida e completa

| Modalità | Controlli | Usala per |
| --- | --- | --- |
| `fast` (predefinita) | Sintassi, record MX, età del dominio, indirizzi usa e getta, di ruolo, di provider gratuiti e dall’aspetto casuale | Moduli di iscrizione e tutto ciò per cui una persona sta aspettando. |
| `full` | Tutto ciò che fa `fast`, più una connessione al server di posta del destinatario per controllare la casella: consegnabile, disattivata, piena e catch-all | Ripulire gli indirizzi prima di un invio importante, quando qualche secondo in più non conta. |

Le due modalità costano uguale. `full` richiede più tempo perché dialoga con il server di posta del destinatario, che può essere lento o rifiutarsi di rispondere. Alcuni grandi provider bloccano questi controlli, quindi `full` non può sempre confermare una casella. Per il significato di ogni controllo, vedi [Esiti della verifica](/it/docs/email-verification/results/).

## Verifica un indirizzo

**Pannello**

  1. **Apri Email Verification.** Vai a **Email Verification → Emails** e seleziona **Verify Email**.

  2. **Inserisci l’indirizzo.** Scrivilo nel campo **Email** e seleziona **Verify Email**. Il pannello usa la modalità `fast`.

  3. **Apri l’esito.** L’indirizzo compare nell’elenco con **Status**, **Result**, **Risk**, **Score**, la data **Created** e i giorni che mancano a **Expiring**. Selezionalo per vedere ogni singolo controllo, come **Valid Syntax**, **Disposable**, **Role Account** e **Has MX Records**.

  Per controllare molti indirizzi in una volta, [verifica una lista](/it/docs/email-verification/lists/).

**API**

  Chiama [Verifica un indirizzo](/it/docs/api-reference/email-verifications/verify/) con l’indirizzo e, facoltativamente, la modalità:

```bash
curl https://api.emailit.com/v2/email-verifications \
  -X POST \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "email": "ada@example.com", "mode": "full" }'
```

  L’esito arriva nella risposta:

```json
{
  "id": "ev_6Hq2Lm9Tx4Pz",
  "object": "email_verification",
  "email": "ada@example.com",
  "status": "completed",
  "score": 100,
  "risk": "low",
  "result": "safe",
  "mode": "full",
  "checks": {
    "valid_syntax": true,
    "disposable": false,
    "role_account": false,
    "inbox_full": false,
    "deliverable": true,
    "disabled": false,
    "free_email": false,
    "gibberish": false,
    "catch_all": false,
    "smtp_connect": true,
    "has_mx_records": true,
    "domain_age": 10957
  },
  "address": {
    "mailbox": "ada",
    "domain": "example.com",
    "suffix": null,
    "root": "ada@example.com"
  },
  "did_you_mean": null,
  "mx_records": [
    { "priority": 10, "exchange": "mx1.example.com" }
  ],
  "created_at": "2026-10-01T10:24:11Z",
  "updated_at": "2026-10-01T10:24:11Z"
}
```

  In modalità `fast`, i controlli sulla casella (`deliverable`, `disabled`, `inbox_full`, `catch_all` e `smtp_connect`) sono `null` perché non vengono eseguiti.

  | Stato | Quando |
  | --- | --- |
  | `200` | L’indirizzo è stato verificato. Sono inclusi gli indirizzi formati male, che tornano con `result: "invalid"`. |
  | `400` | Manca `email`, oppure `mode` non è `fast` o `full`. |
  | `402` | Il workspace ha meno di 5 crediti. |

  Ogni verifica riuscita genera anche un evento `email_verification.created`. Vedi [Tipi di evento](/it/docs/webhooks/event-types/).

## Verifica gli indirizzi all’iscrizione

Controllare un indirizzo quando qualcuno lo digita è il modo più economico per mantenere pulita una lista. Un refuso intercettato all’iscrizione non diventa mai un bounce.

1. **Chiama l’API dal server.** Non inserire mai la chiave API nel codice del browser. Invia l’indirizzo dal gestore dell’iscrizione, in modalità `fast`.

2. **Imposta un timeout e lascia passare in caso di errore.** Se la verifica è lenta o restituisce un errore, lascia completare l’iscrizione. Perdere un cliente reale costa più di un indirizzo sbagliato.

3. **Agisci in base all’esito.** Blocca ciò che è chiaramente sbagliato, suggerisci correzioni per i refusi e lascia passare tutto il resto.

```javascript title="verify-signup.js"
  const controller = new AbortController();
  const timer = setTimeout(() => controller.abort(), 5000);

  try {
    const res = await fetch('https://api.emailit.com/v2/email-verifications', {
      method: 'POST',
      headers: {
        Authorization: `Bearer ${process.env.EMAILIT_API_KEY}`,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({ email, mode: 'fast' }),
      signal: controller.signal,
    });
    if (!res.ok) return { ok: true }; // fail open

    const verification = await res.json();

    if (verification.result === 'invalid') {
      return {
        ok: false,
        message: verification.did_you_mean
          ? `Did you mean ${verification.did_you_mean}?`
          : 'Please check your email address.',
      };
    }
    if (verification.result === 'disposable') {
      return { ok: false, message: 'Please use a permanent email address.' };
    }

    // Accept the address, but offer a correction if one looks likely.
    return { ok: true, suggestion: verification.did_you_mean };
  } catch {
    return { ok: true }; // timeout or network error: fail open
  } finally {
    clearTimeout(timer);
  }
}
```

Alcuni consigli:

- **Usa `did_you_mean`.** Per i refusi più comuni nei domini, come `ada@gmial.com`, contiene l’indirizzo probabile, `ada@gmail.com`. Mostralo come suggerimento che la persona può accettare.
- **Non bloccare a priori gli indirizzi di ruolo.** `info@` o `sales@` sono spesso il modo in cui le piccole aziende si iscrivono. Segnalali invece di bloccarli.
- **Verifica ogni indirizzo una sola volta.** Ogni chiamata costa crediti, quindi verifica quando il modulo viene inviato, non a ogni tasto premuto, e memorizza l’esito.

## Vedi anche

  - [Esiti della verifica](/it/docs/email-verification/results/): Il significato di ogni esito, rischio e controllo.
  - [Verifica una lista](/it/docs/email-verification/lists/): Controlla fino a 10.000 indirizzi in una volta.

---
Fonte: https://emailit.com/it/docs/email-verification/single/
