mailpool_domain_fix
Edit a Mailpool domain's DNS records — preview first, then apply.
dry_run=True (the default) reads the current records and returns the
exact diff (added, removed) without writing anything. Re-call with
dry_run=False to apply. Nothing is sent when there is no difference.
Changes, combinable:
spf_hard_fail=True— end the apex SPF record in-allinstead of~all. Only once every service sending as this domain is listed.dmarc_report_email— where DMARC reports go. The record is also normalised:fo,rf,riare dropped, policy and alignment kept. Mailpool always publishes the address asruaANDruf. ⚠️ A domain without_dmarcgets one with p=quarantine; sp=quarantine; pct=100.tracking_host+tracking_target— a custom tracking domain, e.g.track→custom.lemlist.com(the target comes from the sending tool). Replaces any CNAME already on that host.add_records— NEW records next to the existing ones, e.g. a verification TXT a sending tool asks for. Never a second SPF: to change SPF, usespf_hard_failor remove the old record and add the new one in the same call.remove_records— records to delete, matched exactly.
Safety: a change that would add an audit error (second SPF or _dmarc,
MX, SPF or DKIM gone, CNAME next to other records) is refused, preview
included. A DNS write replaces the WHOLE record set, so the full set is
always sent, read back, and the previous set restored if a record went
missing. Public DNS follows within ~5 minutes. After dry_run=False, an
error whose reason is dns_outcome_unknown, dns_not_kept or
partially_applied means records may have changed: re-read them with
mailpool_domains(op="dns") before calling again.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"domain_id": "<domain_id>"
},
"name": "mailpool_domain_fix"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| _org | No | Org (id) de CET APPEL. `oto_list_orgs()`. | |
| _group | No | Équipe (id) de CET APPEL, sous son org parente. | |
| _run_id | No | OBLIGATOIRE à chaque appel dès `run_start` ou `data_claim_next` : sans lui, l'écriture sur une ligne réservée est refusée. Hérité seulement si le serveur tient un run actif — n'y compte pas. | |
| dry_run | No | preview only (default True). | |
| _project | No | Projet (id) de CET APPEL — jeton PRIMAIRE. `oto_project(op='list')`. | |
| _instance | No | Instance de connecteur PRÉCISE (un credential exact). `oto_instance(op='list')`. | |
| domain_id | Yes | Mailpool domain id. | |
| add_records | No | records to add next to the existing ones. | |
| spf_hard_fail | No | switch SPF to `-all`. | |
| tracking_host | No | tracking subdomain label (e.g. `track`). | |
| remove_records | No | records to delete (exact match). | |
| tracking_target | No | its CNAME target, given by the sending tool. | |
| dmarc_report_email | No | DMARC report address. |