CriticalPolicy · usually critical

SPF record ends with +all

The record authorises the entire internet to send mail as this domain.

Check your own domain

What causes this

The all mechanism is the catch-all at the end of an SPF record, and its qualifier decides what happens to senders that matched nothing earlier. +all means 'pass' — every server on the internet is declared an authorised sender for your domain. This is almost always a mistake made while debugging, where the qualifier was loosened to stop failures and never tightened again.

What it breaks

SPF provides no protection at all. Anyone can send mail claiming to be your domain and it will pass SPF. Worse, it can pass DMARC too, because a forged message that passes SPF with alignment satisfies DMARC.

How to fix it

Replace +all with ~all, or -all once the sender list is confirmed complete.

  1. Confirm every legitimate sending service is listed in the record.
  2. Change +all to ~all (soft fail).
  3. Monitor DMARC reports or re-check for a week to confirm no legitimate sender is failing.
  4. Tighten ~all to -all for a hard fail.

Specification: RFC 7208 — Sender Policy Framework

Related problems