dmarc=fail — SPFもDKIMもpassなのに失敗するのはなぜか
最終更新: 2026-09-09
「SPFもDKIMもpassなのに、DMARCだけfailする」——これがもっとも多い相談です。故障ではなく、DMARCの判定条件が2段構えになっているためです。
- DMARCは「認証に合格」だけでなく「差出人ドメインと揃っている」ことも求めること
- 配信サービスを使うと、この2つ目で落ちやすいこと
- SPF側とDKIM側、それぞれの直し方
DMARCの合格条件
SPFとDKIMのうち、どちらか一方が「認証に成功し、かつ差出人ドメインと揃っている」なら合格です。両方そろえる必要はありませんが、片方が認証に成功していても、ドメインが揃っていなければ数に入りません。
spf=pass smtp.mailfrom=bounces.esp.example.net ← 認証OK・ドメインが違う → 数に入らない
dkim=pass header.d=esp.example.net ← 認証OK・ドメインが違う → 数に入らない
From: info@yourdomain.com ← 受信者に見えるのはこちら
→ dmarc=fail
この「揃っているか」をアライメントと呼びます。仕組みの詳細はDMARC徹底解説、直し方はアライメント不一致の直し方にあります。
直し方は2つ。どちらか一方でかまいません
① DKIM側をそろえる(推奨)
配信サービスの管理画面で、自社ドメインでのDKIM署名を有効にします。d= が yourdomain.com になれば、アライメントが成立します。
DKIM側を推す理由は、転送に強いからです。SPFは転送されると構造的に失敗しますが、DKIMは本文が書き換えられないかぎり生き残ります。
② SPF側をそろえる
配送に使う差出人(Return-Path)を、自社ドメインのサブドメインに変えます。配信サービスが「カスタムバウンスドメイン」「専用の送信ドメイン」などの名前で案内している設定です。
bounces@em.yourdomain.com になれば、yourdomain.com と同じ組織ドメインなので揃います。ただし aspf=s(厳格)を指定していると、サブドメインでは揃いません。既定の r のままにしてください。
アライメントを厳格にしていないか
DMARCレコードに adkim=s や aspf=s を書いていると、完全一致が必要になります。サブドメインを使う構成とは両立しません。
dig +short TXT _dmarc.yourdomain.com
特別な理由がなければ、既定の r(緩やか)のままにしてください。
誰のメールが落ちているのかを知る
rua= を設定していないと、この切り分けができません。設定していれば、どの送信元で fail が出ているかが毎日レポートで届きます(→DMARCレポートとは何か)。
個別のメールについては、ヘッダーを完全判定に貼り付けると、SPF・DKIM・アライメントのどこで落ちているかを判定できます。