DKIMとは?仕組み・設定方法・確認方法を初心者向けに解説

DKIMとは?仕組み・設定方法・確認方法を初心者向けに解説

DKIM(ディーキム)とは、送信するメールに電子署名を付け、受信側が「そのドメインから送られたメールか」「送信後に内容が改ざんされていないか」を確認できるようにする仕組みです。 独自ドメインのメールを使う会社や店舗では、なりすまし対策とメール認証の基本として理解しておきたい設定です。

30秒でわかる結論

30秒でわかる結論

  • DKIMは、送信メールに電子署名を付けて送信元と改ざんの有無を確認する仕組み
  • 送信側は秘密鍵で署名し、受信側はDNSに公開された公開鍵で検証する
  • 公開鍵は通常、セレクタ._domainkey.ドメイン名という名前でDNSへ登録する
  • 設定値はメールサービスやレンタルサーバーごとに異なるため、指定された値をそのまま使う
  • Gmail宛てでは、送信者要件としてSPFまたはDKIMが求められ、大量送信者にはSPF・DKIM・DMARCが求められている
  • DKIMを設定しても、迷惑メール判定を必ず回避できるわけではない
  • 独自ドメインメールを継続運用するなら、SPFだけでなくDKIMとDMARCも組み合わせて確認する

DKIMとは?

DKIMは「DomainKeys Identified Mail」の略で、メールに電子署名を付ける送信ドメイン認証の仕組みです。

メールの送信時に、送信サーバーがメールヘッダーや本文をもとに署名を作成します。 受信サーバーは、DNSに公開されている公開鍵を取得し、その署名が正しいかを検証します。

初心者は「メール版の電子署名」と考える

DKIMは、メール本文に目印を表示する機能ではありません。 送信サーバーが裏側で署名を付け、受信サーバーが自動的に検証する仕組みです。

項目 役割
秘密鍵 送信側がメールへ署名するために使う
公開鍵 受信側が署名を確認するために使う
DNS 公開鍵を公開する場所として使われる
DKIM-Signature 送信メールに付与される署名情報

DKIMの仕組み

1.送信
送信サーバーがメールを作成する
2.署名
秘密鍵を使ってDKIM署名を付ける
3.受信
受信サーバーがDKIM-Signatureを確認する
4.DNS照会
署名内のドメイン名とセレクタを使い、公開鍵を取得する
5.検証
公開鍵で署名を検証し、改ざんの有無などを確認する
結果
認証に成功すればDKIM=passとして扱われる

DKIMでは、送信側が秘密鍵を外部へ公開しません。 公開するのは検証用の公開鍵だけです。

秘密鍵をDNSへ登録しない

DNSへ公開するのは公開鍵です。秘密鍵は送信サービス側で安全に保持する必要があります。 メールサービスからDNS設定値を案内された場合は、自分で鍵の内容を推測せず、指定されたレコードをそのまま登録してください。

DKIMで使う「セレクタ」とは?

DKIMでは、1つのドメインで複数の公開鍵を使い分けられるように「セレクタ」という識別名を使います。

たとえば、セレクタが「mail」、ドメインが「example.com」なら、公開鍵を探すDNS名は次のような形になります。

例

mail._domainkey.example.com

実際のセレクタ名は「mail」「default」「selector1」などサービスによって異なります。 同じドメインでも、メールサービスごとに別のセレクタを使うことがあります。

セレクタがある理由

  • 複数のメール送信サービスを使い分けられる
  • 公開鍵を段階的に切り替えやすい
  • 古い鍵と新しい鍵を一時的に共存させられる

DKIMは誰が設定する?

DKIMは、通常メールサービスの管理者とDNSを変更できる担当者が設定します。 共用レンタルサーバーのメール機能では、管理画面でDKIMを有効化すると公開鍵用のDNSレコードが自動設定される場合もあります。

利用状況 主な設定担当
ドメイン・DNS・メールを同じ会社で管理 サーバー管理者が公式手順に従って設定
DNSとメールサービスが別会社 メール側で鍵・指定値を確認し、DNS管理者が公開鍵レコードを登録
会社で担当が分かれている メール担当とDNS担当で設定値を共有して作業

WordPress管理画面で設定するものではない

DKIMは通常、WordPressの記事編集画面や一般的なSEOプラグインで設定するものではありません。利用しているメールサービスと、そのドメインのDNS管理画面を確認してください。

DKIMの設定方法

設定方法は利用するメールサービスやレンタルサーバーによって異なります。 初心者が独自に鍵を生成するより、まず利用サービスの管理画面や公式マニュアルにDKIM設定機能があるか確認してください。

1.メールサービス側でDKIMを有効にする

管理画面に「DKIM」「送信ドメイン認証」「メール認証」などの項目がある場合は、対象ドメインを選択してDKIMを有効化します。

サービスによっては、この操作で公開鍵やDNSへ登録するレコード名が自動生成されます。

2.DNSへ指定されたレコードを登録する

一般的には、公開鍵をTXTレコードとして登録します。 サービスによってはCNAMEレコードを指定する方式もあります。

確認項目 例
ホスト名 selector1._domainkey.example.com
種類 TXTまたはCNAME
値 サービスから指定された公開鍵・参照先
TTL DNS事業者の標準値または指定値

TXTかCNAMEかを自己判断しない

DKIMは必ずTXTレコードを使うとは限りません。メールサービス側がCNAMEを指定する場合もあります。 レコード種類、ホスト名、値をサービスの指示どおりに設定してください。

3.DNS反映後にメールサービス側で確認する

DNSへ登録した直後は、キャッシュやTTLの影響で確認できない場合があります。 管理画面に「確認」「認証」「有効化」といったボタンがある場合は、DNS反映後に実行します。

4.実際にメールを送って認証結果を確認する

設定完了表示だけで終わらせず、実際に対象ドメインからテストメールを送信し、受信側でDKIMがpassになっているか確認すると確実です。

DKIMが正しく設定できたか確認する方法

確認方法は大きく2つあります。

確認方法

  • DNSで公開鍵レコードが取得できるか確認する
  • 実際に送信したメールの認証結果を確認する

DNSレコードを確認する

セレクタが分かっている場合は、DNS確認ツールやdigなどを使って、 「セレクタ._domainkey.ドメイン名」のTXTまたはCNAMEレコードが取得できるか確認します。

ただし、DNSに値が存在するだけでは、実際の送信メールに正しく署名されている証明にはなりません。

受信メールのヘッダーを確認する

Gmailなどの受信サービスでは、メールの詳細情報や元のメッセージから認証結果を確認できます。 代表的には次のような表示を探します。

確認したい表示

  • DKIM: PASS
  • dkim=pass
  • Authentication-Results内のDKIM結果

「pass」であれば、受信側でDKIM署名の検証に成功したことを示します。

DKIMがpassにならない主な原因

原因 確認ポイント
DNS名の入力ミス セレクタと._domainkeyの位置を確認
公開鍵の値が違う 余分な文字や欠落がないか確認
DNS管理先を間違えている 現在利用中のネームサーバーを確認
DNS反映待ち TTLと変更時刻を確認
送信側で署名が有効になっていない メールサービス側のDKIM有効化状態を確認
別サービスから送っている 実際の送信経路とDKIM設定対象を確認

切り分けの順番

「DNSに公開鍵が存在するか」→「送信メールにDKIM-Signatureが付いているか」→「受信側でpassになるか」の順に確認すると、原因を切り分けやすくなります。

SPF・DKIM・DMARCの違い

仕組み 主な役割 初心者向けの理解
SPF 送信元サーバーを確認 このサーバーから送ってよいか確認する
DKIM 電子署名を検証 このドメインが署名したメールか確認する
DMARC SPF・DKIMを利用して認証方針を示す 認証失敗メールをどう扱うか決める

3つは競合する仕組みではなく、役割が異なります。 独自ドメインメールでは、SPFだけ設定して終わるのではなく、DKIMとDMARCも組み合わせる方が現在のメール認証として適切です。

DKIMだけではDMARCは完成しない

DMARCでは、認証結果だけでなく、メールのFrom欄に表示されるドメインとの整合性も確認します。 DKIMがpassでも、DMARCの条件を満たすとは限らないため、別々の仕組みとして確認してください。

DKIMの鍵長はどれくらい必要?

DKIMではRSA鍵が広く使われています。 現在、Gmail宛てに送信する場合、Googleは1024ビット以上のDKIM鍵を求め、ドメイン側が対応している場合は2048ビットを推奨しています。

1024bit以上
Gmail宛てで求められるDKIM鍵長
2048bit
Googleが対応環境で推奨する鍵長

ただし、レンタルサーバー利用者が自分で鍵長を選べないサービスもあります。 その場合は、提供会社のDKIM機能が現在の送信先要件に対応しているかを確認してください。

DKIMはどんな場合に必要?

個人ブログの問い合わせメール

必要度:高

WordPressから独自ドメインでメールを送る場合でも、受信先で認証されやすい状態を作るため、DKIM対応の送信環境を使う価値があります。

会社・店舗の独自ドメインメール

必要度:非常に高

見積書、問い合わせ返信、予約連絡など業務メールが届かないと損失につながります。SPF・DKIM・DMARCをまとめて確認してください。

メルマガ・一斉配信

必要度:非常に高

大量送信では送信先事業者の要件が厳しくなります。Gmail宛てに1日5,000通を超えて送る送信者には、SPF・DKIM・DMARCなどの要件があります。

受信だけするドメイン

必要度:送信有無で判断

DKIMは送信メールの認証に使うため、そのドメインから一切送信しないなら優先度は下がります。ただし将来送信する可能性があれば設定方法を確認しておくと安全です。

DKIM設定時の注意点

DKIMを設定すれば必ず迷惑メールに入らないわけではない

メールの到達可否には、SPF・DKIM・DMARCだけでなく、送信元IPの評価、迷惑メール報告率、送信量、本文内容、配信停止手段など複数の要素が関係します。 DKIMは重要な基礎設定ですが、到達率を保証する仕組みではありません。

  • メールサービスを変更したら、古いDKIM設定が残っていないか確認する
  • 複数サービスを使う場合は、各サービスのセレクタを混同しない
  • 秘密鍵をWebサイトやDNSへ公開しない
  • DNS設定値を途中で省略・改変しない
  • 設定後は実際の送信メールでpassを確認する

教科書判定

教科書判定

独自ドメインメールを使うなら、DKIMは「知っておくと便利」ではなく確認すべき基本設定

初心者が暗号方式の詳細まで理解する必要はありません。 まずは「送信側が秘密鍵で署名し、受信側がDNSの公開鍵で検証する」という仕組みと、利用中のメールサービスでDKIMが有効になっているかを確認できれば十分です。

会社・店舗・問い合わせ対応など重要なメールを独自ドメインで送る場合は、SPFだけで終わらせず、DKIMとDMARCも設定・確認してください。

FAQ

Q.DKIMはDNSに何を設定しますか?

一般的には、セレクタ._domainkey.ドメイン名という名前に公開鍵を登録します。TXTレコードを使うことが多いですが、サービスによってはCNAMEを指定する場合があります。必ず利用サービスの指定に従ってください。

Q.SPFを設定していればDKIMは不要ですか?

役割が異なるため、SPFだけで十分とは考えない方が安全です。特に会社メールや一斉配信では、SPF・DKIM・DMARCを組み合わせて設定することを基本にしてください。

Q.DKIMを設定するとメールは必ず届きますか?

いいえ。DKIMは送信ドメイン認証の一要素です。迷惑メール判定には送信元評価、苦情率、内容、送信量なども影響するため、DKIM設定だけで受信トレイへの到達が保証されるわけではありません。

Q.DKIMのセレクタは自分で好きに決めてよいですか?

自分でメールサーバーを構築している場合は設計できますが、レンタルサーバーやクラウドメールではサービス側から指定されることが一般的です。初心者は指定値を変更せず利用してください。

Q.WordPressから送るメールにもDKIMは関係しますか?

関係します。WordPress本体が直接DKIMを設定するというより、実際にメールを送信するメールサーバーやSMTPサービス側でDKIM署名を行います。届かない場合は、WordPressだけでなく送信経路とメール認証設定も確認してください。

まとめ

この記事の結論

  • DKIMは送信メールに電子署名を付ける送信ドメイン認証
  • 送信側は秘密鍵、受信側はDNSに公開された公開鍵を使う
  • 公開鍵はセレクタ._domainkey.ドメイン名で参照される
  • 設定方式はTXTまたはCNAMEなどサービスによって異なる
  • 設定後は実際のメールでdkim=passを確認する
  • SPF・DKIM・DMARCは役割が違うため組み合わせて使う
  • 会社や店舗の独自ドメインメールではDKIM対応を必ず確認する

DKIMで重要なのは、暗号技術を詳しく覚えることではありません。 「利用中の送信サービスが署名し、DNSの公開鍵で受信側が検証する」という流れを理解し、実際に認証がpassしているか確認できることが大切です。

次に読む

「SPFとは?設定方法と確認方法を初心者向けに解説」「DMARCとは?設定方法・ポリシー・レポートの見方を解説」もあわせて確認してください。