Skip to content

no_spf

A business domain publishes no SPF record

The domain has no SPF policy in DNS, which a maintained business domain almost always has; free providers are exempt because theirs is known.

risk weight
+10
dataset
live-dns
reads from
has_spf
verdict reason
none: a score-only signal

What it means

has_spf is read only once the domain resolves: false is a checked negative, null a failed lookup, and the weight applies only when free_provider is false.

It reads from has_spf and comes with no verdict reason.

What to do

A weak signal on its own; on a domain check it is the first thing a sender should fix.

Example response

{
    "email": "[email protected]",
    "deliverable": "deliverable",
    "has_spf": false,
    "free_provider": false,
    "risk_signals": [
        {
            "signal": "no_spf",
            "weight": 10,
            "dataset": "live-dns"
        }
    ]
}

Abbreviated: a real answer carries all 46 fields, listed in the verify-email reference. The risk_signals entry shown is the one this signal adds; the weights of every entry in the list sum to risk_score.

Related

markdown version: /docs/signals/no_spf.md