技術解説 · 出典付きの回答

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時間かかります。

一次情報源