送信ドメイン認証 · 2026年9月21日

DMARCのp=none・quarantine・reject:運用者のためのガイド

適切なDMARCポリシーの選択は、セキュリティと到達率のバランスを取る作業です。正規のメールをブロックせずになりすましを防ぐための、p=noneからp=rejectへの安全な移行手順を解説します。

根本的なトレードオフ

DMARCポリシーの選択は、可視性と適用のどちらを取るかという選択です。p=noneは配信に影響を与えずにモニタリングを行います。p=quarantineは疑わしいメールを迷惑メールフォルダに送ります。p=rejectは認証されていないメールを完全にブロックします。最も安全なのは段階的な導入です。まずnoneですべての正規の送信元を洗い出し、次にquarantineで影響をテストし、最終的にrejectに到達してドメインをなりすましから完全に守ります。

インシデント対応の観点からポリシーが重要な理由

到達率を担当するエンジニアの第一の目標は、正規のトランザクションメールを確実に受信者に届けつつ、攻撃者によるドメインの悪用を防ぐことです。モニタリング期間を設けずにいきなりp=rejectに移行すると、忘れられていたレガシーシステムやサードパーティのマーケティングツールのメールが突然届かなくなり、優先度の高いインシデントを引き起こす可能性が高くなります。

DMARC(Domain-based Message Authentication, Reporting, and Conformance)は、SPFとDKIMのアライメントに依存しています。メッセージが両方に失敗した場合、p=タグが受信側メールサーバーにそのメッセージの扱いを指示します。

3つのポリシーレベル

1. p=none(モニタリングモード)

このモードでは、認証結果にかかわらず受信側はメッセージに対して何もしません。純粋にデータ収集のためのモードです。

使うべき場面:

  • DMARCの初期設定時。
  • 自社の代わりにメールを送信しているサービスをすべて把握できていない場合。
  • 新しいメールAPIへの移行中。

ペイロード:

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

トレードオフ:なりすましに対する保護はまったくありません。攻撃者は引き続きあなたのドメインとしてメールを送信できますが、その状況はRUA(集約)レポートで確認できます。

2. p=quarantine(緩やかな適用)

DMARCに失敗したメッセージは疑わしいものとして扱われます。ほとんどの受信側はこれらを迷惑メールフォルダに移動します。

使うべき場面:

  • p=noneのレポートを分析し、すべての正規の送信ストリームがアライメントしていることを確認した後。
  • 完全な拒否に移行する前の安全策として。

ペイロード:

v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@example.com;

トレードオフ:なりすましメールの露出は減りますが、なくなるわけではありません。DKIMキーのローテーションを誤った場合や、SPFレコードが10回のDNSルックアップ上限に達した場合には、正規のメールが迷惑メールフォルダに入ることもあります。

3. p=reject(完全な適用)

ドメインセキュリティの最高水準です。DMARCに失敗したメッセージは、受信側サーバーが受け取りをきっぱり拒否します。

使うべき場面:

  • モニタリングの結果、すべての正規トラフィックで99.9%のアライメントが確認できた場合。
  • ドメインなりすましのリスクが、時折発生する配信失敗のリスクを上回る場合。

ペイロード:

v=DMARC1; p=reject; rua=mailto:dmarc-reports@example.com;

トレードオフ:セーフティネットはありません。重要なシステムの設定が誤っていれば、そのメールは失われます。失敗はRUAレポートで確認できますが、ユーザーにメールが届くことはありません。

運用担当者のための導入チェックリスト

感覚でポリシーを変更してはいけません。集約レポートのデータに基づいて変更してください。各段階に移る前に、SendHQ Email DNS Checkerなどのツールでレコードが正しく反映されていることを確認しましょう。

フェーズ1:洗い出し(p=none)

  1. ruaアドレスを指定してp=noneを公開します。
  2. 業務サイクル全体のメール(週次レポートを含む)を捕捉するため、7〜14日間待ちます。
  3. レポートを分析し、「アライメントしていない」トラフィックを探します。
  4. 正規のサードパーティ送信元(Zendesk、Salesforce、Shopifyなど)を特定します。
  5. 特定したすべての送信元でDKIMを設定します。これがアライメントを確保する最も確実な方法です。

フェーズ2:テスト(p=quarantine)

  1. ポリシーをp=quarantineに更新します。
  2. 「メールが届かない」「メールが迷惑メールフォルダに入っている」といったサポート問い合わせを監視します。
  3. RUAレポートで失敗の新たな急増がないか確認します。
  4. 失敗が発生した場合は認証を修正し、さらに1週間quarantineのまま維持します。

フェーズ3:強化(p=reject)

  1. ポリシーをp=rejectに更新します。
  2. 最も重要なトランザクションフロー(パスワードリセット、請求書)が引き続き配信されていることを確認します。
  3. モニタリングを継続します。DMARCは「一度設定すれば終わり」の設定ではありません。

副作用としてのメール送信の扱い

AIエージェントや自動化ワークフローを構築するプロダクトエンジニアにとって、メール送信は外部への副作用です。つまり、アプリケーションロジックの外にある理由(DNSの問題、DMARCによる拒否、レート制限)で失敗する可能性があります。

冪等性と承認

AIエージェントがメール送信をトリガーする場合、再試行時の重複送信を防ぐ必要があります。APIリクエストに冪等キーを使い、ネットワークのタイムアウトによって顧客が同じメールを5回受け取ることのないようにしましょう。

さらに、エージェントに重要なメールを自律的に送信する権限を与えるべきではありません。エージェントが生成したコンテンツには承認キューを導入し、「From」アドレスと内容がブランドや認証ポリシーと整合していることを確認しましょう。

配信インフラのコスト

送信プロバイダーの選択は、DMARCの管理方法にも影響します。DKIMの設定が非常に簡単なプロバイダーもあれば、サブドメインごとに手動でDNSエントリーを追加する必要があるプロバイダーもあります。

コストを評価する際は、総所有コストに注目しましょう。たとえば、50,000通の送信はAmazon SESの従量課金(1,000通あたり0.10 USD)では約5 USDですが、Postmarkのプランでは同じ量で約66 USD(10,000通で15 USD、超過分は1,000通あたり1.20〜1.80 USD)かかります。

その他の選択肢として、月3,000通(1日100通まで)の無料プランを提供するResendや、10,000通で月額15 USDからのMailgunがあります。SendGridは現在、無料プランを60日間のトライアルに変更しており、Essentialsは月額19.95 USDからです。

どのプロバイダーを使う場合でも、DMARCポリシーはドメインを守る主要な盾であることに変わりありません。SPFしかサポートしないプロバイダーを使っている場合、SPFはメール転送時に壊れるため、p=rejectへの移行時に配信失敗のリスクが高くなります。転送後もアライメントを維持できる唯一の方法はDKIMです。

よくある失敗パターン

転送の落とし穴

ユーザーAがユーザーBにメールを送信し、ユーザーBはユーザーCへの自動転送を設定しているとします。転送サーバーは迷惑メールと判定されるのを避けるため、エンベロープ送信者を自身のドメインに書き換えることがよくあります。これによりSPFのアライメントが崩れます。p=rejectを設定していてDKIM署名がない場合、ユーザーCにそのメールが届くことはありません。

DNSルックアップ上限

SPFレコードのDNSルックアップは10回までに制限されています。SPFレコードに多くのプロバイダーを追加しすぎると、受信側はpermerrorを返します。これはDMARCの失敗につながります。解決するには、DKIMを優先した認証を推奨するプロバイダーを使うか、SPFフラット化を利用しましょう。

「シャドーIT」問題

マーケティングチームは、エンジニアリングに知らせずに新しいツール(新しいニュースレターサービスなど)に登録することがよくあります。そのツールが自社ドメインからメールを送信するとDMARCに失敗し、拒否されます。p=noneフェーズを省略できないのはこのためです。

運用担当者向けの一覧表

ポリシー | 動作 | リスク | 可視性 | 推奨される用途

p=none | なし | 低 | 高 | 洗い出しと監査

p=quarantine | 迷惑メールフォルダ | 中 | 高 | テストと移行

p=reject | ブロック | 高 | 中 | 本番環境の完全なセキュリティ

これらのレコードの技術的な実装について詳しくは、DKIM、SPF、DMARCのガイドをご覧ください。

これらのレコードを手動で管理するのは手間がかかります。SendHQは、検証済みドメインからのトランザクションメール送信と、インフラをエージェント対応にするためのツールを提供し、この作業を簡素化します。

詳しくはhttps://sendhq.ccをご覧ください。