本文へスキップ
ecdsa.com
OpenDKIM (Authentication-Results); mailauth reports it as dkim=neutral (no key)DKIM

エラーメッセージ

dkim=fail reason="key not found in DNS"

別の表記

  • dkim=neutral (no key)

分類は検証者によって異なります(OpenDKIM では `fail`、mailauth では `neutral (no key)`。どちらも再現済み)。そのため、同じメッセージでも、自社サーバーのヘッダーと大手メールボックスプロバイダーとで見え方が異なることがあります。Gmail のヘッダーには一般に `dkim=neutral (no key for signature)` と記載されますが、これは実際のサービスでの文言で、コンテナー内では再現できません。レコードの欠落ではなく DNS のタイムアウトの場合は、`dkim=temperror` になります。

このエラーの意味

メッセージにはセレクター `s=` とドメイン `d=` の DKIM 署名が付いていますが、TXT レコード `<selector>._domainkey.<domain>` が存在しないため、受信側は何も検証できません。OpenDKIM はこれを、この理由とともに `dkim=fail` として報告します。ほかの検証者は同じ状態を異なる形で分類し、mailauth は `dkim=neutral (no key)`、一部の検証者は `dkim=permerror` とします。DMARC では、いずれも DKIM の pass としては扱われません。

発生する理由

修正方法

  1. 1.

    正確なレコード名を照会する

    署名ヘッダーの `s=` と `d=` から名前を組み立て、自社ネットワークの外から照会してください。

    bash
    # s= and d= from the DKIM-Signature header name the record: <s>._domainkey.<d>
    dig +short TXT s2026._domainkey.example.com
    dig +short TXT s2026._domainkey.example.com @1.1.1.1   # bypass local caches
  2. 2.

    鍵を公開し、古いセレクターをしばらく残す

    新しいセレクターで署名する前にそのセレクターを公開し、切り替え後も以前のセレクターを数日間残してください。

    text
    ; zone example.com - long keys are split into several quoted strings of at most 255 characters
    s2026._domainkey  IN TXT ( "v=DKIM1; k=rsa; "
                               "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..." )

関連するエラー

署名エラーデータベースをすべて見る