Migrare da ZeroBounce
Questa guida spiega come passare da ZeroBounce a Mailbeam. La maggior parte delle migrazioni richiede meno di un'ora.
Perché si cambia
- Hosting nell'UE: ZeroBounce è negli USA; Mailbeam tratta i dati a Francoforte
- Attenzione al tempo reale: ZeroBounce è fatto per pulire liste in volume; Mailbeam per i flussi di registrazione
- Prezzi: Mailbeam addebita a verifica, senza moltiplicatori di crediti
- Schema della risposta: Mailbeam dà un campo
reasonspiegabile; ZeroBounce usa stringhe di stato opache
Corrispondenza fra endpoint
| ZeroBounce | Mailbeam | Note |
|---|---|---|
POST /v1/validate | POST /v1/verify | Validazione principale |
GET /v1/getapiusage | GET /v1/account/usage | Monitoraggio della quota |
POST /v2/validatebatch | POST /v1/verify/batch | Verifica in volume |
Autenticazione
ZeroBounce usa un parametro api_key nell'URL. Mailbeam usa token Bearer nell'intestazione.
ZeroBounce (prima):
curl "https://api.zerobounce.net/v2/validate?api_key=YOUR_KEY&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
ZeroBounce restituisce una stringa status. Mailbeam restituisce un booleano valid più score e reason.
status di ZeroBounce | Equivalente in Mailbeam |
|---|---|
"Valid" | valid: true, score >= 80 |
"Invalid" | valid: false |
"Catch-All" | catchAll: true (guarda lo score) |
"Spamtrap" | valid: false, reason: "disposable_domain" |
"Abuse" | Incluso come segnale nel punteggio |
"DoNotMail" | roleAddress: true oppure disposable: true |
"Unknown" | valid: true con uno score più basso |
Migrazione del codice
ZeroBounce (prima):
const response = await fetch(
`https://api.zerobounce.net/v2/validate?api_key=${apiKey}&email=${email}`
);
const { status, sub_status } = await response.json();
if (status !== "Valid") {
return res.status(422).json({ error: "Email non valida" });
}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 res.status(422).json({
error: "Email non valida",
reason, // leggibile dalla macchina: "disposable_domain", "no_mx_records", eccetera
});
}