技術解説 · 出典付きの回答
DNSのTXTレコードとは?定義とメールでの使い方
DNSのTXTレコードとは、ドメイン管理者がDNSに任意のテキストを登録できる、ドメインネームシステムのリソースレコードの一種です。メールにおいては、TXTレコードは主に送信者の身元を検証するためのSPF、DKIM、DMARCの認証データを保存するために使われます。
仕組み
TXTレコードは、DNSサーバーに保存されたキーと値のペアとして機能します。受信側のメールサーバーはメールを受け取ると、送信ドメインのDNSに特定のTXTレコードを問い合わせます。サーバーはレコードに関連付けられたテキスト文字列を取得し、チェック対象のプロトコルに従って解析します。たとえばSPFのルールを識別するには、v=spf1のプレフィックスを探します。
送信者にとっての重要性
TXTレコードは、ドメイン所有者が所有権を証明し、特定のIPアドレスやサービスに自分の代わりにメールを送信する権限を与えるための仕組みであるため、メールの到達率にとって非常に重要です。これらのレコードがないと、受信サーバーは送信者の真正性を検証できず、メッセージが迷惑メールと判定されたり、完全に拒否されたりすることがよくあります。
運用でよくある間違い
よくある間違いとして、1つの文字列の上限である255文字を超えてしまい、レコードを複数の文字列に分割する必要が生じるケースがあります。また、1つのドメインに複数のSPFレコードを設定してしまい、標準に違反して認証の失敗を招くケースや、引用符の欠落やプレフィックスの誤りといった構文エラーもよく見られます。
具体的な例
SPFレコードは、v=spf1 ip4:1.2.3.4 include:_spf.google.com ~allのようなTXTレコードです。DMARCレコードは_dmarcサブドメインに置かれるTXTレコードで、v=DMARC1; p=quarantine; rua=mailto:admin@example.comのような形式です。https://sendhq.cc/tools の無料ツールを使って、現在のレコードを確認できます。
ドメインの所有権確認
TXTレコードは、送信ドメイン認証以外にも、一般的なドメインの所有権確認に使われます。Google Search ConsoleやMicrosoft 365などのサービスでは、管理機能へのアクセスを許可する前に、ランダムに生成された一意の文字列をTXTレコードとして追加し、ドメインのDNS設定を管理していることを証明するようユーザーに求めます。
よく寄せられる質問
1つのドメインに複数のTXTレコードを設定できますか?
はい、1つのドメインに複数のTXTレコードを設定できます。ただし、SPFなど特定のプロトコルについては、許可するすべての送信者を1つのTXTレコードにまとめる必要があります。
TXTレコードの文字数の上限はいくつですか?
TXTレコード内の1つの文字列は255文字までに制限されていますが、複数の文字列を連結することで合計2048文字まで使えます。
TXTレコードの更新が反映されるまでどのくらいかかりますか?
反映はレコードのTTL(Time to Live)の設定によって異なり、世界中のDNSシステム全体で通常は数分から48時間かかります。
一次情報源
- RFC 7208:送信者ポリシーフレームワーク(SPF) — RFC Editor
- RFC 7489:ドメインベースのメッセージ認証・レポート・適合(DMARC) — RFC Editor
- Cloudflare DNSドキュメント — Cloudflare