SPF・DKIM・DMARCでよくある失敗例と直し方
最終更新: 2026-08-07
「設定したはずなのに直らない」の原因は、だいたいこの5つです。それぞれ症状 → 原因 → 確認方法 → 直し方の順で説明します。自分のドメインがどれに当てはまるかは、無料診断で確認できます。
① SPFレコードを2本にしてしまう
症状: SPFを設定しているのに認証エラー(permerror)になり、迷惑メール判定が悪化する。
原因: 新しいメールサービスを導入したときに、既存のSPFに追記せず、もう1本SPFレコードを追加してしまった。SPFは1ドメイン1本がルール(RFC 7208)で、2本以上あると無効です。
確認方法: 診断ツールにドメインを入れると「SPFレコードが2本以上あります」と表示されます。
直し方: 2本を1本にまとめます。v=spf1 include:A include:B ~all のように、includeを1本の中に並べてください。→ SPFの書き方
② includeを足しすぎる(DNS参照10回制限)
症状: サービスを増やしていったら、ある日からSPFがpermerrorになる。
原因: SPF検証時のDNS参照は10回まで。includeの中のincludeも数えるため、サービスを足すうちに超過します。
確認方法: 本サイトの診断はincludeを再帰的にたどって参照回数をカウントし、超過を警告します。
直し方: 使っていないサービスのincludeを削除する。それでも超える場合は、送信サービスの整理(メルマガは配信サービスに集約する等)を検討します。→ 10回制限の詳しい解説と5つの解決策
③ DKIMのセレクタ名が違う・「未設定」と誤解する
症状: DKIMを設定したのにチェックツールで「見つからない」と出る。または、レコード登録したのに認証がpassしない。
原因: DKIMはセレクタ名がわからないと外部から確認できません。また、登録時にレコード名(セレクタ._domainkey)を打ち間違えるケースもよくあります。
確認方法: 届いたメールのヘッダー(Gmailの「メッセージのソースを表示」)を診断ツールに丸ごと貼ると、実際のセレクタ名を読み取って正確に判定します。
直し方: サービスの管理画面に表示されたレコード名・値を一字一句そのまま登録し、サービス側の「有効化」まで完了させます。→ セレクタの解説/手動での調べ方(ヘッダーの読み方)
④ DMARCレコード自体がない
症状: SPF・DKIMは合格しているのに、Gmailの一括送信者要件を満たせない。なりすましの発生にも気づけない。
原因: DMARCは自動では設定されません。_dmarc のTXTレコードを自分で1本追加する必要があります。
確認方法: 診断ツールで「DMARC 未設定」と表示されるか確認。
直し方: まず v=DMARC1; p=none; rua=mailto:あなたのアドレス を追加(メールへの影響ゼロ)。設定値ジェネレーターでコピー用レコードを作れます。
⑤ p=none のまま何年も放置(+BIMIの前提不足)
症状: 「DMARCは設定済み」のつもりが、なりすましは一切ブロックされていない。BIMIのロゴも表示されない。
原因: p=noneは「様子見モード」で、なりすましへの実効的な防御はありません。またBIMIはp=quarantine以上が前提のため、p=noneのままではロゴが表示されません。
確認方法: 診断ツールでDMARCが「✅ 設定済み(様子見)」と表示されたら、次の段階を検討するサインです。
直し方: レポート(rua)で正当なメールの合格を数週間確認し、問題なければ p=quarantine へ引き上げます。→ 段階運用の手順/引き上げの判断基準チェックリスト
⑥ SPF・DKIMは合格なのに、DMARCだけfailする
症状: チェックツールでSPF・DKIMは両方pass。でもDMARCのレポートを見るとfailが多い。
原因: ほぼ「アライメント不一致」です。合格したのが配信サービスのドメインで、あなたのドメインでの合格ではないためです。
確認方法: 実際のメールヘッダーでdkim=pass header.d=の値が自社ドメインになっているか確認します。
直し方: 配信サービスで「カスタムDKIM(独自ドメイン署名)」を有効化します。→ アライメント不一致の詳しい直し方