spf=softfail / neutral / none — 合格でも不合格でもない状態
最終更新: 2026-09-09
この3つはいずれも「SPFで合格を出していない」判定です。すぐにメールが止まるわけではないため放置されがちですが、Gmail・Yahoo!メール・Outlook.com の送信者要件は満たせません。
- 3つの違いと、それぞれ何が起きているか
noneだけはレコードが存在しないという別種の問題であること- DMARCから見ると、この3つはすべて「不合格」と同じ扱いになること
3つの違い
| 判定 | 何が起きているか | 原因 |
|---|---|---|
softfail | レコードはあるが、この送信元は宣言に入っていない。末尾が ~all なので「あやしい」止まり | 配信サービスの include 忘れ、転送 |
neutral | レコードはあるが、判定に使わないと宣言している。末尾が ?all | ?all のまま運用している |
none | SPFレコードそのものが無い | 未設定、または permerror で無効化 |
softfail — 宣言に入っていないサーバーから送っている
いちばん多いのは、配信サービスを使い始めたのにSPFへ追記していないケースです。メールは届くこともありますが、認証は通っていません。
直し方は、そのサービスが案内する include を既存のSPFレコードに追記することです。新しく2本目を作らないでください(→permerror)。設定値をつくるで、既存のレコードに追記した形の値を作れます。
転送が原因のこともあります。転送されると送信元サーバーが変わるため、SPFは構造的に通りません。この場合はSPFではなくDKIMで担保します(→転送・ML・ARC対策)。
neutral — ?all は実質「宣言していない」
?all は「上記以外については何も言わない」という指定です。受信側は判定に使えないので、SPFを設定していないのとほぼ同じ扱いになります。
~all に変えてください。取りこぼしがあっても即座に拒否されない、実務上もっとも扱いやすい指定です。送信元をすべて把握できているなら -all にできます。
none — レコードが無い
2つの可能性があります。
- 本当に未設定 … 設定値をつくるで作って登録してください
- レコードはあるが permerror で無効になっている … 受信側から見ると同じ「none」です。→permerror の直し方
CNAME委譲方式を使っている場合は、ドメイン本体を調べても出てこないのが正常です。この場合は未設定ではありません(→SPF徹底解説)。
DMARCから見ると、3つとも「不合格」です
DMARCが合格を出すのは spf=pass かつドメインが揃っているときだけです。softfail・neutral・none はいずれもSPF側では数に入りません。DKIMが通っていなければ、DMARCは不合格になります。
いまの状態は無料診断で確認できます。