Labee Dev Toolbox
技術ノートガイド用語解説
無料で試す
  1. ホーム
  2. / 用語解説
  3. / DMARC(Domain-based Message Authentication, Reporting and Conformance)
メール認証

DMARC(Domain-based Message Authentication, Reporting and Conformance)

2025年7月31日 更新

概要

DMARC(Domain-based Message Authentication, Reporting and Conformance) は、SPF と DKIM の認証結果を組み合わせ、認証に失敗したメールをどう処理すべきかをドメイン所有者が宣言する仕組みです。仕様は RFC 7489(2015年)で定義されています。

SPF と DKIM はそれぞれ独立した認証を行いますが、どちらも「メールクライアントに表示されるヘッダー From のドメインがなりすましでないか」を直接検証しません。DMARC はこのギャップを埋め、ヘッダー From ドメインと SPF / DKIM の認証結果を照合(アライメント)することでなりすましメールを判定します。

2025 年 11 月以降、Google は大量送信者(1 日 5,000 通以上)に対して DMARC の設定を義務化し、非準拠メールは一時的または永続的に拒否される運用に移行しています。Yahoo も同様の方針を取っています。DMARC レコードがない、またはポリシーが p=none のままでは、正規メールが迷惑メールフォルダに振り分けられるリスクがあります。

仕組み

DMARC の検証フローは次の通りです。

  1. 受信サーバーが SPF(エンベロープ From のドメイン検証)と DKIM(DKIM-Signature の d= タグのドメイン検証)を実行する
  2. _dmarc.ドメイン の TXT レコードからポリシーを取得する
  3. SPF または DKIM のいずれかが pass し、かつアライメントが取れていれば DMARC pass
  4. fail の場合、ポリシー(none / quarantine / reject)に従ってメールを処理する

アライメントとは

アライメントは、SPF / DKIM が検証したドメインと、ヘッダー From のドメインが一致するかを確認する処理です。アライメントには relaxed(デフォルト)と strict の 2 モードがあります。

relaxed モードでは組織ドメインレベルでの一致を許容します。例えばヘッダー From が @example.com で、DKIM の d= が mail.example.com であれば、どちらも example.com の配下なので pass します。strict モードでは完全一致が必要です。aspf=s または adkim=s で指定します。

ポリシー

p=none はポリシー適用なし。メールの処理に影響を与えず、レポートの受信だけを行います。DMARC 導入初期のモニタリングフェーズで使います。

p=quarantine は認証失敗メールを迷惑メールフォルダに振り分けます。p=reject は認証失敗メールを受信拒否します。段階的に none → quarantine → reject と移行するのが一般的な導入パターンです。

レポート

DMARC はドメイン所有者に認証結果のフィードバックを送ります。

rua= タグに指定したアドレスには、集計レポート(Aggregate Report)が XML 形式で届きます。通常 24 時間ごとで、送信元 IP、認証結果、件数の統計データが含まれます。自社の正規メールが pass しているか、不審な送信元がないかを把握するのに使います。

ruf= タグに指定したアドレスには、失敗レポート(Forensic Report)が届きます。ただし Gmail、Yahoo を含む主要プロバイダーの多くはプライバシー上の理由で ruf レポートを送信していません。現在は rua を軸にした運用が現実的です。

設定例

p=none から p=reject まで段階的にポリシーを強化する導入パターンと、サブドメイン向けの個別設定を示します。

モニタリングフェーズ(p=none)

DMARC 導入初期のモニタリング用レコードです。

_dmarc.example.com.  IN  TXT  "v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com"

rua で指定したアドレスに集計レポートが届き、自社の送信状況を把握できます。十分なデータが集まったら p=quarantine に移行します。

quarantine への移行

_dmarc.example.com.  IN  TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@example.com; pct=100"

問題がないことを確認したら p=reject へ移行します。

reject への移行

_dmarc.example.com.  IN  TXT  "v=DMARC1; p=reject; rua=mailto:dmarc-reports@example.com; pct=100"

サブドメインへの個別ポリシー

サブドメインに個別のポリシーを適用するには sp= タグを使います。

_dmarc.example.com.  IN  TXT  "v=DMARC1; p=reject; sp=quarantine; rua=mailto:dmarc-reports@example.com"

確認方法

DMARC レコードの内容は dig で確認できます。

dig TXT _dmarc.example.com
;; ANSWER SECTION:
_dmarc.example.com.	3600	IN	TXT	"v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s"

v=DMARC1 で始まる行が返れば、レコードが存在しています。p= タグでポリシー、rua= タグでレポート送信先を確認します。

外部の視点からも確認したい場合は、Labee Dev Toolbox の Mail Auth API を使うと、外部の視点から見た結果を取得できます。

curl "https://labee.dev/api/mail-auth?domain=example.com"
{
  "success": true,
  "data": {
    "spf": { "record": "v=spf1 include:_spf.google.com ~all", "exists": true },
    "dkim": { "record": "v=DKIM1; k=rsa; p=MIIBIjANBgkqh...", "exists": true, "selector": "default" },
    "dmarc": {
      "record": "v=DMARC1; p=reject; rua=mailto:dmarc@example.com",
      "exists": true
    },
    "bimi": { "record": null, "exists": false }
  },
  "error": null,
  "meta": { "responseTime": 123 }
}

data.dmarc.exists が true であれば外部から DMARC レコードが確認できる状態です。data.dmarc.record フィールドでポリシーの内容も確認できます。

よくある問題

DMARC 運用で頻出するのは、ポリシーの放置、レポート未設定、サブドメインの認証漏れです。

p=none のまま放置する

モニタリングフェーズで導入したまま強化しないパターンです。p=none はメール処理に影響しないため、なりすまし対策として機能しません。rua レポートを 2〜4 週間確認して正規送信元の pass が安定したら、p=quarantine に移行します。

rua の受信先を用意しない

rua= を設定しないと、認証失敗の状況を把握できません。集計レポートは XML 形式で届くため、DMARC Analyzer(dmarcian、Valimail など)のようなレポート解析サービスを使うと可読性が上がります。専用メールアドレスを用意して、定期的に確認する習慣を作ります。

pct= を低い値のまま使い続ける

pct=50 は「50% のメールにポリシーを適用する」という意味ですが、残り 50% には適用されません。部分適用はなりすましリスクを完全には排除しません。本番環境では pct=100(または省略、デフォルトが 100)で運用します。

サブドメインの送信元を見落とす

marketing.example.com や info.example.com などサブドメインから送信するサービスがある場合、p=reject 移行前にそれらもすべて SPF / DKIM を設定します。rua レポートでサブドメインの認証状況を確認してから移行します。

アライメントエラーを見落とす

SPF が pass でも、SPF が検証したドメイン(エンベロープ From)とヘッダー From が異なればアライメントエラーになります。SaaS のメール送信サービスを使う際にこのズレが起きやすく、サービス側の指示通りにカスタムドメインを設定する(または DKIM アライメントで代替する)必要があります。

他の認証方式との関係

SPF はエンベロープ From を検証しますが、ヘッダー From のなりすましは防げません。DKIM はメール本文とヘッダーへの署名で改ざんを検証しますが、署名ドメインとヘッダー From の一致は保証しません。DMARC がこの両方をヘッダー From との比較で統合し、受信側が取るべき行動を宣言します。

BIMI は DMARC ポリシーが p=quarantine 以上の場合に有効化できます。p=reject で運用している場合、VMC または CMC を取得することで Gmail や Yahoo Mail のメールに会社ロゴを表示できます。DMARC の強化は BIMI への前提条件です。

実際のドメインで確認してみる

登録不要、無料です。ドメイン名を入れるだけで外部からの見え方を確認できます。

無料で試す

関連用語

メール認証

SPF(Sender Policy Framework)

メール送信元の IP アドレスがドメイン所有者に許可されているかを検証する仕組み。DMARC の前提条件の一つ。

メール認証

DKIM(DomainKeys Identified Mail)

メールに電子署名を付与し、送信後の改ざんを検知する仕組み。SPF と並んで DMARC の前提条件。

メール認証

BIMI(Brand Indicators for Message Identification)

受信トレイにブランドロゴを表示し、メールの信頼性を視覚的に示す仕組み。DMARC p=quarantine 以上が前提条件。Gmail が対応済み。

コンテンツ 技術ノート ガイド 用語解説
ツール ツール一覧 API Reference
Labee 日本語トップ Labee LLC
© 2026 Labee LLC . All rights reserved.
ホーム ブログ ガイド 用語集