Filtrage d'inscription : Bloquer les emails gratuits et jetables
Utilisez EmailKind pour empêcher les inscriptions spam sur votre SaaS en bloquant les fournisseurs d'emails gratuits (Gmail, Hotmail, Yahoo) et les emails jetables (Mailinator, Guerrilla Mail) lors de l'inscription.
Le problème
Les spammeurs s'inscrivent aux plans gratuits ou d'essai avec des adresses jetables ou gratuites, puis abusent de votre produit. Maintenir manuellement des listes noires est fastidieux et toujours incomplet.
La solution
Appelez l'API EmailKind au moment de l'inscription et utilisez les flags de classification pour décider d'autoriser, de vérifier ou de bloquer l'inscription.
Implémentation
1. Classifier l'email à l'inscription
curl "https://emailkind.com/v1/[email protected]" \
-H "Authorization: Bearer sk_live_votre_cle"
Réponse :
{
"email": "[email protected]",
"domain": "hotmail.co.uk",
"provider": { "id": "outlook", "name": "Outlook.com", "type": "personal" },
"classification": {
"is_business": false,
"is_free": true,
"is_disposable": false,
"is_education": false,
"is_custom_domain": false,
"is_role": false
},
"confidence": 0.98
}
2. Appliquer votre logique de filtrage
Voici une matrice de décision recommandée :
| Condition | Action | Raison |
|-----------|--------|--------|
| is_disposable = true | Bloquer | Adresse jetable, quasi certainement du spam |
| is_free = true ET confidence >= 0.8 | Bloquer ou vérifier | Fournisseur gratuit (Gmail, Hotmail, Yahoo) |
| is_free = true ET confidence < 0.8 | Vérifier (CAPTCHA, confirmation email) | Moins certain — vérifier avant de bloquer |
| is_business = true ET is_custom_domain = true | Autoriser | Email business légitime |
| is_role = true | Challenge ou routage | Boîte partagée (info@, support@), pas un individu — peut justifier un onboarding équipe |
| is_education = true | Autoriser ou plan spécial | Email universitaire |
| confidence < 0.5 | Vérifier | Domaine inconnu — demander une vérification |
3. Exemple de code (Node.js)
import EmailKind from 'emailkind';
const client = new EmailKind('sk_live_votre_cle');
async function shouldAllowSignup(email: string): Promise<{
allowed: boolean;
reason: string;
requireVerification: boolean;
}> {
const result = await client.classify({ email });
// Toujours bloquer les emails jetables
if (result.classification.is_disposable) {
return { allowed: false, reason: 'disposable_email', requireVerification: false };
}
// Bloquer les emails gratuits avec haute confiance
if (result.classification.is_free && result.confidence >= 0.8) {
return { allowed: false, reason: 'free_email', requireVerification: false };
}
// Vérifier les résultats à faible confiance ou inconnus
if (result.confidence < 0.5) {
return { allowed: true, reason: 'low_confidence', requireVerification: true };
}
// Autoriser les emails business
return { allowed: true, reason: 'business_email', requireVerification: false };
}
4. Exemple de code (Python)
from emailkind import EmailKind
client = EmailKind("sk_live_votre_cle")
def check_signup(email: str) -> dict:
result = client.classify(email=email)
if result.classification.is_disposable:
return {"allowed": False, "reason": "disposable_email"}
if result.classification.is_free and result.confidence >= 0.8:
return {"allowed": False, "reason": "free_email"}
if result.confidence < 0.5:
return {"allowed": True, "reason": "low_confidence", "verify": True}
return {"allowed": True, "reason": "business_email"}
Ajuster avec les listes personnalisées
Si vous avez besoin d'exceptions (ex. autoriser une adresse Gmail spécifique), utilisez les Listes personnalisées pour mettre en liste blanche des domaines spécifiques ou remplacer des classifications.
Utiliser les scores de confiance
Le champ confidence (0.0 à 1.0) indique le degré de certitude de la classification :
| Score | Signification | |-------|---------------| | 0.95 - 1.0 | Très élevé — fournisseur connu, correspondance MX exacte | | 0.8 - 0.95 | Élevé — forte correspondance MX ou SPF | | 0.5 - 0.8 | Moyen — déduit des patterns MX | | 0.1 - 0.5 | Faible — domaine inconnu ou ambigu |
Recommandation : Utilisez confidence >= 0.8 comme seuil pour le blocage automatique. Pour les scores inférieurs à 0.8, ajoutez une étape de vérification (confirmation email, CAPTCHA) plutôt que de bloquer directement.
Bonnes pratiques
- Ne bloquez pas silencieusement — affichez un message clair comme "Veuillez vous inscrire avec votre email professionnel"
- Offrez un recours — certains utilisateurs légitimes ont des adresses email gratuites
- Journalisez les décisions — suivez quelles inscriptions ont été bloquées et pourquoi, pour affiner votre logique
- Utilisez l'endpoint batch pour classifier rétroactivement les utilisateurs existants et nettoyer votre base
- Combinez avec la vérification d'email — EmailKind classifie le fournisseur, mais ne vérifie pas que la boîte existe. Utilisez les deux pour une protection maximale.