2026年8月15日

2026年8月15日

DMARCとDKIMを併用する設定|アラインメントの仕組み・adkimの選び方・WordPressの差出人の合わせ方

DMARCとDKIMを併用するときに押さえるべき点は、「DKIMが pass していても、署名ドメイン(d=)が差出人アドレスのドメインと一致していなければ、DMARCでは合格にならない」という一点です。この一致をアラインメントと呼びます。この記事では、DMARCがDKIMの結果をどう使うのかを整理し、DMARCレコードの adkim の選び方、送信サービスで自社ドメインの署名にする方法、WordPressの差出人アドレスの合わせ方、ヘッダーとレポートでの確認方法を説明します。ポリシーを reject まで段階的に強める手順は別の記事の範囲とし、ここでは「DKIMをDMARCに正しく効かせる設定」に絞ります。

DMARCはDKIMの結果をどう使うか

DMARCの判定は、次の2つの条件を両方満たしたときに合格になります。

  1. SPFかDKIMの少なくとも一方が pass している。
  2. pass した側のドメインが、差出人(Fromヘッダー)のドメインとアラインしている。

DKIMで比べるのは、署名の d= タグのドメインです。たとえば差出人が info@example.com のメールに、d=example.com の署名が付いて pass していれば、DKIMの側でDMARCに合格します。SPFが通らなくても構いません。

逆に、配信サービスの初期設定のまま送ると、d= がサービスのドメイン(例: d=sender-service.example)になっていることがよくあります。この場合、DKIMの検証は pass でも、差出人ドメインと一致しないのでDMARCの判定には使われません。「DKIMを設定したのにDMARCが fail する」という相談の多くは、これが原因です。

adkim:relaxed と strict の違い

DMARCレコードの adkim タグで、DKIMのアラインメントをどこまで厳密に見るかを指定します。

_dmarc.example.com.  TXT  "v=DMARC1; p=none; adkim=r; aspf=r; rua=mailto:dmarc-reports@example.com"
  • **adkim=r(relaxed、既定値)**:組織ドメインが同じなら一致とみなします。差出人が info@example.com で d=mail.example.com の署名でも合格します。
  • **adkim=s(strict)**:ドメインが文字どおり同じ場合だけ合格です。上の例は不一致になります。

多くの場合は既定の relaxed で十分です。送信サービスによっては、自社ドメインのサブドメイン(em.example.com など)で署名する設定になっており、strict にするとそれらが不合格になります。strict を選ぶのは、サブドメインを第三者に任せていて、そこからの署名を親ドメインの合格として扱いたくない、といった明確な理由がある場合です。aspf は同じことをSPFについて指定するタグです。

送信サービスで自社ドメインの署名にする

アラインした署名にするには、送信元ごとに「自社ドメインで署名する」設定を行います。

  • メール配信サービス・SMTP送信サービス:「ドメイン認証」「独自ドメインのDKIM」などの名前で設定項目があり、指示されたCNAMEまたはTXTレコードをDNSに追加します。CNAME方式では、s1._domainkey.example.com をサービス側のホスト名に向ける形が多く、鍵の入れ替えをサービス側で行えるのが利点です。項目名や手順はサービスごとに違うため、各サービスのドキュメントを確認してください。
  • Google Workspace や Microsoft 365:管理画面でDKIMを有効にし、表示されたレコードを追加します。有効にするまでは、サービスの既定ドメインで署名されている場合があります。
  • 自社運用のメールサーバー:OpenDKIMなどで d= に自社ドメインを指定して署名します。

1つのメールに複数の署名が付くことは珍しくありません。サービスのドメインと自社ドメインの両方で署名されていれば、自社ドメインの署名がアラインした pass になり、DMARCは合格します。

WordPressの差出人アドレスを合わせる

WordPressから送るメール(フォームの通知、パスワードの再設定、注文確認など)は、差出人のドメインと署名ドメインがずれやすい送信元です。WordPress本体はDKIM署名を行わないため、SMTPプラグイン(WP Mail SMTP、FluentSMTP など)で外部の送信サービスにつなぎ、送信サービス側で自社ドメインのDKIMを設定するのが基本の形です。

そのうえで、差出人アドレスを署名ドメインに合わせます。SMTPプラグインに差出人アドレスを固定する設定があれば、まずそれを使います(項目名はプラグインやバージョンによって異なります)。プラグインを使わずに差出人だけを変えたい場合は、WordPressの wp_mail_from と wp_mail_from_name フィルターを使えます。テーマの更新で消えないよう、mu-plugin として置くのがおすすめです。

<?php
// wp-content/mu-plugins/mail-from.php
add_filter( 'wp_mail_from', function ( $from ) {
	return 'noreply@example.com';
} );

add_filter( 'wp_mail_from_name', function ( $name ) {
	return 'Example Site';
} );

ここで指定するアドレスは、送信サービスで認証済みのドメインのものにします。差出人だけを書き換えても、実際に送っているサーバーが自社ドメインで署名していなければ、DMARCには合格しません。SMTPプラグインの「差出人を強制する」設定が有効だと、このフィルターより優先されることがあるので、どちらで管理するかを決めて一本化します。本番サイトで試す前に、ステージング環境でテスト送信して確認してください。

フォームの送信者のアドレス(問い合わせをした人のアドレス)を差出人にする設定は避けます。他人のドメインを差出人にしたメールは、そのドメインのDMARCで不合格になり、相手のポリシーが reject なら届きません。返信先として使いたい場合は、差出人ではなく Reply-To に入れます。

ヘッダーで確認する

設定したら、Gmailなどの受信箱にテストメールを送り、元のメッセージ(ヘッダー)を表示して Authentication-Results を確認します。

Authentication-Results: mx.example.net;
       dkim=pass header.i=@example.com header.s=s1;
       spf=pass smtp.mailfrom=bounce.sender-service.example;
       dmarc=pass header.from=example.com

見るべき点は次のとおりです。

  • dkim=pass の行の header.i(または header.d)が、header.from と同じドメイン(relaxed なら同じ組織ドメイン)になっているか。
  • dmarc=pass になっているか。
  • 署名が複数ある場合、自社ドメインのものが pass しているか。

この例では、SPFはサービスのドメインで pass していて差出人とは一致しませんが、DKIMがアラインしているのでDMARCは合格しています。DKIMの公開鍵は dig s1._domainkey.example.com TXT +short のように、セレクター名を付けて確認できます。

集計レポートで全体を確認する

テスト送信で確認できるのは、自分で送ったメールだけです。実際に送られているメール全体の状態は、DMARCの集計レポート(rua)で確認します。レポートの policy_evaluated にある dkim が pass なら、アラインしたDKIMで合格しています。auth_results の dkim が pass なのに policy_evaluated が fail なら、署名ドメインが一致していない送信元です。

レポートの宛先に別ドメインのアドレスを指定する場合は、受け取る側のドメインで受け入れを示すレコードが必要です。たとえば example.com のレポートを reports.example.net で受け取るなら、example.com._report._dmarc.reports.example.net に v=DMARC1 のTXTレコードを置きます。外部のレポート集計サービスを使う場合は、多くはサービス側で用意されていますが、案内を確認してください。

つまずきやすい点

  • 鍵の公開漏れ:送信サービスで署名を有効にしても、DNSにレコードを追加し忘れると検証に失敗します。CNAMEの値の末尾に余分な文字が入っていないかも確認します。
  • 転送やメーリングリスト:本文やヘッダーを書き換える経路を通ると署名が壊れます。DKIMだけでは防げないため、レポートで影響の大きさを見て判断します。
  • 大量送信者向けの要件:Gmailなどは一定量以上を送る送信者に、SPF・DKIM・DMARCの設定と、差出人ドメインとのアラインメントを求めています(2026年10月現在)。条件や対象は変わることがあるので、各社の案内を確認してください。

まとめ

  • DMARCは、SPFかDKIMのどちらかが pass し、そのドメインが差出人と一致したときに合格する。DKIMでは署名の d= を比べる。
  • adkim=r(既定)は組織ドメインの一致で合格、adkim=s は同じドメインのみ。理由が無ければ relaxed でよい。
  • 送信元ごとに自社ドメインで署名させる。配信サービスは「ドメイン認証」などの設定とDNSレコードの追加で行う。
  • WordPressはSMTPプラグインで送信サービスにつなぎ、差出人を署名ドメインのアドレスに合わせる。フォーム入力者のアドレスは Reply-To に。
  • テスト送信のヘッダーと集計レポートの policy_evaluated で、アラインした pass になっているかを確認する。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲