SPF Validator
Useful for mail operations, audits, and agent workflows that need deterministic SPF findings before changing DNS.
Use This Skill
Endpoints
| Method | Path | Status | Modes |
|---|---|---|---|
| POST | /api/tools/spf/validate |
live | json |
| POST | /api/tools/spf/evaluate |
live | json |
Input Contract
Provide a domain. Optional sender_ip adds sender simulation without requiring Mail From or HELO. Optional spf_record and dns_records can be supplied for deterministic offline analysis. The evaluate endpoint also accepts mail_from and helo.
Output Contract
Returns parsed terms, recursive include/redirect traversal, DNS lookup and void lookup counts, sender simulation results when requested, and structured findings.
Errors
Invalid domain, invalid sender IP, malformed SPF mechanisms, multiple SPF records, loop detection, or DNS lookup-limit findings.
Auth and Limits
Anonymous JSON API for initial rollout. Browser form submissions use standard Laravel CSRF protection.
JSON API uses the standard API throttle. DNS traversal is bounded by SPF lookup limits and loop detection.
Examples
Requests
POST /api/tools/spf/validate {"domain":"example.com"}
POST /api/tools/spf/evaluate {"domain":"example.com","sender_ip":"192.0.2.10","mail_from":"sender@example.com"}
Responses
{"tool":"spf.validate","domain":"example.com","dns":{"lookup_count":2},"findings":[{"code":"SPF_RECORD_PARSED","severity":"Info"}]}
FAQ
Can agents avoid live DNS?
Yes. Provide spf_record and optional dns_records in the request to analyze a deterministic policy snapshot.
Is this the same as the SPF Flattener?
No. The validator explains policy health and sender outcomes. The flattener produces a flattened SPF record for DNS publishing.