Migrer depuis ZeroBounce
Ce guide montre comment passer de ZeroBounce à Mailbeam. La plupart des migrations prennent moins d'une heure.
Pourquoi les développeurs changent
- Hébergement dans l'UE : ZeroBounce est établi aux États-Unis ; Mailbeam traite les données à Francfort
- Orientation temps réel : ZeroBounce est construit pour le nettoyage de listes en masse ; Mailbeam est construit pour les parcours d'inscription
- Tarification : Mailbeam facture à la vérification, sans multiplicateur de crédits
- Schéma de réponse : Mailbeam fournit un champ
reasonexplicable ; ZeroBounce s'en tient à des chaînes de statut opaques
Correspondance des endpoints
| ZeroBounce | Mailbeam | Remarques |
|---|---|---|
POST /v1/validate | POST /v1/verify | Validation principale |
GET /v1/getapiusage | GET /v1/account/usage | Suivi du quota |
POST /v2/validatebatch | POST /v1/verify/batch | Vérification en masse |
Authentification
ZeroBounce passe par un paramètre d'URL api_key. Mailbeam utilise un jeton Bearer dans l'en-tête.
ZeroBounce (avant) :
curl "https://api.zerobounce.net/v2/validate?api_key=YOUR_KEY&email=user@example.com"Mailbeam (après) :
curl -X POST https://api.mailbeam.dev/v1/verify \
-H "Authorization: Bearer $MAILBEAM_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com"}'Correspondance des réponses
ZeroBounce renvoie une chaîne status. Mailbeam renvoie un booléen valid, un score et un reason.
status de ZeroBounce | Équivalent Mailbeam |
|---|---|
"Valid" | valid: true, score >= 80 |
"Invalid" | valid: false |
"Catch-All" | catchAll: true (regardez le score) |
"Spamtrap" | valid: false, reason: "disposable_domain" |
"Abuse" | Intégré au signal de score |
"DoNotMail" | roleAddress: true ou disposable: true |
"Unknown" | valid: true avec un score plus bas |
Migration du code
ZeroBounce (avant) :
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: "Invalid email" });
}Mailbeam (après) :
// Pas de SDK à installer — voyez /docs/quickstart pour ce wrapper de 12 lignes.
import { verifyEmail } from "./lib/mailbeam.js";
const { valid, score, reason } = await verifyEmail(email);
if (!valid || score < 60) {
return res.status(422).json({
error: "Invalid email",
reason, // lisible par la machine : "disposable_domain", "no_mx_records", etc.
});
}