Mail configuration check
Runs the MX, SPF and DMARC checks together and checks DKIM for any selectors you supply. DKIM is only checked for given selectors; a missing selector is not proof of missing DKIM.
Updated 2026-10-07
What this tool checks
The mail configuration check runs the MX, SPF and DMARC checks together and returns one report. If you give selectors in a single check, it adds a DKIM record check for each of them, up to five.
Each part behaves as on its own tool page: SPF check, DMARC check, DKIM record check and MX lookup.
Bulk checks
The API runs the MX, SPF and DMARC parts on up to 20 domains in one request.
The bulk check does not take DKIM selectors, so it does not run DKIM. The results keep the order of the input, and duplicates count as items. An item that fails for a technical reason is reported as an error for that item and does not fail the other items. Read bulk checks for the request format.
How to read the result
The report gives an overall status and the findings of each part. If any part could not be completed, the status is unknown, and the findings tell you which part.
Limitations
- DKIM is checked only for the selectors you supply. A missing selector is not proof of missing DKIM.
- The check reads DNS only. It does not test delivery or connect to mail servers.
Use it from code
API reference for Mail configuration check ยท bulk API reference
curl -i "https://api.probekit.dev/v1/mail/check?domain=example.com"curl -i -X POST https://api.probekit.dev/v1/mail/check/bulk \
-H 'content-type: application/json' \
-d '{"domains": ["example.com", "example.org"]}'A request without payment is answered with 402 Payment Required and the exact price. See the API reference.
Bulk
Check several domains in one request. Each item costs $0.024, with a minimum charge of $0.03 per request and at most 20 domains.
| Domains | Price |
|---|---|
| 1 | $0.03 |
| 5 | $0.12 |
| 10 | $0.24 |
| 20 | $0.48 |
Limits
| Input | Domain, DKIM selectors (optional) |
|---|---|
| Deadline | 10 seconds |
| Freshness | Up to 5 minutes, never longer than the record TTL |
| Price | $0.03 per check, $0.024 per item in bulk (minimum $0.03) |
Findings this tool can report
Check (3)
- Warning
CHECK_DEADLINE_EXCEEDEDThe check did not finish within its time limit. - Warning
CHECK_INTERNAL_ERRORThe check failed because of an internal error. - Warning
CHECK_QUERY_BUDGET_EXCEEDEDThe check stopped after reaching its DNS query limit.
DKIM (7)
- Error
DKIM_INVALID_KEYThe DKIM public key is not valid base64. - Warning
DKIM_KEY_REVOKEDThe DKIM key for this selector is revoked (empty p tag). - Error
DKIM_MULTIPLE_RECORDSMore than one DKIM record was found for the selector. - Warning
DKIM_NOT_FOUNDNo DKIM key was found for the given selector. - Error
DKIM_SYNTAX_ERRORThe DKIM record contains a tag that cannot be parsed or has an invalid value. - Info
DKIM_TESTING_MODEThe DKIM record is in testing mode (t=y). - Warning
DKIM_WEAK_KEYThe RSA key is shorter than 1024 bits.
DMARC (10)
- Info
DMARC_INHERITEDThe DMARC policy comes from the organisational domain. - Error
DMARC_INVALID_POLICYThe DMARC record has a missing or invalid p tag. - Error
DMARC_MULTIPLE_RECORDSMore than one DMARC record was found. - Warning
DMARC_NOT_FOUNDNo DMARC record was found for the domain or its organisational domain. - Info
DMARC_NO_RUAThe DMARC record has no aggregate report address (rua). - Info
DMARC_PARTIAL_PCTThe DMARC policy applies to only part of the failing mail (pct below 100). - Info
DMARC_POLICY_NONEThe DMARC policy is p=none (monitoring only). - Error
DMARC_SYNTAX_ERRORThe DMARC record contains a tag that cannot be parsed or has an invalid value. - Info
DMARC_UNKNOWN_TAGThe DMARC record contains tags that are not defined. - Info
DMARC_UNSUPPORTED_REPORT_URIA DMARC report address uses a scheme other than mailto.
DNS (3)
- Error
DNS_DOMAIN_NOT_FOUNDThe DNS resolver reported that the domain does not exist. - Warning
DNS_RESOLVER_FAILUREThe DNS resolver returned a server failure. - Warning
DNS_RESOLVER_TIMEOUTThe DNS resolver did not answer in time.
MX (5)
- Warning
MX_NOT_FOUNDThe domain has no MX records. - Info
MX_NULLThe domain publishes a null MX and does not accept mail. - Error
MX_NULL_WITH_OTHERSA null MX is published together with other MX records. - Error
MX_TARGET_IS_IPAn MX record points to an IP address instead of a host name. - Error
MX_TARGET_UNRESOLVABLEAn MX host has no A or AAAA records.
SPF (13)
- Error
SPF_INCLUDE_LOOPThe SPF chain returns to a domain it already evaluated. - Error
SPF_INCLUDE_NOT_FOUNDAn included or redirected domain has no SPF record. - Info
SPF_MACRO_NOT_EVALUATEDAn SPF record contains macros that were not evaluated. - Error
SPF_MULTIPLE_RECORDSMore than one SPF record was found for a name in the SPF chain. - Warning
SPF_NEUTRAL_ALLThe SPF policy ends with ?all. - Warning
SPF_NOT_FOUNDNo SPF record was found for the domain. - Warning
SPF_NO_ALLThe SPF record has no all mechanism and no redirect. - Error
SPF_PASS_ALLThe SPF policy ends with +all. - Warning
SPF_PTR_MECHANISMAn SPF record uses the ptr mechanism. - Info
SPF_SOFTFAIL_ALLThe SPF policy ends with softfail (~all). - Error
SPF_SYNTAX_ERRORAn SPF record contains a term that cannot be parsed. - Error
SPF_TOO_MANY_LOOKUPSThe SPF record needs more than 10 DNS lookups. - Error
SPF_TOO_MANY_VOID_LOOKUPSMore than two SPF lookups returned no data.
Frequently asked questions
Why is the status unknown?
If any part of the check could not be completed, for example because of a resolver timeout, the overall status is unknown instead of a guess based on the parts that did finish. The findings say which part was incomplete. Running the check again usually helps.
Why is DKIM missing from the report?
DKIM is only checked for selectors you supply, up to 5. A domain can use any number of selectors, so the check never reports 'no DKIM' on its own.
How many domains can I check in bulk?
Up to 20 domains per request. Results come back in the order you sent them, and a duplicate counts as an item.
What does a bulk check cost?
The price is $0.024 per domain, with a minimum of $0.03 per request. A single mail check costs $0.03. See the pricing page.