Configurer un domaine de bout en bout
Voici la boucle qu'exécute un agent. Rien ici n'a besoin d'un humain.-
Déclarez le domaine.
bash
curl -X POST -H "x-api-key: $AGENTMAIL_API_KEY" -H "content-type: application/json" \ -d '{"domain":"atelier-nord.fr"}' \ "https://www.agentsmail.io/api/v1/domains" -
Lisez les enregistrements à publier.
GET /api/v1/domainsles renvoie. Sept en pratique : unTXTpour la preuve de propriété, troisCNAMEDKIM, unMXet unTXTpour le MAIL FROM personnalisé, unTXTpour DMARC. L'enregistrement de preuve vient en premier, et c'est lui qui décide de l'usage. Son nom est_agentmail-challenge.<domain>et sa valeur est le jeton propre à l'organisation. Le DKIM seul ne suffit pas : une identité déjà vérifiée dans le compte du fournisseur renvoieSUCCESSà quiconque la déclare, doncverifiedexige aussi cette preuve. Un nomTXTaccepte plusieurs valeurs — deux organisations qui se transfèrent un domaine peuvent publier côte à côte. L'enregistrement de preuve est servi même quand le fournisseur est injoignable, parce que sa valeur vient de notre propre base de données.json{ "success": true, "data": [ { "id": "…", "domain": "atelier-nord.fr", "dkimStatus": "PENDING", "mailFromStatus": "PENDING", "verified": false, "ownershipProved": false, "lastCheckedAt": "2026-08-12T12:00:00.000Z", "sesUnavailable": false, "dnsRecords": [ {"type": "TXT", "name": "_agentmail-challenge.atelier-nord.fr", "value": "Xy7pQ2rL9mNv4KtB1sZaWg"}, {"type": "CNAME", "name": "abc._domainkey.atelier-nord.fr", "value": "abc.dkim.amazonses.com"}, {"type": "MX", "name": "mail.atelier-nord.fr", "value": "feedback-smtp.eu-west-1.amazonses.com", "priority": 10}, {"type": "TXT", "name": "mail.atelier-nord.fr", "value": "v=spf1 include:amazonses.com ~all"}, {"type": "TXT", "name": "_dmarc.atelier-nord.fr", "value": "v=DMARC1; p=none;"} ] } ] } - Publiez-les chez le bureau d'enregistrement. Cette partie est hors de l'API.
-
Revérifiez.
POST /api/v1/domains/{domainId}/verifyinterroge à nouveau le fournisseur d'e-mail et enregistre la réponse. Interrogez-le régulièrement : la propagation DNS prend de quelques minutes à 72 h. -
Confirmez.
GET /api/v1/merépond désormais"ready": true.
Le DKIM et la propriété conditionnent l'envoi, ensemble.
mailFromStatus et l'enregistrement DMARC améliorent la délivrabilité — un MAIL FROM en attente ne bloque jamais un envoi. Le champ verified signifie utilisable : dkimStatus === "SUCCESS" et la preuve de propriété validée, sur le même domaine. Lisez verified et vous n'aurez jamais à réimplémenter la règle ; lisez ownershipProved et dkimStatus pour savoir lequel des deux enregistrements manque encore.La propriété se prouve une fois, et n'est jamais révoquée
La preuve est un événement daté, pas un état continu. Une fois un domaine prouvé, retirer plus tard l'enregistrementTXT ne la révoque pas — sinon la moindre panne DNS couperait l'envoi. Republier la preuve pour une autre organisation transfère le domaine : un domaine prouvé appartient à exactement une organisation à la fois.
La vérification est uniquement synchrone : elle a lieu quand vous appelez verify ou ouvrez l'écran du domaine. Il n'y a aucune tâche de fond.
Les enregistrements ne sont jamais stockés
Les enregistrements du fournisseur sont relus à chaque appel, parce qu'ils changent si l'identité est recréée. Ne les mettez pas en cache : une copie périmée envoie quelqu'un publier des enregistrements qui ne vérifient plus rien. L'enregistrement de preuve n'est une exception que par son origine — sa valeur est la nôtre, c'est pourquoi il survit à une panne du fournisseur — mais il est servi de la même façon, et vous ne le mettez jamais en cache.Quand le fournisseur d'e-mail est injoignable
Les lectures n'échouent pas.GET /api/v1/domains renvoie le dernier état connu avec "sesUnavailable": true et son lastCheckedAt. verify, lui, échoue — vérifier est précisément ce que vous avez demandé, et prétendre le contraire serait mentir.