Guides

Comment bloquer les e-mails jetables à l'inscription

Trois façons de repérer les adresses temporaires sur votre formulaire d'inscription, d'une liste figée à une API, avec du code, et les erreurs qui bloquent de vrais utilisateurs.

7 min de lecture · Mis à jour le 2026-10-31 · Attrelix

Ce qui compte comme e-mail jetable

Une adresse jetable (ou temporaire) provient d'un service qui fournit des boîtes sans inscription, généralement pour quelques minutes ou quelques heures. Mailinator, Guerrilla Mail, 10 Minute Mail et des milliers de domaines moins connus fonctionnent ainsi. Ils sont utiles pour éviter les newsletters, et tout aussi utiles pour créer beaucoup de comptes.

Trois catégories voisines sont souvent confondues avec eux et demandent un traitement différent :

  • Les relais de confidentialité comme privaterelay.appleid.com de Se connecter avec Apple, duck.com de DuckDuckGo ou Firefox Relay transfèrent vers une vraie boîte durable. Les bloquer pénalise des clients soucieux de leur vie privée. Traitez-les au plus comme un petit signal de risque.
  • Les fournisseurs gratuits comme Gmail, Outlook.com ou Yahoo ne sont pas jetables. Leur schéma d'abus est différent : des alias d'une même boîte, traités dans notre guide sur les alias Gmail.
  • Les domaines qui ne reçoivent pas de courrier du tout — fautes de frappe comme gmial.com ou domaines inventés. Il vaut aussi la peine de les repérer, car personne ne peut y confirmer un compte.

Option 1 : une liste figée dans votre code

Des listes open source de domaines jetables sont maintenues sur GitHub et comptent des dizaines de milliers d'entrées. Le plus simple est d'en charger une dans un ensemble et de vérifier le domaine à l'inscription :

# Python
DISPOSABLE = set(open("disposable_domains.txt").read().split())

def is_disposable(email: str) -> bool:
    domain = email.rsplit("@", 1)[-1].strip().lower().rstrip(".")
    parts = domain.split(".")
    # sous-domaines aussi : mail.tempdomain.com -> tempdomain.com
    return any(".".join(parts[i:]) in DISPOSABLE for i in range(len(parts) - 1))

Cela ne coûte rien et n'ajoute aucune latence. Les inconvénients :

  • Elle vieillit. De nouveaux domaines jetables apparaissent en permanence, et beaucoup de services changent de domaine précisément pour contourner les listes. Une liste copiée il y a six mois rate les plus récents, ceux justement qu'utilisent les abuseurs.
  • Les listes divergent. Chaque liste inclut des domaines différents, et certaines contiennent des erreurs. En fusionner plusieurs donne une meilleure couverture, mais plus de maintenance.
  • Il faut une tâche de mise à jour et un déploiement (ou un rechargement) à chaque changement.

Option 2 : vérifier le serveur de courrier (MX)

Une requête DNS sur les enregistrements MX du domaine indique s'il peut recevoir du courrier. Elle repère les fautes de frappe et les domaines inventés qu'aucune liste ne contient :

# Python, avec dnspython
import dns.resolver

def can_receive_mail(domain: str) -> bool:
    try:
        return len(dns.resolver.resolve(domain, "MX", lifetime=2)) > 0
    except dns.resolver.NXDOMAIN:
        return False
    except Exception:
        return True  # un souci DNS n'est pas la faute de l'utilisateur : laisser passer

Mettez le résultat en cache par domaine, gardez un délai court et ne refusez jamais une inscription parce que votre résolveur DNS a eu un raté. Notez qu'une vérification MX n'attrape pas les services jetables : ils reçoivent parfaitement le courrier, c'est leur métier.

Option 3 : une API qui fait les deux et se tient à jour

Une API sort de votre code la maintenance de la liste et les requêtes MX. Attrelix fusionne plusieurs listes publiques, les met à jour chaque jour, note la date de première apparition de chaque domaine, vérifie le serveur de courrier et normalise les alias Gmail dans le même appel — et note aussi le réseau et l'appareil, pour une décision par inscription plutôt qu'un simple verdict sur l'e-mail. Vous pouvez tester la recherche de domaine gratuitement avec le vérificateur d'e-mails jetables.

curl https://attrelix.com/v1/check \
  -H "Authorization: Bearer $ATTRELIX_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"email":"someone@mailinator.com","ip":"203.0.113.9"}'

La réponse contient email.disposable, email.relay, email.mx et l'adresse normalisée, avec la décision globale et ses raisons.

Les erreurs qui bloquent de vrais utilisateurs

  • Bloquer les relais. Le relais privé d'Apple est utilisé par de nombreux utilisateurs d'iPhone qui se connectent avec Apple. Le bloquer, c'est les bloquer.
  • Bloquer sur une erreur DNS. Un délai dépassé ne prouve pas qu'un domaine est faux.
  • Des listes trop larges. Certaines listes communautaires incluent de petits fournisseurs légitimes ou des domaines d'entreprise. Si un client se plaint, autorisez le domaine plutôt que de discuter.
  • Un message d'erreur sans issue. « E-mail invalide » déroute une vraie personne qui a saisi une vraie adresse. Dites que les boîtes temporaires ne sont pas acceptées et demandez une autre adresse.

Ce qu'une vérification de jetables n'attrape pas

Bloquer les domaines jetables augmente un peu le coût de l'abus : l'abuseur passe à Gmail. Dès lors, l'abus prend la forme de nombreux comptes derrière une boîte ou un appareil. C'est là qu'intervient la détection des multi-comptes.

En résumé

  • Distinguez domaines jetables, relais de confidentialité, fournisseurs gratuits et domaines morts.
  • Une liste figée est un bon début mais vieillit ; mettez-la à jour ou utilisez une API.
  • Utilisez le MX pour les domaines morts, et laissez passer en cas de souci DNS.
  • Attendez-vous à ce que les abuseurs passent aux alias Gmail, et normalisez les adresses.

Plus de guides