ほぼすべてのゾーンで出会うレコード
TXTレコードを解説:SPF、DKIM、DMARC
TXT レコードは、ドメイン名に付随する任意のテキストを保持します。取るに足らないことのように聞こえますが、メールの信頼性を担うシステム全体が、これによって公開されています。さらに、これまでに行うことになるドメイン所有確認の大半も、これで行われます。
根本的な問題は、1982年に設計されたSMTPでは、どのサーバーでも任意のドメインとして送信していると主張できることです。プロトコル上、それを防ぐものは何もありません。SPF、DKIM、DMARCは、その問題を解決するために後から追加された3つの層で、いずれもTXTレコードの中に存在します。
重要なポイント
MXレコードは、メールがどこに届くかを決めます。この3つのTXTレコードは、あなたからだと称するメールを誰かが信じるかどうかを決めます。これらがなければ、正当なメッセージが迷惑メールに入ってしまいます。
SPF:どのサーバーがあなたとして送信できるか
SPF(Sender Policy Framework)は、あなたのドメインのメール送信を許可されたサーバーの一覧を公開します。受信サーバーは、接続してきたIPをその一覧と照合します。
example.com. 3600 IN TXT "v=spf1 include:_spf.google.com ip4:93.184.216.34 ~all"| 部分 | 意味 |
|---|---|
v=spf1 | バージョンの識別子。必ず先頭に置きます。 |
include:_spf.google.com | GoogleのSPFレコードに含まれるものすべてを、同様に信頼します。 |
ip4:93.184.216.34 | この特定のアドレスを信頼します。 |
~all | ソフトフェイル:それ以外はすべて疑わしいものの、拒否はされません。 |
-all | ハードフェイル:記載されていないものはすべて拒否します。より厳格です。 |
DKIM:暗号による署名
DKIM(DomainKeys Identified Mail)は、送信するメッセージごとに、秘密鍵で署名します。対応する公開鍵をDNSで公開し、受信側が署名を検証します。
selector1._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEB..."selector1 の部分は、メールプロバイダーが選び、署名された各メッセージに含まれるため、受信側はどの鍵を取得すればよいかが分かります。セレクターを使うことで、鍵をローテーションしたり、複数のプロバイダーを競合なく運用したりできます。
SPFに対するDKIMの利点は、署名がメッセージ自体を対象にするため、転送されても有効なことです。弱点は、署名がまったくないまま届くメッセージについては何も語らないことで、DMARCがそのギャップを埋めます。
DMARC:最初の2つが失敗したときにどうするか
DMARC(Domain-based Message Authentication, Reporting and Conformance)は、ほかの2つを結び付けます。SPFまたはDKIMが合格するだけでなく、表示されるFromアドレスと整合(アライメント)していることを要求し、失敗したときにどうするかを受信側に伝えます。
_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:reports@example.com; pct=100"| タグ | 意味 |
|---|---|
p=none | 監視のみで、何も措置を取りません。出発点です。 |
p=quarantine | 失敗したメールを迷惑メールに送ります。 |
p=reject | 失敗したメールを完全に拒否します。最終的な目標です。 |
rua= | 集計レポートの送信先。 |
pct= | ポリシーをこの割合のメールに適用します。段階的な展開に便利です。 |
3つを安全に導入する
順序が重要です。いきなり p=reject にするのは、自社の請求書を配信不能にする典型的な方法です。
あなたとして送信するものをすべて洗い出す
メールプロバイダーはもちろん、請求ツール、CRM、マーケティングプラットフォーム、チケット管理システム、そしてアプリのトランザクションメールもです。ここで見落としたものは、後で必ず壊れます。
ソフトフェイルでSPFを公開する
手順1のすべての送信元を含め、末尾を
~allにします。ソフトフェイルなら、一覧を検証している間、メールを損なうことなく、記載のない送信元に疑わしいという印を付けられます。DKIM署名を有効にする
各プロバイダーで有効にし、提供されたセレクターのレコードを公開します。テストメッセージを送り、署名が検証されることを確認します。
DMARCはp=noneから始める
監視のみです。2~4週間、集計レポートを集めます。忘れていた送信元が明らかになります。
段階的に厳しくする
レポートに正当な送信元だけが合格していると示されたら、
p=quarantineに移行します。最初はpct=25から始めてもよく、問題がなくなったらp=rejectにします。
TXTレコードはメールだけのものではない
同じレコードタイプが、数十のサービスのドメイン所有確認も担っています。Google Search Console、Microsoft 365、Facebookなどは、トークンを TXT レコードとして公開するよう求め、その後それを確認します。
example.com. IN TXT "google-site-verification=rXsLp2..."
example.com. IN TXT "MS=ms12345678"これらは問題なく共存します。ドメインは多数のTXTレコードを持てます。ルールは、v=spf1 で始まるものがちょうど1つでなければならない、ということだけです。
任意のドメインを検索ツールにかければ、すべてのTXTレコードをまとめて確認できます。重複したSPFレコードや、削除されないままのトークンを、手早く見つける方法です。
ドメインの公開DNSアドレスを調べたい場合は、Domain IP Lookupツールをお試しください。
このテーマの無料ツール
よくある質問
関連記事
メールがメールサーバーを見つける仕組み
送信者
you@gmail.com
MX検索
誰が受け取る?
メールサーバー
優先度10が最初
受信トレイ
配信完了
優先度の数値が小さいものが優先され、大きいものはバックアップ
MXレコードとは?メール配送の仕組みを解説
メールの届け先を決めるレコードです。優先度の数字の仕組み、null MXの意味、メッセージが気づかないうちに失われる間違いを解説します。
逆引きDNSは検索を逆向きに行う
IPアドレス
93.184.216.34
出発点
PTR検索
in-addr.arpa、自分ではなく先方のゾーン
ホスト名
答え
逆引きゾーンはドメイン所有者ではなく、IPブロックの所有者のもの
逆引きDNSとは?PTRレコードの解説
逆向きに行われる検索です。ホスティングプロバイダーが管理している理由と、設定がないとメールが静かに迷惑メールへ振り分けられる理由を解説します。
ほぼすべてのゾーンで出会うレコード
DNSレコードタイプ徹底解説:完全リファレンス
知っておくべきレコードタイプのすべてについて、役割、書式、そして陥りがちな間違いを、1つのリファレンスページにまとめました。