E-mails et domaines
Vérifier le DMARC
Couverture: Fonctionne avec les domaines de tous les pays. Nous cherchons l’enregistrement comme le font les serveurs de réception : sur le domaine lui-même et, s’il n’en a pas, sur ses domaines parents (jusqu’à cinq niveaux). Les adresses des rapports ne sont affichées que par leur domaine.
Ouvrir l’outilSur cette page
Objectif
Vérifiez l’enregistrement DMARC d’un domaine : sa politique (none, quarantine ou reject), s’il vient d’un domaine parent, la part des e-mails à laquelle il s’applique, l’alignement et la destination des rapports.
Prérequis
Tout le monde peut lire ces guides, sans compte. Certains outils nécessitent Pro, comme indiqué dans chaque guide.
Le DMARC indique aux serveurs de réception quoi faire d’un e-mail qui prétend venir d’un domaine mais échoue à ses vérifications : le remettre, l’envoyer dans les spams ou le rejeter. Saisissez un domaine, une adresse e-mail ou un lien et nous vous montrerons sa politique DMARC et ce qu’elle signifie.
Mode d’emploi
Saisissez le domaine que vous voulez vérifier, ou collez une adresse e-mail ou un lien : nous n’utilisons que son domaine.
Appuyez sur « Vérifier le DMARC ». Nous cherchons son enregistrement à _dmarc et, s’il n’y en a pas, dans ses domaines parents, comme le font les serveurs de réception.
Regardez la politique : « reject » ou « quarantine » sur 100 % des e-mails protège le domaine ; « none » ne fait que surveiller.
Exemple fictif
Exemple inventé, pas une recherche réelle. N’appelez pas et n’ouvrez pas ses liens.
v=DMARC1; p=reject; rua=mailto:[email protected]Interpréter le résultat
Ce domaine n’a pas de DMARC: Il ne demande pas aux serveurs de réception d’arrêter les e-mails qui se font passer pour lui, ce qui facilite l’usurpation de son identité.
L’enregistrement DMARC contient des erreurs: Les serveurs de réception peuvent l’ignorer, ce qui laisse le domaine comme s’il n’avait pas de DMARC. Les signaux ci-dessous indiquent ce qui ne va pas.
Le DMARC ne fait que surveiller: La politique est « none » : le domaine reçoit des rapports, mais les faux e-mails en son nom sont quand même remis.
Le DMARC ne protège qu’une partie des e-mails: La politique s’applique à une part des e-mails qui échouent ; les autres sont remis comme s’il n’y avait pas de politique.
Les faux e-mails vont dans les spams: La politique est « quarantine » : les serveurs de réception envoient dans le dossier des spams les e-mails qui échouent aux vérifications.
Les faux e-mails sont rejetés: La politique est « reject » : les serveurs de réception refusent les e-mails qui se font passer pour ce domaine. C’est la protection la plus forte.
none : surveiller seulement
quarantine : envoyer en spam
reject : refuser la remise
Limites
Nous lisons les enregistrements DNS publics du domaine. Si vous saisissez une adresse e-mail ou un lien, seul son domaine quitte votre navigateur. Nous ne conservons pas le domaine que vous consultez.
Résoudre un problème
Cela ne ressemble pas à un domaine public. Essayez par exemple avec example.com.
Le DNS n’a pas répondu à temps. Réessayez dans quelques secondes.
Vous avez lancé beaucoup de vérifications d’affilée. Attendez une minute et réessayez.
Utiliser avec l’API
Nécessite une API key et des crédits. Chaque appel abouti coûte 1 crédit, même sans données. Un compte Pro actif inclut 20 crédits par mois calendaire UTC, partagés entre toutes les routes de l’API et consommés en premier ; les crédits mensuels non utilisés ne sont pas reportés. Les crédits achetés sur la page de votre compte fonctionnent sans Pro et n’expirent jamais.
Les erreurs ne sont jamais facturées : 401 invalid_api_key (clé absente ou invalide), 403 pro_required (ni crédits Pro ni crédits achetés), 422 entrée invalide, 429 quota_exceeded (plus de crédits), rate_limit_exceeded ou ai_busy (l’IA de sms-check est à pleine capacité), 503 tool_warming (les données sont encore en préparation) ou tool ou fournisseur indisponible. Après un 429 ou un 503, réessayez une fois écoulées les secondes indiquées dans l’en-tête Retry-After.
La politique DMARC d’un domaine (RFC 7489, avec la remontée DMARCbis vers les domaines parents) : l’enregistrement, l’endroit où il a été trouvé, la politique effective (none, quarantine ou reject), le pourcentage, l’alignement DKIM et SPF et les domaines qui reçoivent les rapports, jamais une adresse complète. Rien n’est enregistré.
Envoyez le corps JSON à la route propre au tool, ou à POST /v2/tools en ajoutant le champ tool. Les deux routes renvoient le même résultat.
POST https://api.nocall.io/v2/dmarc-check
POST https://api.nocall.io/v2/tools {"tool":"dmarc-check","domain":"example.com"}Paramètres
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
| domain | string (1–320) | Oui | Un domaine, ou une adresse e-mail ou un lien dont le domaine est utilisé, jusqu’à 320 caractères. Noms publics uniquement : les adresses IP, les noms à un seul label et les noms à usage spécial (.local, .internal, .test…) renvoient un 422. |
REQUEST_ID="$(uuidgen)" && [ -n "$REQUEST_ID" ] &&
curl --request POST 'https://api.nocall.io/v2/dmarc-check' \
--header "Authorization: Bearer $NOCALL_API_KEY" \
--header 'Content-Type: application/json' \
--header "Idempotency-Key: $REQUEST_ID" \
--data '{"domain":"example.com"}'import json
import os
import urllib.request
import uuid
api_key = os.environ.get('NOCALL_API_KEY')
if not api_key:
raise SystemExit('Set NOCALL_API_KEY')
request = urllib.request.Request(
'https://api.nocall.io/v2/dmarc-check',
method='POST',
data=json.dumps({'domain': 'example.com'}).encode(),
headers={
'Authorization': 'Bearer ' + api_key,
'Content-Type': 'application/json',
'Idempotency-Key': str(uuid.uuid4()),
},
)
with urllib.request.urlopen(request, timeout=30) as response:
result = json.load(response)
print(result['data']['result'], result['meta']['unitsCharged'])import { randomUUID } from 'node:crypto';
const requestId = randomUUID();
const apiKey = process.env.NOCALL_API_KEY;
if (!apiKey) throw new Error('Set NOCALL_API_KEY');
const response = await fetch('https://api.nocall.io/v2/dmarc-check', {
method: 'POST',
headers: {
Authorization: 'Bearer ' + apiKey,
'Content-Type': 'application/json',
'Idempotency-Key': requestId,
},
body: JSON.stringify({ domain: 'example.com' }),
});
const result = await response.json();
if (!response.ok) throw new Error(result.error?.code ?? 'request_failed');
console.log(result.data.result, result.meta.unitsCharged);Exemple de réponse (200)
Il s’agit de l’exemple documenté dans la référence de l’API. Les recherches utilisent un numéro fictif ; les agrégats et les réponses de l’IA montrent la structure du résultat, pas des données réelles.
{
"data": {
"tool": "dmarc-check",
"result": {
"domain": "example.com",
"domainAscii": "example.com",
"found": true,
"record": "v=DMARC1; p=none; rua=mailto:[email protected]",
"foundAt": "example.com",
"inherited": false,
"policy": "none",
"subdomainPolicy": null,
"effectivePolicy": "none",
"percentage": 100,
"alignment": {
"dkim": "relaxed",
"spf": "relaxed"
},
"reports": {
"aggregate": [
"example.com"
],
"failure": []
},
"signals": [
"policy_none"
],
"valid": true,
"attention": true
}
},
"meta": {
"requestId": "req_example",
"unitsCharged": 1,
"usage": {
"periodStart": "2026-10-01",
"unitLimit": 20,
"unitsUsed": 3,
"unitsRemaining": 17
}
}
}Champs du résultat (data.result)
| Champ | Type | Description |
|---|---|---|
| domain | string | Le domaine en Unicode. |
| domainAscii | string | Le même domaine en ASCII (punycode), tel que le voit le DNS. |
| found | boolean | Indique si un enregistrement DMARC s’applique au domaine (le sien ou celui d’un parent). |
| record | string | null | L’enregistrement DMARC ; null s’il n’y en a aucun ou plus d’un. |
| foundAt | string | null | Le domaine dont l’enregistrement _dmarc s’applique (celui-ci ou un parent), en Unicode. |
| inherited | boolean | Indique si l’enregistrement est celui d’un domaine parent (remontée de l’arbre DMARCbis). |
| policy | "none" | "quarantine" | "reject" | null | La balise p= : none, quarantine ou reject. |
| subdomainPolicy | "none" | "quarantine" | "reject" | null | La balise sp=, ou null. |
| effectivePolicy | "none" | "quarantine" | "reject" | null | Ce qui s’applique à ce domaine : p, ou sp quand l’enregistrement est hérité. |
| percentage | integer (0–100) | pct : la part des e-mails en échec à laquelle la politique s’applique, 100 en son absence. |
| alignment | object | L’alignement DKIM et SPF (adkim et aspf) : relaxed ou strict. |
| reports | object | Les domaines qui reçoivent les rapports agrégés (rua) et d’échec (ruf) ; jamais une adresse complète. |
| signals | array<"no_dmarc" | "multiple_records" | "syntax_error" | "policy_none" | "partial_percentage" | "no_aggregate_reports" | "inherited" | "weaker_subdomain_policy"> | no_dmarc, multiple_records, syntax_error, policy_none, partial_percentage, no_aggregate_reports, inherited ou weaker_subdomain_policy. |
| valid | boolean | Indique si l’enregistrement peut être analysé et a une politique. |
| attention | boolean | Indique si le résultat mérite un examen : pas de DMARC, un enregistrement invalide, la politique none ou un pourcentage inférieur à 100. |
Questions fréquentes
Qu’est-ce que le DMARC ?
Domain-based Message Authentication, Reporting and Conformance : un enregistrement DNS qui indique aux serveurs de réception quoi faire des e-mails qui utilisent un domaine dans « De » mais échouent au SPF et au DKIM. Il demande aussi des rapports, pour que le propriétaire voie qui envoie des e-mails au nom du domaine.
Que signifient none, quarantine et reject ?
« none » ne fait que surveiller : les e-mails sont remis normalement et le propriétaire reçoit des rapports. « quarantine » envoie dans les spams les e-mails qui échouent. « reject » les refuse. Les domaines commencent généralement par « none », lisent les rapports et montent progressivement jusqu’à « reject ».
Si un domaine a le DMARC, tous ses e-mails sont-ils authentiques ?
Non. Le DMARC rend difficile l’utilisation de ce domaine exact dans « De », mais un escroc peut enregistrer un domaine ressemblant avec son propre DMARC. Vérifiez le domaine de l’expéditeur lettre par lettre, ou collez les en-têtes dans « Cet e-mail est-il authentique ? ».
Pourquoi indique-t-il que l’enregistrement est hérité ?
Un sous-domaine sans enregistrement propre (mail.example.com) utilise celui de son domaine parent (example.com), avec la politique des sous-domaines (sp) s’il en a une.
