Migrare da Kickbox
Questa guida spiega come sostituire Kickbox con Mailbeam. La maggior parte delle migrazioni si conclude in meno di un'ora.
Perché si cambia
- Residenza del dato nell'UE: Kickbox è ospitato negli USA; Mailbeam tratta i dati a Francoforte, in Germania, senza bisogno di meccanismi di trasferimento del GDPR
- Punteggio spiegabile: il punteggio Sendex di Kickbox non ha un campo di motivo; il campo
reasondi Mailbeam ti dice esattamente perché un indirizzo ha ottenuto il suo punteggio - Prezzi: Mailbeam costa meno in modo costante: 49 €/mese per 50.000 verifiche contro i circa 150 $ di Kickbox
- Sconto annuale: Mailbeam offre il 20% di sconto annuale; Kickbox no
- API moderna: il disegno dell'API e degli SDK di Mailbeam riflette le pratiche di oggi; l'API di Kickbox è del 2013
Corrispondenza fra endpoint
| Kickbox | Mailbeam | Note |
|---|---|---|
GET /v2/verify?email=&apikey= | POST /v1/verify | Verifica di un'email |
POST /v2/batch | POST /v1/verify/batch | Verifica in volume |
GET /v2/batch/{id} | GET /v1/verify/batch/{id} | Stato del lotto |
Autenticazione
Kickbox passa la chiave API come parametro nell'URL. Mailbeam usa un token Bearer nell'intestazione.
Kickbox (prima):
curl "https://api.kickbox.com/v2/verify?email=user@example.com&apikey=YOUR_KEY"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
| Campo di Kickbox | Equivalente in Mailbeam |
|---|---|
result: "deliverable" | valid: true, score >= 70 |
result: "undeliverable" | valid: false |
result: "risky" | valid: true, score 30-69 |
result: "unknown" | status: "unknown" |
sendex (0.0-1.0) | score (0-100) |
reason: "invalid_email" | reason: "invalid_syntax" |
reason: "rejected_email" | reason: "smtp_rejected" |
reason: "low_quality" | Campo reason + score più basso |
disposable: true | disposable: true |
role: true | role: true |
Sostituire il punteggio Sendex
Il sendex di Kickbox è un decimale da 0,0 a 1,0. Lo score di Mailbeam è un intero da 0 a 100.
La corrispondenza è diretta: moltiplica per 100 la soglia che avevi in Kickbox.
Kickbox (prima):
const { result, sendex, reason } = await kickbox.verify(email);
if (result === "undeliverable" || sendex < 0.6) 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;
// `reason` adesso è leggibile dalla macchina: "smtp_rejected", "disposable_domain", ecceteraSfruttare il campo reason
Kickbox dà una stringa reason, ma senza codici leggibili dalla macchina.
Il campo reason di Mailbeam permette di trattarla nel codice:
const result = await verifyEmail(email);
if (!result.valid) {
const messages = {
invalid_syntax: "Controlla il formato della tua email.",
no_mx_records: "Quel dominio email non esiste.",
smtp_rejected: "Questo indirizzo email non esiste.",
disposable_domain: "Gli indirizzi email temporanei non sono ammessi.",
};
return res.status(422).json({
error: messages[result.reason] ?? "Non è stato possibile verificare l'indirizzo email.",
suggestion: result.suggestion ?? null,
});
}