Migrer depuis NeverBounce
Ce guide montre comment remplacer NeverBounce par Mailbeam. La plupart des migrations prennent moins d'une heure.
Pourquoi les développeurs changent
- Hébergement dans l'UE : NeverBounce est établi aux États-Unis (propriété de ZoomInfo) ; Mailbeam traite les données à Francfort, en Allemagne — aucune question de transfert transfrontalier au sens du RGPD
- Pas de crédits qui expirent : les crédits NeverBounce expirent au bout de 6 mois ; Mailbeam fonctionne par abonnement mensuel, sans expiration
- Offre gratuite en libre-service : Mailbeam donne 1 000 vérifications par mois sans carte bancaire ; NeverBounce exige un achat de crédits pour démarrer
- Verdicts catch-all notés : NeverBounce renvoie un drapeau binaire ; Mailbeam note les adresses catch-all de 0 à 100 à partir de poids publiés, avec un plafond à 70 parce qu'aucune sonde ne peut les confirmer, et un champ de motif explicable
Correspondance des endpoints
| NeverBounce | Mailbeam | Remarques |
|---|---|---|
POST /v4/single/check | POST /v1/verify | Vérification d'une adresse |
POST /v4/jobs/create | POST /v1/verify/batch | Vérification d'une liste en masse |
GET /v4/account/info | GET /v1/account/usage | Quota et consommation |
Authentification
NeverBounce utilise l'authentification HTTP Basic, avec la clé d'API en nom d'utilisateur et pas de mot de passe.
Mailbeam utilise un jeton Bearer dans l'en-tête Authorization.
NeverBounce (avant) :
curl -X POST https://api.neverbounce.com/v4/single/check \
-H "Authorization: Basic $(echo -n 'YOUR_KEY:' | base64)" \
-d '{"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
result de NeverBounce | Équivalent Mailbeam |
|---|---|
"valid" | valid: true, score >= 70 |
"invalid" | valid: false |
"catchall" | catchAll: true — décidez avec le score |
"disposable" | disposable: true |
"unknown" | status: "unknown", score plus bas |
Migration du code
NeverBounce (avant) :
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 (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 422;Traiter les adresses catch-all
NeverBounce renvoie result: "catchall" sans autre signal.
Mailbeam renvoie catchAll: true, accompagné d'un score de 0 à 100 et d'un reason.
const result = await verifyEmail(email);
if (result.catchAll) {
// NeverBounce rejetterait tout catch-all — Mailbeam vous laisse trier
if (result.score >= 70) return 200; // adresse d'entreprise à forte confiance
if (result.score >= 40) return 200; // acceptée, mais signalée pour relecture
return 422; // confiance faible, rejet
}