SPF/DKIM/DMARC/BIMIのすべてが解決するサイト!
一括無料診断ツール、設定値作成ツールも無料公開!
もうあちこちのサイトを見て回る必要はありません。

登録不要 無料 30秒

dkim=fail — 署名は付いているが、検証に失敗している

最終更新: 2026-09-09

dkim=fail「署名は付いているが、照合が合わなかった」という意味です。署名そのものが無い dkim=none とは別物で、設定は済んでいるのに通っていない状態です。

このページでわかること
  • 原因の多くは設定ミスではなく、途中でメールが書き換えられたことだと分かる
  • bodyhash did not verifysignature did not verify の意味の違い
  • 自社が直せるものと、直せないものの区別

どこに出る文字列か

Authentication-Results: mx.google.com;
       dkim=fail (bodyhash did not verify) header.i=@yourdomain.com header.s=selector1

括弧の中が重要です。ここで原因が半分決まります。

括弧の中意味主な原因
bodyhash did not verify本文が変わった転送、メーリングリスト、フッターの自動付与
signature did not verifyヘッダーか鍵が合わない鍵の入れ替え、署名対象ヘッダーの書き換え
no key for signature公開鍵が引けないDNSの登録ミス、鍵の削除

bodyhash did not verify — 本文が書き換えられている

これは、多くの場合あなたの設定ミスではありません。署名は本文全体のハッシュを含むので、1文字でも足されれば合わなくなります。

  • メーリングリスト … 件名に [ml] を足す、末尾に配信解除の案内を付ける
  • 転送サービス … 転送元がフッターや広告を挿入する
  • セキュリティ製品 … 「外部からのメールです」という注意書きを本文の先頭に足す

相手側で起きている書き換えは、こちらでは止められません。DMARCはSPFかDKIMの一方が通れば合格するので、SPFが通る経路であればDMARCは維持できます。転送の扱いは転送・ML・ARC対策にまとめています。

📌 自社側でできる対策として、l=(本文長の制限)は使わないでください。本文の一部だけを署名する指定で、これを使うと署名の後ろに文章を継ぎ足されてもDKIMは通ってしまいます(→DKIM徹底解説)。

signature did not verify — 鍵かヘッダーが合わない

  • 鍵を入れ替えた直後 … 古い鍵で署名されたメールが、新しい公開鍵で検証されている状態です。DNSが行き渡るまでの過渡期に起こります。鍵の入れ替えは、セレクタを変えて行ってください(→DKIM鍵ローテーション
  • 署名対象ヘッダーが途中で変わったh= に含まれるヘッダー(From・Subject など)が経路で書き換えられています

no key for signature — 公開鍵が引けない

これは自社のDNSの問題なので、直せます。

# ヘッダーの s= がセレクタ。それを使って引く
dig +short TXT selector1._domainkey.yourdomain.com
  • 何も返らない … ホスト名の綴りを確認してください。_domainkey のアンダースコアを省いていないか、ドメイン名を二重に書いていないか
  • p= が空 … その鍵は意図的に無効化されています。消し忘れとは限りません
  • 値が途中で切れている … 2048ビットの鍵はDNSの255文字制限を超えるため分割が必要です。手で貼るときに改行や空白が混ざると壊れます

確認のしかた

無料診断の「完全判定」に、届いたメールのヘッダーを丸ごと貼り付けてください。s=d= を自動で読み取って、公開鍵が引けるかまで確認します。セレクタが分からなくても判定できます。