Vérificateur de syntaxe e-mail
Cet outil contrôle la structure d’une adresse e-mail : présence de l’arobase, partie locale, nom de domaine et extension conformes aux règles d’écriture. Il indique si l’adresse est correctement formée avant que vous ne l’enregistriez dans un formulaire ou une base de contacts. Tout le contrôle se déroule dans votre navigateur.
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
Ce que « bien formée » signifie
Une adresse valide respecte une grammaire précise : une partie locale avant l’arobase, le signe @, puis un nom de domaine suivi d’une extension. L’outil vérifie les caractères autorisés, la présence d’un seul @, l’absence d’espace et un domaine plausible. Il accepte aussi bien les extensions récentes (.shop, .paris, .bzh) que les classiques (.fr, .com). Un résultat « valide » confirme que la saisie est propre, prête à être enregistrée sans faute de frappe manifeste.
Syntaxe correcte n’est pas boîte active
Point essentiel : une adresse peut être parfaitement écrite et pourtant ne mener à aucune boîte réelle. Le contrôle de syntaxe ne se connecte à aucun serveur ; il juge la forme, pas l’existence. Pour savoir si le domaine peut recevoir des messages, il faut interroger ses enregistrements de réception — une opération distincte qui, elle, passe par le réseau. Gardez les deux étapes séparées : d’abord la forme, ensuite l’acheminement.
Rien ne quitte votre navigateur
L’analyse s’exécute localement, sur votre appareil. Les adresses que vous testez ne sont ni envoyées, ni journalisées, ni conservées sur nos serveurs : elles restent sous vos yeux, dans la page. Le détail compte quand vous manipulez les coordonnées de vos clients ou de vos abonnés, là où le RGPD impose la prudence. Vous fermez l’onglet et il n’en reste aucune trace.
Au-delà de la page web
Le contrôle se fait ici, sur cette page, gratuitement. Pour l’intégrer à un flux automatisé — validation à la volée d’un formulaire d’inscription, nettoyage d’un export — la même vérification est accessible via l’API, facturée à l’usage. Des canaux e-mail et messagerie sont prévus. Vous choisissez le canal ; la logique de contrôle, elle, ne change pas.
Cas d’usage
Formulaire d’inscription
Le Studio Lumen SAS valide le champ e-mail de son formulaire de contact avant enregistrement : une saisie du type « camille.moreau@@gmail.com » est refusée sur-le-champ, ce qui évite un abonné fantôme dans la base.
Nettoyer un export avant import
Avant d’importer un fichier d’adresses dans son outil d’e-mailing, Julien Lefèvre passe la colonne au contrôle de forme et repère les lignes vides, les espaces parasites et les extensions incomplètes (« .f » au lieu de « .fr »).
Adresse dictée au téléphone
À l’accueil de la Menuiserie Rousseau & Fils, une adresse notée au téléphone est vérifiée dans la foulée : on confirme au client qu’elle est bien formée avant de raccrocher, sans avoir à lui envoyer un e-mail de test.
Questions fréquentes
Quelle est la différence entre syntaxe et existence réelle ?
La syntaxe juge la forme de l’adresse : caractères, arobase, domaine. Elle ne dit pas si une boîte reçoit vraiment le courrier. Pour cela, il faut interroger les enregistrements de réception du domaine, une opération qui passe par le réseau et se fait séparément.
Mes adresses sont-elles envoyées sur vos serveurs ?
Non. Le contrôle s’exécute entièrement dans votre navigateur. Les adresses testées ne sont ni transmises, ni enregistrées, ni journalisées de notre côté. Elles disparaissent dès que vous fermez la page.
Est-ce vraiment gratuit ?
Oui, sans limite et sans inscription pour l’usage dans le navigateur, puisque tout se calcule sur votre appareil. Si vous automatisez le contrôle via l’API, il est facturé $0.002 par requête — le tarif est affiché, sans abonnement ni surprise.
Les extensions récentes comme .paris ou .shop sont-elles acceptées ?
Oui. L’outil reconnaît les nouvelles extensions au même titre que .fr ou .com, tant que la structure du domaine reste cohérente. Une extension peu courante mais bien formée n’est pas rejetée d’office.
Faut-il créer un compte ?
Non. Il n’y a pas de compte à ouvrir : vous collez l’adresse et le résultat s’affiche. L’achat éventuel de requêtes via l’API se fait directement, en une fois, sans espace client à gérer.
Puis-je contrôler plusieurs adresses d’un coup ?
Dans la page, vous vérifiez une adresse à la fois. Pour passer une liste entière d’abonnés en revue en une seule opération, une capacité dédiée au traitement par lots existe côté serveur, facturée à l’usage.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/verify/email-syntax \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/verify/email-syntax", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/verify/email-syntax",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/verify/email-syntax", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/verify/email-syntax", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"items": [
"valor-1",
"valor-2"
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "verify.email_syntax",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |