Menu

BLOG ベアメールブログ

DKIMレコードの書き方は? 設定・確認方法や失敗例も解説

DKIMレコードの書き方は? 設定・確認方法や失敗例も解説

Last Updated on 2025.10.1

DKIM(DomainKeys Identified Mail)とは、電子署名によってメール送信者を認証し、メールの改ざんやなりすましを防ぐ技術です。DKIMレコードは、このDKIM認証に必要な公開鍵を登録するための重要なレコードです。
本記事では、DKIMレコードの構成要素の説明と書き方から、実際の設定手順と確認方法、よくある失敗例まで詳しく解説します。

DKIMレコードとは

DKIM認証は、電子署名を利用して、メールが作成時点から改ざんされていないことを検証する仕組みです。
送信メールサーバーにおいて秘密鍵を使用してメールに電子署名を付与し、受信メールサーバーは当該のドメインのDNSから公開鍵を取得して署名を検証します。

DKIM認証の仕組みを説明した図



DKIMレコードは、DKIMの電子署名を検証するために必要な公開鍵を登録するDNSレコードです。DKIM認証を成功させるには、DKIMレコードを正しく設定する必要があります。

DKIMについて詳しくは以下の記事をご覧ください。
DKIMを導入するには? 仕組みや設定方法を解説|ベアメールブログ

DKIMレコードの書き方

DKIMレコードはTXTレコードとしてDNSに設定します。DKIMレコードの例は次のとおりです。
それぞれの構成要素について解説します。

ホスト名

DKIMレコードを設定するホスト名は以下の形式をとります。

[セレクタ名]._domainkey.[ドメイン名]

セレクタ名とは、公開鍵を識別するために使われる値で、送信メールサーバーが付与する電子署名(DKIM-Signatureヘッダ)のsタグで指定したラベルを設定します。異なるセレクタを使用することで、1つのドメインに対して複数の公開鍵を運用することができます。

レコードタイプ

レコードタイプはTXTレコードを使用します。

TTL

Time to Liveの略で、このレコードがキャッシュに保持される時間(秒単位で計測)を指定します。一般的には3600秒(1時間)程度が推奨されています。

レコードの値

公開鍵情報を含め、DKIM認証に必要な詳細情報を設定します。DKIMレコードの値はタグを使用して定義します。
DKIMレコードの値で使用するタグの内容は以下のとおりです。

DKIMレコードの設定方法

DKIMレコードの設定は、以下のような手順で行います。

自社でDNSサーバーを運用している場合

1. 公開鍵をDKIMレコードの形式に整形する
2. DNSサーバーにアクセスする
3. ゾーンファイルを開き、レコードを追加する
4. ゾーンファイルのシリアル番号を更新する
5. DNSサーバをリロードしもしくは再起動する
6. 確認コマンドやツールで、反映されているか確認する(反映まで数分〜数時間)
7. メールを送信し、DKIM認証が成功するか確認する

DNSサービスで設定する場合

1. 公開鍵をDKIMレコードの形式に整形する
2. 利用しているDNSサービスの管理画面にログインする
3. ドメインを選択する
4. DNSレコードの編集画面で、DKIMレコードを追加して保存する
5. 確認コマンドやツールで、反映されているか確認する(反映まで数秒〜数分)
6. メールを送信し、DKIM認証が成功するか確認する

DNSの設定を行なってから反映されるまでの伝播時間は、DNSサーバーの更新プロセスに左右されるため、高速な分散システムを採用しているクラウドDNSサービスの方が速く反映されます。

よく使われているDNSサービスである「お名前.com」と「Amazon Route53」でDKIMレコードを設定する手順については、以下の記事で詳しく解説しています。

お名前.comでSPF・DKIM・DMARCのDNSレコードを設定する | ベアメールブログ
Amazon Route 53でSPF・DKIM・DMARCのDNSレコードを設定する | ベアメールブログ

DKIMレコードの確認方法

DKIMレコードが正しく設定されているかを確認するためには、以下のようなオンラインツールを利用すると便利です。

  • DKIM Core Tools
  • MxToolBox DKIM Record Lookup
  • 今回は「MxToolbox DKIM Record Lookup」(https://mxtoolbox.com/dkim.aspx)を使ってDKIMを確認する方法を紹介します。

    オンラインツール(MxToolbox DKIM Record Lookup)を使ってDKIMを確認する画面キャプチャ

    1. 「Domain Name」に送信者ドメインを、Selectorにセレクタ名を入力する
    2. 「DKIM Lookup」をクリックする

    DKIMの設定に不備や誤りがあった場合は、レコードの内容を見直し、修正しましょう。

    DKIMレコードの失敗例

    最後に、DKIMレコードの設定時によくある具体的な失敗例を解説します。いずれも受信側サーバーがレコードを正しく認識できず、認証に失敗する原因となります。

    誤ったFQDNで公開している

    DKIMレコードを設定するFQDN(Fully Qualified Domain Name:完全修飾ドメイン名)を誤った形式で公開してしまうケースです。たとえば次のような例があります。

    例1

    DKIM用のサブドメインを指定せず、ドメイン名に直接DKIMレコードを設定しているケースです。


    失敗例 example.co.jp IN TXT “v=DKIM1; k=rsa; p=…”;
    修正例 default._example.co.jp IN TXT “v=DKIM1; k=rsa; p=…”;

    例2


    セレクタを指定せずにDKIMレコードを設定しているケースです。

    失敗例 _domainkey.example.co.jp IN TXT “v=DKIM1; k=rsa; p=…”
    修正例 default._domainkey.example.co.jp IN TXT “v=DKIM1; k=rsa; p=…”

    公開鍵のフォーマットエラー

    公開鍵に不要なスペースや改行などが含まれ、正しくBase64エンコードされていない場合など、エラーとなり認証が失敗します。

    失敗例 default._domainkey.example.com. IN TXT “v=DKIM1; k=rsa; p=MIIBIjA NBkg…”
    修正例 default._domainkey.example.com. IN TXT “v=DKIM1; k=rsa; p=MIIBIjANBkg…”

    タグ間のセミコロンが欠けている

    タグの指定に必要なセミコロンが欠けていると、正しくレコードが認識されずエラーの要因となります。

    失敗例 v=DKIM1; k=rsa p=MIIBIjANBgkqh…;
    修正例 v=DKIM1; k=rsa; p=MIIBIjANBgkqh…;

    タグの記載順序を誤っている

    DKIMレコード内のタグを正しい順序で記述していないケースです。

    失敗例 default._domainkey.example.com. IN TXT “k=rsa; v=DKIM1; p=MIIBIjANBgkqhki…”
    修正例 default._domainkey.example.com. IN TXT “v=DKIM1; k=rsa; p=MIIBIjANBgkqhki…”

    Keyレコードのバージョン番号を指定する場合は、v=タグをレコードの最初に記述しなければなりません。

    使用するDNSサービスが公開鍵の長さに対応していない

    一部のDNSサービスの仕様では、TXTレコードの長さが制限されているため2048ビットの公開鍵を登録できない場合があります。この場合、DKIMレコードの値を複数の文字列に分割して引用符(“ ”)で囲むことで登録できることがあります。

    1. DKIMレコードの値(テキスト)を、255文字以下になるように分割する
    2. 分割したテキストをそれぞれ引用符(“ ”)で囲む
    3. DNSのTXTレコードの値フィールドに順番に入力する

    ホスト名 レコードタイプ レコードの値
    default._domainkey.example.com. TXT v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFA”“AOCAQ8AMIIBCgKCAQEAr6Ax…


    ただし、この方法でも登録ができないDNSサービスもあるため、その場合は1024ビットの鍵を使用するか、他のDNSサービスの利用を検討してください。

    まとめ

    メールの信頼性を高めるDKIMを活用するには、DKIMレコードを正しく設定する必要があります。DKIMレコードの構造は複雑ではありませんが、ちょっとした設定ミスでも認証が失敗する要因となります。今回ご紹介した構成要素やよくある失敗例を参考に、正しくDKIMレコードを設定してみてください。

    また、ベアメール メールリレーサービスのSMTP DKIMオプションを利用すると、自社システムにDKIM認証の仕組みを導入しなくても、ベアメール上で手軽にDKIM対応を実現できます。DKIMの設定・運用に不安を感じている場合は、ぜひ検討してみてください。