Migrare da NeverBounce
Questa guida spiega come sostituire NeverBounce con Mailbeam. La maggior parte delle migrazioni richiede meno di un'ora.
Perché si cambia
- Hosting nell'UE: NeverBounce è negli USA (è di ZoomInfo); Mailbeam tratta i dati a Francoforte, in Germania, senza trasferimenti transfrontalieri da risolvere sotto il GDPR
- Crediti che non scadono: i crediti di NeverBounce scadono dopo 6 mesi; Mailbeam è un abbonamento mensile senza scadenza
- Piano gratuito in autonomia: Mailbeam dà 1000 verifiche al mese senza carta; NeverBounce richiede di comprare crediti per iniziare
- Esiti catch-all a punteggio: NeverBounce restituisce una marcatura binaria; Mailbeam assegna agli indirizzi catch-all un punteggio da 0 a 100 con pesi pubblicati, con un limite di 70 perché nessun sondaggio può confermarli, e un campo di motivo spiegabile
Corrispondenza fra endpoint
| NeverBounce | Mailbeam | Note |
|---|---|---|
POST /v4/single/check | POST /v1/verify | Verifica di un'email |
POST /v4/jobs/create | POST /v1/verify/batch | Verifica di liste in volume |
GET /v4/account/info | GET /v1/account/usage | Informazioni su quota e consumo |
Autenticazione
NeverBounce usa l'autenticazione HTTP Basic con la chiave API come nome utente e
senza password. Mailbeam usa token Bearer nell'intestazione Authorization.
NeverBounce (prima):
curl -X POST https://api.neverbounce.com/v4/single/check \
-H "Authorization: Basic $(echo -n 'YOUR_KEY:' | base64)" \
-d '{"email": "user@example.com"}'Mailbeam (adesso):
curl -X POST https://api.mailbeam.dev/v1/verify \
-H "Authorization: Bearer $MAILBEAM_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com"}'Corrispondenza fra risposte
result di NeverBounce | Equivalente in Mailbeam |
|---|---|
"valid" | valid: true, score >= 70 |
"invalid" | valid: false |
"catchall" | catchAll: true — decidi con lo score |
"disposable" | disposable: true |
"unknown" | status: "unknown", con score più basso |
Migrazione del codice
NeverBounce (prima):
const res = await fetch("https://api.neverbounce.com/v4/single/check", {
method: "POST",
headers: { Authorization: `Basic ${btoa(apiKey + ":")}` },
body: JSON.stringify({ email }),
});
const { result } = await res.json();
if (result !== "valid") return 422;Mailbeam (adesso):
// Nessun SDK da installare: vedi /docs/quickstart per questo wrapper di 12 righe.
import { verifyEmail } from "./lib/mailbeam.js";
const { valid, score, reason } = await verifyEmail(email);
if (!valid || score < 60) return 422;Trattare gli indirizzi catch-all
NeverBounce restituisce result: "catchall" e nient'altro.
Mailbeam restituisce catchAll: true insieme a uno score da 0 a 100 e a un reason.
const result = await verifyEmail(email);
if (result.catchAll) {
// NeverBounce rifiuterebbe tutti i catch-all; Mailbeam ti lascia essere selettivo
if (result.score >= 70) return 200; // indirizzo aziendale ad alta fiducia
if (result.score >= 40) return 200; // accetta, ma marcalo per una revisione
return 422; // fiducia bassa, rifiuta
}