DMARCを設定していないリスクと最初に置く設定

診断で「DMARCレコードが設定されていません」と表示された場合、まず知っておきたいことが2つあります。
1つは、DMARCが未設定であることだけを理由にあなたが送っている正規のメールが直ちに届かなくなるわけではないということです。SPFやDKIMが正しく設定されていれば受信側は、それらを見て判断します。
もう1つは、それでも未設定の状態ではできないことが確実に2つあるということです。認証に失敗したメールを受信側にどう扱ってほしいかを伝えられないことと自分のドメインを名乗るメールがどこから送られているかの報告を受け取れないことです。
この記事ではその2つを具体的に説明したうえで最初に何を置けばよいかまで進みます。
このドメインからメールを送っているかで置くレコードが変わります
先に分岐があります。ここを取り違えると設定そのものが変わります。
メールを送っているドメインではいきなり強いポリシーを置いてはいけません。認証から漏れている正規の送信元があるとそのメールが届かなくなります。まず p=none を置いて、何が起きているかを見るところから始めます。
一方、メールをまったく送らないドメインではその心配がありません。誤ってブロックされる正規のメールが存在しないためです。この場合は、最初から p=reject にできます。ただしDMARCだけでは足りず、MXレコードとSPFもあわせて設定します。3点セットの具体的な値は、Null MXとは?メールを使わないドメインの正しい閉じ方で説明しています。
以降は、メールを送っているドメインを前提に進めます。
DMARCを設定していないとできないことが2つあります
認証に失敗したメールをどう扱うか指示できません
DMARCレコードは、DMARCの検証を通らなかったメールについて、受信側にどうしてほしいかを伝えるものです。この指示を書く場所が p タグで、指定できる値は none(処理の希望を示さない)、quarantine(疑わしいとみなす)、reject(ドメインの正当な利用ではないとみなす)の3つです(RFC 9989 セクション4.7)。
RFC 9989では p は必須ではなく推奨で、省略時は p=none として、扱います。ただし、意図が読めず運用時の確認もしにくいため、診断では壊れたレコードとはせず情報として省略を知らせます。
レコードが無い場合、この指示自体が存在しません。受信側は、あなたのドメインを名乗る認証失敗メールを受け取ったときに、自分の基準だけで判断することになります。
認証結果の報告を受け取る先を指定できません
DMARCにはもう1つの機能があります。受信側から送信ドメインの持ち主へ認証結果をまとめて報告してもらう仕組みです。報告の宛先は、rua タグで指定します(RFC 9989 セクション4.7)。
レコードが無ければ rua も書けないため、報告を依頼する手段がありません。自分のドメインが第三者に名乗られているかどうかを知る手がかりがDNS側には無い状態になります。
rua の書き方と受け取る前に決めておくことはDMARCレポートを受け取る設定で扱っています。
誤解しやすいこと
未設定の影響を過大に見積もらないために起きないことも書いておきます。
受信側が判定をやめるわけではありません。SPFとDKIMは、DMARCとは独立して動きます。どちらかが設定されていれば受信側は、それを見て判断できます。
ただし p=reject まで引き上げる場合は、SPFだけでは足りません。RFC 9989 のセクション7.4が「p=reject を公開するドメインは、DMARCの合格をSPFだけに頼ってはならない」と定めています。理由とDKIMを足せない場合にどうするかは、SPFだけで足りるのかで扱っています。
DMARCを設定しても第三者があなたのドメインを名乗ってメールを送ること自体は、止められません。DMARCが働くのは受信側での判定であって、送信を防ぐ仕組みではありません。
そして、DMARCのポリシーを強めることが受信箱への到達を保証するわけでもありません。RFC 9989 セクション5.4は、「Mail Receivers MAY choose to reject or quarantine a message even if it passes the DMARC validation check」(メール受信者は、メッセージがDMARCの検証を通過した場合でもそのメッセージを拒否または隔離することを選択してよい)と明記しています。
Gmailの送信者要件に該当するかを確認します
受信側の要件は、送信量によって、変わります。ここは、競合する解説で最も混乱しているところなので、一次情報のまま書きます。
Googleのメール送信者のガイドラインは、要件を2つに分けています。
1日5,000件を超えるメールをGmailのアカウントへ送る場合は、「ドメインに SPF および DKIM メール認証を設定します」と「送信元ドメインに DMARC メール認証を設定します」の両方が求められます。DMARCのポリシーについては、「DMARC 適用ポリシーは none に設定できます」と明記されているので、p=none で要件を満たせます。
1日5,000件未満の場合の要件は、「送信元ドメインに SPF または DKIM メール認証を設定します」です。SPFとDKIMのどちらか一方で足り、DMARCは、要件に含まれていません。
Yahoo!メール(@yahoo.co.jp)は、送信量がしきい値を超えると制限すると説明していますが、その通数は公開していません。迷惑メール対策の説明は、「SPFかDKIM、もしくはDMARCの認証を導入・判定クリアしていないメールは迷惑メールと判定したり、受信を拒否したりする場合があります」としており、3つのうちいずれか1つを求める書き方です。DMARC単独を必須にしているわけではありません。なお senders.yahooinc.com が公開している送信者要件は、Yahoo Inc.(@yahoo.com宛)のもので、LINEヤフーが運営するYahoo!メールとは別のものです。
つまり、送信量が5,000件に届かないのであればDMARCは受信側の最低要件としては、求められていません。それでも、前の節に書いた2つのことができない状態は変わりません。要件を満たすためではなく、自分のドメインで何が起きているかを見るために設定します。
本当に未設定かを確認します
「設定したはずなのに未設定と出る」場合があるため、現在の状態を確認します。
診断で確認する
ドメインを診断するとDMARCレコードの有無と内容、SPFやDKIMとの関係をまとめて確認できます。未設定であればそのドメインに合わせた設定値も表示されます。
自分でコマンドから確認する場合は、_dmarc を付けた名前のTXTレコードを引きます。DMARCレコードは、_dmarc で始まる名前のDNS TXTレコードとして公開する決まりです(RFC 9989 セクション4.5)。
dig TXT _dmarc.example.jp +short
nslookup -type=TXT _dmarc.example.jp
「未設定」と「まだ反映されていない」は違います
レコードを追加した直後は、公開DNSにまだ現れていないことがあります。再帰リゾルバは、「存在しない」という答えもキャッシュするため、追加前に問い合わせが起きているとしばらく古い答えが返り続けます。
追加したのに見つからない場合は、DNSが反映されないときの確認方法で権威サーバーの値と比べて切り分けてください。
サブドメインの場合は上位も見ます
mail.example.jp のようなサブドメインではそのサブドメイン自身にレコードが無くても上位のドメインのポリシーが適用されることがあります(RFC 9989 セクション4.10.1)。診断は、この探索を行うので、上位から継承している場合は、その旨を表示します。サブドメインに固有のポリシーを当てたい場合だけ、個別にレコードを置きます。
サブドメイン用の sp、DNS上に存在しないサブドメイン用の np、そして、どのレコードが適用されるかの決まり方はサブドメインにDMARCは必要?spタグの設定と継承の仕組みで扱っています。診断は、この探索順を使い、固定のサフィックス表をDMARC判定には使いません。
SPFとDKIMの状態で次にすることが変わります
DMARCは、SPFまたはDKIMの認証結果を使って判定します。したがって、その2つがどうなっているかで次の作業が変わります。
| 現在の状態 | 次にすること |
|---|---|
| SPFもDKIMも認証を通らない | 先にSPFかDKIMを整えます。DMARCだけ置いても判定に使える材料がありません |
| SPFかDKIMの少なくとも一方が通る | p=none を置いて監視を始めます |
すでに p=none がある |
未設定ではありません。この記事の対象外で、レポートを見ながら次の段階を検討します |
RFC 9989の展開手順も同じ順序です。SPFの公開(セクション5.1.1)とDKIM署名の設定(セクション5.1.2)、報告を受け取るメールボックスの用意(セクション5.1.3)を済ませてからDMARCレコードを公開する(セクション5.1.4)という並びになっています。
SPFやDKIMの状態がわからない場合は、独自ドメインのメールが届かない原因とDKIMセレクタの確認方法で確認できます。
p=none でレコードを追加します
メールを送っているドメインでの最初のレコードは、次の形です。
種類: TXT
ホスト名: _dmarc
値: v=DMARC1; p=none; rua=mailto:{報告の宛先}
{報告の宛先} は、あなたが決めるメールアドレスです。ここは、推測で埋められない値なので、そのままコピーせず、実際に受け取れるアドレスに置き換えてください。診断結果の画面では入力欄に自分のアドレスを入れると貼り付けられる形の値を生成します。
p=none は、認証に失敗したメールの扱いについて希望を示さない、という指示です(RFC 9989 セクション4.7)。何も書いていない状態と違うのは rua を一緒に置くことで認証結果の報告を送ってもらえるようになる点です。RFC 9989 セクション5.1.4は、この p=none と rua の組み合わせから始めるやり方をMonitoring Modeと呼んでいます。
報告の宛先は普段使っている受信箱とは分けることをおすすめします。届くのはXML形式のファイルで、人が読む前提の文面ではありません。また、自分のドメイン以外のアドレスを指定する場合は、受け取る側にも許可のレコードが必要です。この点はDMARCレポートが届かない原因で詳しく説明しています。
レコードを追加する画面は、ドメインを取得した会社ではなく、いまDNSを管理している会社の管理画面です。診断結果にはネームサーバーから判定した事業者名とその事業者向けの手順が表示されます。事業者別のガイドからも探せます。
追加した後に確認します
DNSに設定しただけでは、意図どおり動いているかまでは分かりません。3段階で確認します。
まず、公開DNSからレコードが引けることを確認します。ドメインを診断するか、上に書いた dig で確認できます。ここで見つからない場合は、反映待ちの可能性があるため、時間をおいて再度確認してください。時間をおいても見つからない場合は、書式の誤りでレコードとして読み取られていないことがあります。v=DMARC1 が先頭に来ていない場合などが該当し、切り分けはDMARCレコードの書式エラーで扱っています。
次に、自分宛にテストメールを送り、届いたメールの Authentication-Results ヘッダーを見ます。ここに dmarc=pass や dmarc=fail として、受信側が実際に評価した結果が記録されます。ヘッダーの読み方は独自ドメインのメールが迷惑メールに入る原因にあります。DNSにレコードがあることと実際のメールがDMARCの判定を通ることは別なので、ここまで確認します。
最後に、報告が届くのを待ちます。報告は受信側が送るものなので、あなたのドメイン宛のメールを扱った事業者からしか届きません。数日待っても何も届かない場合の原因はDMARCレポートが届かない原因にまとめています。
p=none は「未設定」ではありません
診断では p=none のドメインに「ポリシーが p=none (監視のみ) です」という表示が出ます。これは、要修正ではなく、確認をうながす表示です。
設定して間もない時期に p=none であることは正しい段階です。報告を見ながら自分が送っているメールがすべて認証を通っているかを確かめている最中だからです。この段階でいきなり quarantine や reject にすると認証から漏れている正規のメールが止まります。
いつ次の段階へ進むかは日数では決まりません。報告を見て、正規の送信元がすべて認証を通っている状態が続いていることを確認してから引き上げます。RFC 9989も報告を集めて分析する段階(セクション5.1.5)と強制へ進むかを判断する段階(セクション5.1.7)を分けて書いています。
実測: .jpドメイン19,065件のうち8,831件で未設定でした
DMARCレコードがどれくらい設定されているかを実際に測りました。
Majestic Millionに掲載されている .jp ドメイン19,065件について、2026年7月27日にDNSを引いた結果、DMARCレコードが見つかったのは10,103件、見つからなかったのは8,831件でした(残り131件は、問い合わせに失敗)。割合にすると46.3%が未設定です。
この母集団は、被リンクの多い順に並んだ一覧から抽出したもので、.jp ドメイン全体からの無作為抽出ではありません。規模の大きい組織に偏ります。集計値と再現用のスクリプトは、実測データのページで公開しています。
多くのドメインが未設定であることは、設定しなくてよい理由にはなりません。この数字が意味するのはあなたのドメインが珍しい状態ではないということだけです。前の節までに書いた「できないことが2つある」状態は、周りが同じでも変わりません。
まとめ
- DMARCが未設定でもSPFやDKIMがあれば正規のメールが直ちに止まるわけではありません
- 一方で、認証に失敗したメールの扱いを指示できず、認証結果の報告も受け取れません
- メールを送るドメインは、
p=noneから送らないドメインは、p=rejectを含む3点セットで閉じます - Gmailの要件は、1日5,000件を境に変わります。5,000件を超える場合はDMARCが必要で、ポリシーは、
noneで満たせます p=noneは、未設定ではありません。報告を見て、正規の送信元がすべて認証を通ってから次の段階へ進みます
現在の状態は、ドメインの診断で確認できます。DMARCだけでなく、SPF・DKIM・MXの状態とそれらの関係もあわせて表示します。
DMARCレコードを追加したあとに「DMARCが機能しない状態です」と表示された場合は、SPFもDKIMも見つからない状態です。DMARCはどちらかの上に乗る仕組みなので、レコードを書いただけでは判定が成立しません。直す順序は「DMARCが機能しない状態です」と出たときで扱っています。
まずは全体を診断してみましょう
専門知識がなくてもいまの設定状況と具体的な対処方法をわかりやすく確認できます。
ドメイン設定を診断する利用中のDNS事業者が分かっているなら事業者別の設定手順から直接進めます。