| Mechanism | Value | Copy |
|---|---|---|
| {{ t.qualifier + t.mechanism }} | {{ t.value }} |
| SPF Check | Result | Copy |
|---|---|---|
| {{ c.label }} | Pass Fail |
Sender Policy Framework records state which servers may send mail for a domain and help receivers decide whether to accept a message. Checking this record clarifies who is authorized and highlights configuration risks that can weaken delivery.
Enter one domain and run a quick lookup so you see the published text and a readable breakdown of its parts. A Sender Policy Framework record checker for domains helps you spot issues early and understand the effect of each mechanism on delivery.
Results summarize the record, the time to answer, and the number of lookups it can trigger, followed by a pass or fail view of common pitfalls. You can reuse the parsed parts for audits and change tracking when planning updates with your team.
For a simple example, a domain that ends with a strict rule signals that only listed sources are allowed, while permissive endings may invite unwanted mail. Consistent entries and clear endings tend to reduce surprises for receivers.
Treat results as configuration feedback rather than proof of sender identity. Combine this check with other mail controls for a fuller picture.
This tool inspects Sender Policy Framework (SPF) data published as Domain Name System (DNS) TXT records for a single domain. It retrieves answers through DNS over HTTPS (DoH), then selects the primary SPF line and parses it into qualifiers and mechanisms for interpretation.
The computation extracts the SPF string that starts with v=spf1, picks the longest such line when multiple are present, and splits it into tokens. From these tokens it estimates the DNS lookup count by tallying mechanisms that can induce lookups and evaluates a checklist of safety and hygiene rules.
Interpretation emphasizes three outcomes: whether a valid SPF line is present, whether the policy terminates cleanly, and whether the estimated lookup count stays within common operational limits. Borderline cases near limits should be reviewed before adding new includes or hosts.
Comparisons are meaningful when the domain and record text are unchanged and the same parsing and lookup rules are applied. Network timing varies with resolver conditions and should not be used as a reliability metric.
Accept: application/dns-json header.v=spf1; choose the longest line.v=spf1.+, -, ~, ?), mechanism, and value.include, a, mx, ptr, exists, redirect}.| Symbol | Meaning | Unit/Datatype | Source |
|---|---|---|---|
D |
Domain name | String | Input |
R |
Primary SPF record line | String | Derived |
T |
Time To Live | s | Derived |
t |
Lookup elapsed time | ms | Derived |
L |
Estimated DNS lookups | count | Derived |
n |
Record length | characters | Derived |
q |
Qualifier on a token | + | - | ~ | ? |
Derived |
m |
Mechanism name | String | Derived |
~all, the terminator is last, and the lookup estimate is modest. Tightening to -all would reject non‑listed senders.
| Threshold Band | Lower Bound | Upper Bound | Interpretation | Action Cue |
|---|---|---|---|---|
| Lookup count safe | 0 | 10 | Within estimated DNS lookup budget. | Proceed; review before adding includes. |
| Record length safe | 0 | 255 | Fits a single TXT string. | Shorten if approaching the limit. |
| Terminator strict | ~ or - | ~ or - | Policy ends with ~all or -all. |
Avoid permissive endings. |
all order |
last | last | Ending mechanism appears last. | Move it to the end if needed. |
| Field | Type | Min | Max | Step/Pattern | Error Text | Placeholder |
|---|---|---|---|---|---|---|
| Domain | String | 1 | — | Trailing dot removed | “Domain is required”, “No SPF record found”, “Lookup failed” | example.com |
| Input | Accepted Families | Output | Encoding/Precision | Rounding |
|---|---|---|---|---|
| Domain name | ASCII labels | SPF line, tokens, checks, TTL, time | UTF‑8 text; JSON and CSV available | Elapsed time rounded to nearest ms |
application/dns-json.v=spf1 line is parsed when multiple lines exist.ptr usage is flagged.+all are flagged.Requests are sent from the browser to a public DNS over HTTPS resolver; the site does not retain inputs or outputs on a server. Use results responsibly and avoid exposing sensitive internal hostnames.
Sender Policy Framework inspection produces a parsed record, an estimated lookup count, and a checklist summary.
example.com returns a record that ends with -all, includes one include, and passes the lookup limit.You now have a concise view to decide whether to adjust sources or qualifiers.
No server stores your input or results; requests are made from your browser to a DNS resolver.
Clipboard and downloads stay on your device.It counts mechanisms in the current line that induce DNS lookups. It does not expand includes, so treat it as a conservative estimate.
Complex include chains may change real resolver behavior.TTL is in seconds from the DNS answer and time is milliseconds measured locally during the query.
Network and cache conditions affect both.Use ASCII labels. Internationalized names are not converted in this package.
Convert to ASCII externally before input.No. A network request to a DNS resolver is required to read TXT records.
Try again when connected.Values near limits, such as lookup count close to 10 or record length near 255, are risky when adding new sources. Consider simplifying before expanding.
Re‑test after each change.This utility is for Sender Policy Framework records. Certificate signing requests are out of scope.
Use a dedicated CSR inspector.No licensing terms are included in the package. Use is not gated by sign‑in or server access in this build.
Check your organization’s policies before distribution.+all with ~all or -all after testing.a or mx.~all or -all that sets the default.