Retour au blog
Sécurité

Liste des domaines emails jetables : comment les bloquer

Josselin Liebe
Josselin Liebe

Quand un produit propose un plan gratuit, les fausses inscriptions suivent. La plupart des équipes ne remarquent le problème que lorsque les taux de rebond des emails augmentent, que la conversion essai-payant baisse sans explication, ou que les crédits de parrainage sont utilisés de façon abusive. À ce stade, les dégâts sont déjà faits.

Nous avons travaillé avec une entreprise SaaS B2B proposant un produit freemium. Elle avait un bon parcours d'onboarding, des emails d'activation efficaces, et une séquence de messages structurée. Rien ne fonctionnait comme prévu. En analysant les données d'inscription ensemble, nous avons constaté qu'environ un nouveau compte sur huit avait été créé avec une adresse email jetable. Après avoir ajouté la détection d'emails jetables à l'inscription avec l'API Veille, les fausses inscriptions ont baissé de plus de 10 % dès le premier mois. Les métriques de conversion sont redevenues fiables. Les données de performance email reflétaient enfin la réalité.

Ce guide explique comment construire cette couche de détection : quelles blocklists open source sont utiles, où elles atteignent leurs limites, et comment les combiner avec des vérifications API en temps réel pour garder votre flux d'inscription propre.

Qu'est-ce qu'un domaine email jetable ?

Un domaine email jetable appartient à un service qui crée des boîtes de réception à la demande. Aucune création de compte n'est nécessaire. Aucune identité n'est vérifiée. Les utilisateurs obtiennent une adresse fonctionnelle en quelques secondes. La boîte disparaît après quelques minutes ou heures, parfois sans aucune limite de temps. L'adresse est abandonnée bien avant que votre email de bienvenue ne soit envoyé.

Les services les plus connus sont Mailinator, Guerrilla Mail, YOPmail, 10MinuteMail et Temp-Mail. Mais ce ne sont que les plus visibles. Il existe des centaines de fournisseurs moins connus, dont des domaines créés spécifiquement pour contourner les blocklists qui ciblent les services les plus évidents.

Toute personne utilisant une adresse jetable ne cherche pas à abuser de votre plateforme. Les utilisateurs soucieux de leur vie privée, les développeurs qui testent des intégrations, et les personnes qui évitent les emails marketing ont des raisons valables d'utiliser des adresses temporaires. Le problème, c'est que les personnes malveillantes - celles qui créent plusieurs faux comptes, réclament plusieurs fois des essais gratuits ou abusent des programmes de parrainage - les utilisent aussi. Et elles sont bien plus difficiles à filtrer après coup.

Le point essentiel : les emails jetables sont un problème d'inscription, pas un problème de délivrabilité. Les rebonds, la dégradation du score d'envoi et la réduction de la délivrabilité sont des conséquences, pas des causes. Il vaut mieux stopper le problème au moment de l'inscription plutôt que de le diagnostiquer depuis vos analytics email plusieurs semaines plus tard.

Quelles blocklists utiliser

Plusieurs listes maintenues par la communauté sont disponibles sur GitHub. Elles diffèrent par le nombre de domaines couverts, la fréquence de mise à jour et la précision.

disposable-email-domains/disposable-email-domains

Environ 4 000 domaines, mis à jour via des contributions communautaires qui exigent des preuves. C'est le choix prudent : moins de faux positifs, mais pas une couverture complète. Un bon point de départ si vous mettez en place ce système pour la première fois.

disposable/disposable-email-domains

Environ 100 000 domaines, mis à jour automatiquement chaque jour. Une couverture plus large, mais une précision moindre. Certaines entrées incluent des services de confidentialité qui ne sont pas réellement jetables. Utile pour les plateformes à haut risque où vous préférez bloquer trop plutôt que pas assez - par exemple, les plateformes de jeux, les sites de bons de réduction ou les services crypto.

7c/fakefilter

Environ 5 000 domaines, mis à jour quotidiennement, avec une source traçable pour chaque entrée. La possibilité de savoir pourquoi un domaine est listé est utile lorsque vous devez vérifier si un utilisateur réel a été bloqué par erreur.

FGRibreau/mailchecker

Disponible sous forme de bibliothèques prêtes à l'emploi pour Node.js, PHP, Ruby et d'autres langages. Une bonne option si vous préférez une bibliothèque intégrée plutôt qu'un simple fichier texte.

Aucune de ces listes n'est complète. Elles couvrent les fournisseurs les plus courants et restent assez à jour, mais elles sont toujours en retard sur les derniers services apparus.

Domaines jetables courants à bloquer

Si vous avez besoin d'un point de départ rapide pendant que vous mettez en place un système de détection complet, voici des domaines qui apparaissent fréquemment dans les activités d'inscription frauduleuse :

mailinator.com
guerrillamail.com
temp-mail.org
yopmail.com
10minutemail.com
trashmail.com
emailondeck.com
maildrop.cc
sharklasers.com
guerrillamailblock.com
grr.la
mailnesia.com
getnada.com
mohmal.com
throwam.com
dispostable.com
tempail.com
fakeinbox.com
throwaway.email
tempinbox.com

Cette liste est une mesure temporaire, pas une solution durable. De nouveaux domaines jetables apparaissent chaque semaine. Certains disparaissent rapidement, d'autres restent actifs pendant des mois. Une liste qui n'est jamais mise à jour manquera tout ce qui a été créé depuis sa dernière modification.

Pourquoi les listes statiques deviennent obsolètes

Les services d'emails jetables évoluent. Beaucoup proposent désormais des APIs REST ou GraphQL, ce qui permet de créer une nouvelle adresse email automatiquement, sans ouvrir de navigateur. Un nouveau domaine jetable peut être opérationnel en moins d'une heure - bien avant d'apparaître dans une quelconque liste publique.

Certains acteurs malveillants n'utilisent pas du tout les services existants. Ils enregistrent des domaines peu coûteux, configurent les paramètres de base d'un serveur mail, utilisent l'adresse une seule fois, puis passent à autre chose. Ces domaines semblent totalement légitimes lors d'une vérification dans une liste statique. La seule façon de les détecter est d'analyser des signaux comme la configuration DNS, la date d'enregistrement du domaine, ou le comportement du serveur mail.

C'est là que les listes statiques atteignent leurs limites. Elles fonctionnent bien pour bloquer les fournisseurs connus sans aucun délai supplémentaire, car la vérification consiste simplement à chercher un domaine dans un ensemble de valeurs connues. Mais elles ne peuvent pas couvrir les domaines personnalisés à usage unique ni les nouveaux services.

Détection en temps réel avec l'API Veille

L'API Email Validation de Veille (GET /v1/intelligence/email) vérifie les adresses email contre une base de données continuellement mise à jour de plus de 100 000 domaines jetables connus, combinée à une analyse DNS et serveur mail en temps réel. Elle retourne :

  • disposable - true si le domaine est un fournisseur jetable connu
  • risk_score - un score de 0 (sûr) à 100 (risque élevé), combinant tous les signaux disponibles
  • role_account / role_type - détecte les boîtes partagées comme info@, noreply@ ou admin@
  • dns.mx - indique si le domaine possède un serveur mail valide et configuré
  • smtp_valid - indique si la boîte spécifique peut recevoir des emails (disponible avec qualification_check=true)

Le champ risk_score est le plus utile pour prendre des décisions nuancées. Plutôt qu'un blocage ou une autorisation binaire, vous pouvez définir des seuils : autoriser les scores bas, exiger une vérification supplémentaire pour les scores moyens, et refuser directement les scores élevés dans le formulaire.

Comment mettre en place le blocage des emails jetables

Python - vérification d'une blocklist statique

Téléchargez la liste depuis GitHub et stockez-la en mémoire. Faites-le une fois au démarrage de l'application, ou selon un calendrier régulier, pas à chaque requête.

import requests

BLOCKLIST_URL = (
    "https://raw.githubusercontent.com/"
    "disposable-email-domains/disposable-email-domains/"
    "refs/heads/main/disposable_email_blocklist.conf"
)

def load_blocklist() -> set[str]:
    response = requests.get(BLOCKLIST_URL, timeout=10)
    return set(response.text.strip().splitlines())

DISPOSABLE_DOMAINS = load_blocklist()

def is_known_disposable(email: str) -> bool:
    domain = email.rsplit("@", 1)[-1].lower()
    return domain in DISPOSABLE_DOMAINS

Mettez à jour la liste une fois par semaine via une tâche automatisée. La liste change assez souvent pour qu'une version ancienne manque des abus réels, mais pas au point de nécessiter une mise à jour continue.

Python - utilisation de l'API Veille pour la détection en temps réel

import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.veille.io/v1"

def validate_email(email: str) -> dict:
    response = requests.get(
        f"{BASE_URL}/intelligence/email",
        params={"query": email},
        headers={"x-api-key": API_KEY},
        timeout=3,
    )
    response.raise_for_status()
    return response.json()

def signup_gate(email: str) -> tuple[bool, str]:
    data = validate_email(email)

    if data["disposable"]:
        return False, "Veuillez utiliser une adresse email permanente pour vous inscrire."

    if data["risk_score"] >= 75:
        return False, "Nous n'avons pas pu vérifier cette adresse email. Veuillez en essayer une autre."

    return True, ""

TypeScript - middleware de validation pour Express

import express, { Request, Response, NextFunction } from "express";

const API_KEY = "YOUR_API_KEY";
const BASE_URL = "https://api.veille.io/v1";

interface EmailValidation {
  disposable: boolean;
  risk_score: number;
  smtp_valid: boolean;
}

async function validateEmailMiddleware(
  req: Request,
  res: Response,
  next: NextFunction
): Promise<void> {
  const { email } = req.body as { email: string };

  try {
    const response = await fetch(
      `${BASE_URL}/intelligence/email?query=${encodeURIComponent(email)}`,
      { headers: { "x-api-key": API_KEY }, signal: AbortSignal.timeout(3000) }
    );

    const data = (await response.json()) as EmailValidation;

    if (data.disposable || data.risk_score >= 75) {
      res.status(422).json({ error: "Cette adresse email ne peut pas être utilisée pour l'inscription." });
      return;
    }

    next();
  } catch {
    // Si l'API est inaccessible, autoriser la requête et enregistrer l'erreur
    console.warn(`[veille] validation email échouée pour ${email}, on laisse passer`);
    next();
  }
}

const app = express();
app.use(express.json());
app.post("/auth/signup", validateEmailMiddleware, (req, res) => {
  res.json({ status: "ok" });
});

Note importante : si l'API de validation est inaccessible ou retourne une erreur, autorisez quand même la requête. Ne bloquez pas les utilisateurs à cause d'un problème réseau. Enregistrez l'erreur et examinez ces inscriptions séparément.

Où ajouter la validation

Le formulaire d'inscription est le point le plus important, mais pas le seul :

  • Formulaires de changement d'adresse email - un utilisateur existant qui passe à une adresse jetable est un signal d'alerte
  • Formulaires d'inscription sur liste d'attente ou d'accès anticipé
  • Formulaires de codes promo et de réduction
  • Inscription au programme de parrainage

Plus tôt vous détectez une adresse jetable, moins vous aurez de travail de nettoyage par la suite.

Éviter les faux positifs

Certains services légitimes génèrent des adresses email qui ressemblent à des adresses jetables. Apple Hide My Email, Firefox Relay, les alias Proton Mail, SimpleLogin et addy.io créent des adresses de transfert avec des formats inhabituels. Une blocklist trop stricte peut les bloquer par erreur.

La différence importante : ces adresses transfèrent les emails vers une vraie boîte appartenant à une vraie personne qui a choisi de protéger sa vie privée. Bloquer ces utilisateurs, c'est perdre de vrais clients, pas empêcher une fraude.

Deux mesures aident à éviter ce problème. Premièrement, maintenez une liste de services de relais de confidentialité connus et ignorez toutes les vérifications pour ces domaines :

PRIVACY_RELAY_DOMAINS = {
    "privaterelay.appleid.com",
    "relay.firefox.com",
    "simplelogin.co",
    "addy.io",
    "anonaddy.com",
}

def should_skip_check(email: str) -> bool:
    domain = email.rsplit("@", 1)[-1].lower()
    return domain in PRIVACY_RELAY_DOMAINS

Deuxièmement, utilisez des seuils de risk_score plutôt qu'une correspondance binaire sur le domaine. Une adresse de transfert provenant d'un service de confidentialité connu aura généralement un score bas. Un domaine jetable inconnu créé la semaine dernière aura un score élevé. C'est là que l'API Veille apporte le plus de valeur.

Avant d'activer toute logique de blocage en production, faites-la fonctionner en mode test pendant une semaine : enregistrez ce qui aurait été bloqué sans rejeter aucune requête. Examinez les résultats manuellement. Si de vrais utilisateurs apparaissent dans les enregistrements, ajustez vos seuils.

Une approche par couches

Aucune vérification unique ne suffit à elle seule. Un système fiable combine plusieurs couches :

  1. Liste blanche des services de confidentialité - vérifiée en premier ; les adresses de ces domaines passent toutes les autres vérifications
  2. Blocklist statique - vérification rapide, bloque immédiatement les fournisseurs jetables les plus connus
  3. API Veille - vérification en temps réel pour tout ce qui a passé la liste statique, en utilisant disposable, dns.mx et risk_score
  4. Comportement après inscription - les comptes qui n'ouvrent jamais un email, ne terminent jamais l'onboarding et ne montrent aucune activité après 7 jours méritent d'être vérifiés, même s'ils ont passé les contrôles initiaux

Logique de décision :

Signal Action
Domaine sur la liste blanche Autoriser
Domaine sur la blocklist Refuser au formulaire d'inscription
disposable: true depuis l'API Refuser au formulaire d'inscription
risk_score ≥ 75 Refuser au formulaire d'inscription
risk_score 50–74 Autoriser et signaler pour vérification manuelle
Aucune activité après 7 jours Archiver et retirer des listes actives

FAQ

À quelle fréquence faut-il mettre à jour la blocklist ?

Une fois par semaine suffit pour la plupart des équipes. Configurez une tâche automatique pour télécharger la dernière version et la recharger en mémoire. Mettre à jour plus souvent apporte peu d'avantages supplémentaires ; mettre à jour moins souvent signifie manquer les nouveaux fournisseurs identifiés.

Faut-il bloquer les adresses génériques comme info@entreprise.com ?

Cela dépend de votre produit. Pour les inscriptions grand public, les adresses génériques comme info@ ou admin@ indiquent souvent une boîte partagée ou un lead de faible qualité. Pour les produits destinés aux entreprises, ces adresses sont parfois les seules disponibles publiquement. Utilisez le champ role_account de l'API Veille pour les signaler séparément plutôt que de les bloquer directement, puis gérez-les avec un parcours d'onboarding différent.

Qu'en est-il des domaines catch-all ?

Certains domaines acceptent les emails envoyés à n'importe quelle adresse, même si aucune vraie boîte n'existe. Une blocklist statique ne peut pas détecter cela. Utilisez smtp_valid avec qualification_check=true dans l'API Veille pour vérifier qu'une boîte spécifique peut réellement recevoir des emails, et pas seulement que le domaine est configuré.

Peut-on bloquer tous les fournisseurs email gratuits ?

Non. La plupart des utilisateurs légitimes s'inscrivent avec des fournisseurs gratuits comme Gmail, Outlook ou Yahoo. Bloquer les fournisseurs gratuits éliminerait la majorité de vos vrais utilisateurs. La bonne distinction est entre jetable et permanent, pas entre gratuit et payant.

Existe-t-il une liste qui couvre tous les domaines jetables ?

Non. De nouveaux services d'emails jetables sont créés régulièrement, souvent dans le but précis d'éviter les blocklists existantes. L'approche la plus efficace consiste à combiner une liste statique pour les fournisseurs connus avec une API en temps réel pour tout le reste.

Ressources Veille

Veille suit 953+ fournisseurs d'emails jetables, organisés en 9 catégories : boîtes 10 minutes, services temporaires, adresses jetables à usage unique, boîtes poubelle, générateurs de faux emails, services de transfert anonyme, services d'alias et de relais, outils de confidentialité, et autres. La base de données est mise à jour chaque semaine.

Deux outils gratuits à utiliser avec ce guide :

  • Annuaire des fournisseurs d'emails jetables - parcourez les 953+ fournisseurs suivis, avec une catégorie et une description pour chacun
  • Outil de comparaison des blocklists - entrez n'importe quel domaine et vérifiez s'il est listé dans 12 blocklists open source simultanément, dont disposable-email-domains/disposable-email-domains, disposable/disposable-email-domains, 7c/fakefilter, FGRibreau/mailchecker, et d'autres

Pour la détection en temps réel à l'inscription - où vous avez besoin de disposable, risk_score et smtp_valid retournés immédiatement - l'API Email Validation de Veille couvre ce qu'aucune liste statique ne peut faire.

Articles connexes