[ SPF ]

SPF all qualifiers: compare fail, softfail, neutral and pass

Choose the final SPF result deliberately and keep authentication outcomes separate from receiver handling.

By the EmailAuth research team · 4 min read

[ Key points ]

  • A reached all mechanism matches; its qualifier controls the result.
  • Bare all means +all, while earlier matches and errors still matter.
  • Check DMARC alignment and receiver handling separately.
On this page

The all mechanism always matches. Its qualifier therefore determines what SPF says about a connecting address that reaches it. The familiar endings -all, ~all, ?all and +all are four different authentication statements, not four guaranteed delivery actions.

An earlier mechanism may already have returned a result. Read the whole evaluation path before interpreting the last word of the record. RFC 7208 §2.6 and RFC 7208 §5.1 define these semantics.

Compare the four endings

With -all, a sender that reaches all receives fail. The policy says that address is not authorised for the evaluated identity. With ~all, it receives softfail, a weaker negative statement rather than a pass. With ?all, it receives neutral, meaning the policy is not making an authorisation assertion for that address. With +all, it receives pass.

Under RFC 7208 §4.6.2, an unqualified all has the default + qualifier and therefore also passes. That makes a bare all a consequential permission choice, not a harmless terminator. Once all matches, later mechanisms cannot contribute additional permissions.

Worked example: keep the authorised sender constant

Use the synthetic policy v=spf1 ip4:192.0.2.90 QUALIFIERall. For a connection from 192.0.2.90, ip4 matches first and returns pass under every ending. For 192.0.2.91, the first mechanism does not match. The chosen ending then returns fail, softfail, neutral or pass respectively.

Changing ~all to -all does not change the result for the first address in this fixture. It changes the treatment of addresses that were not already matched. That is why the right readiness question is whether all legitimate sending paths have been identified, not whether a common sender passed one test.

A policy consisting of v=spf1 -all authorises no addresses through SPF. It can express a non-sending identity, but it is not a universal instruction that every receiver must discard every message displaying that domain in From.

Keep result and handling separate

SPF returns an authentication result. The receiver decides what to do with the message using local policy and other evidence under RFC 7208 §8.4 and RFC 7208 §8.5. A fail is not proof that every receiver rejected the message, and softfail is not a promise that it will be delivered with a warning.

SPF softfail and neutral do not become passing SPF paths for DMARC. Under RFC 9989 §4.4.2, DMARC requires a pass with alignment for its SPF path, or a separate passing aligned DKIM path. A message can therefore pass DMARC through DKIM despite SPF fail. Conversely, +all can produce SPF pass for an address without making its content trustworthy.

Do not use +all to silence an error dashboard. It authorises every address that reaches it for that identity and defeats the intended restriction. Repair missing senders, incorrect identities or broken dependencies instead.

Distinguish policy endings from evaluation errors

Permerror and temperror are not other spellings of fail. Multiple SPF records, invalid syntax or exceeded processing limits can prevent normal evaluation. Temporary DNS problems can produce temperror. Replacing -all with ~all does not repair an error that occurs before the ending is reached.

Collect the actual result and trace before choosing a change. For a DNS outage, investigate the dependency and resolver path. For an unrecognised legitimate sender, establish its owner and expected envelope identity before granting it permission.

Roll out a stricter statement with evidence

Inventory regular, failover, IPv6 and infrequent sending routes. Test the proposed policy against those addresses and an unauthorised control. Keep the previous record, define service-based rollback conditions and verify received mail after publication.

Where forwarding is part of legitimate delivery, review the wider authentication design, including aligned DKIM and receiver behaviour. Do not broadly authorise unknown forwarders to make every indirect SPF path pass.

The practical takeaway

Choose the qualifier for the statement you intend to make about otherwise unmatched senders. Verify the inventory and error paths first, then measure authentication and delivery as separate outcomes.

Record the next decision

For 192.0.2.91 in the synthetic fixture, the four endings yield fail/softfail/neutral/pass respectively; 192.0.2.90 remains pass through the earlier ip4 match. If a syntax or dependency error occurs before a normal result, changing the final qualifier is not a repair. These are analytical control-flow outcomes, not delivery tests.

[ Takeaway ]

A reached all mechanism matches; its qualifier controls the result. Bare all means +all, while earlier matches and errors still matter. Check DMARC alignment and receiver handling separately.

[ By role ]

What this means for you

Choose your role for practical next steps.

IT / Mail Admin

Preserve result categories.

Do not turn DNS errors, softfail and fail into one undifferentiated failure label.

Next steps

  1. Capture the evaluation trace.
  2. Test the exact proposed ending.
  3. Verify aligned DKIM separately.

CISO / SecOps

Reject blanket authorisation as a repair.

+all may remove a visible failure by removing the intended SPF restriction.

Next steps

  1. Require justified permission changes.
  2. Review broad grants.
  3. Keep receiver discretion explicit.

Founder / Non-technical

Judge readiness by coverage.

A stricter policy ending is useful only when critical senders and recovery plans are understood.

Next steps

  1. Inventory important message types.
  2. Test rare and failover routes.
  3. Separate authentication from delivery outcomes.

[ FAQs ]

Frequently asked questions

Does -all force every receiver to reject mail?

No. It supplies SPF fail for an unmatched address. Receiver handling is a separate decision.

RFC 7208 §5.1 RFC 7208 §8.4

Is ~all an SPF pass?

No. It produces softfail, a distinct result that does not satisfy DMARC's SPF pass requirement.

RFC 7208 §8.5 RFC 9989 §4.4.2

What does ?all mean?

It produces neutral, not an assertion that the address is authorised.

RFC 7208 §2.6.2

Is bare all different from +all?

No. With no qualifier, + is implied and the match produces pass.

RFC 7208 §4.6.2

Can I add a sender after all?

It will not grant permission because all matches first.

RFC 7208 §5.1

Does changing -all to ~all fix permerror?

No. Syntax, record-selection or processing-limit errors require their own diagnosis.

RFC 7208 §4.5 RFC 7208 §4.6.4

Can DMARC pass when SPF fails?

Yes, when a passing aligned DKIM signature supplies the DMARC pass path.

RFC 9989 §5.3.5

What should be checked before moving to -all?

Verify legitimate routes, the actual envelope identity, IPv6 and failover use, indirect mail behaviour and an approved recovery plan.

[ Sources ]

Sources

  1. RFC 7208

    Sections §2.4 · §2.6 · §2.6.2 · §4.5 · §4.6.2 · §4.6.4 · §5.1 · §8.4 · §8.5 · §10.3

  2. RFC 9989

    Sections §4.4.2 · §5.3.5

[ Glossary ]

Glossary

SPF
Authorization evaluation for a connecting IP and the relevant SMTP identity.

RFC 7208 §2.4

SPF qualifier
A prefix determining the result when a mechanism matches; an omitted qualifier defaults to +.

RFC 7208 §4.6.2

Enterprise provenance

Why top financial institutions and governments retired their email security dashboards.

Traditional email authentication platforms sell you a dashboard and ask your engineers to do the labour. In high-stakes environments, manual oversight means delayed enforcement, configuration drift and unmonitored shadow domains.

EmailAuth is the agentic email provenance platform. Our agents enforce p=reject, keep third-party senders aligned and move your domains to full RFC 9989 compliance, the new DMARC standard,, with human-in-the-loop auditability.

Governments Large enterprises Tier-1 financial institutions

SaaS · Dedicated tenancy · Air-gapped on-prem · BYOK encryption

Knowledge Base