DNS TXTレコードとは?初心者にもわかる完全ガイド

Web

ドメインやメールの設定をしていると、「TXTレコードを追加してください」と言われることがありますよね。

「SPFレコードをTXTレコードで設定」「Google Search ConsoleでTXTレコードで認証」など、TXTレコードはさまざまな場面で登場します。

でも、「TXTレコードって何?」「どうやって設定すればいいの?」と疑問に思う方も多いのではないでしょうか。

この記事では、DNS TXTレコードの基本的な仕組みから、SPF・DKIM・DMARCなどのメールセキュリティ設定、ドメイン所有権確認、具体的な設定方法まで、初心者の方にもわかりやすく解説します。

スポンサーリンク
  1. TXTレコードとは?
    1. 基本的な定義
    2. TXTレコードの特徴
    3. TXTレコードの歴史
  2. TXTレコードの主な用途
    1. ①SPFレコード(メール送信元認証)
    2. ②DKIMレコード(電子署名)
    3. ③DMARCレコード(メール認証ポリシー)
    4. ④ドメイン所有権の確認
    5. ⑤サイト検証・各種認証
  3. TXTレコードの書式と制限
    1. 基本的な書式
    2. 文字数の制限
    3. よくある書式
    4. 複数のTXTレコード
  4. TXTレコードの設定方法
    1. 事前に確認すること
    2. お名前.comでの設定手順
    3. その他のDNSサービスでの設定
    4. Google Workspaceでの設定例
    5. 設定時の注意点
  5. TXTレコード設定の確認方法
    1. 方法①nslookupコマンド(Windows)
    2. 方法②digコマンド(Mac/Linux)
    3. 方法③Webサービスを使う
    4. 特定のTXTレコードを確認
  6. よくあるTXTレコードの設定例
    1. ①Gmail用SPFレコード
    2. ②複数のメールサーバーを使う場合のSPF
    3. ③Google Search Console認証
    4. ④Microsoft 365認証
    5. ⑤DMARC設定(基本)
    6. ⑥複数のサービス認証を併用
  7. TXTレコードでよくある問題と解決方法
    1. 問題①設定したのに反映されない
    2. 問題②SPFレコードが複数あるとエラー
    3. 問題③メールが迷惑メールフォルダに入る
    4. 問題④255文字を超えるエラー
    5. 問題⑤ダブルクォーテーションのエラー
  8. TXTレコード設定時の注意点
    1. ①設定前にバックアップ
    2. ②SPFレコードは慎重に
    3. ③TXTレコード数の上限に注意
    4. ④サブドメインごとの設定
    5. ⑤設定後は必ず確認
  9. よくある質問
  10. まとめ|TXTレコードの重要ポイント

TXTレコードとは?

基本的な定義

TXTレコード(Text Record)とは?

DNSにテキスト情報を登録するためのレコードです。

「TXT」は「Text(テキスト)」の略で、ドメインに関する補足情報を文字列として保存できます。

TXTレコードの特徴

①自由にテキストを保存できる

管理者が任意の文字列を設定できます。特定のフォーマットは決められていません。

②人間にも機械にも読める

  • 人間が読めるメモ(当初の用途)
  • プログラムが処理するデータ(現在の主な用途)

③1つのドメインに複数設定可能

同じドメインに何個でもTXTレコードを追加できます。

TXTレコードの歴史

元々の目的

TXTレコードは当初、管理者がドメインに関するメモを残すために作られました。

例:「このサーバーの担当者はXXXです」といった覚え書き。

現在の用途

現在では、以下のような重要な用途で使われています:

  1. メールのセキュリティ設定(SPF、DKIM、DMARC)
  2. ドメイン所有権の確認
  3. 各種サービスの認証
  4. サイト検証

TXTレコードの主な用途

TXTレコードは、特に以下の5つの用途で重要です。

①SPFレコード(メール送信元認証)

SPF(Sender Policy Framework)とは?

自分のドメインから送信を許可するメールサーバーを指定する仕組みです。

役割

なりすましメールを防ぐために、「このドメインからメールを送っていいのはこのサーバーだけですよ」と宣言します。

設定例

example.com.  IN  TXT  "v=spf1 ip4:192.0.2.1 include:_spf.google.com ~all"

意味

  • v=spf1:SPFバージョン1
  • ip4:192.0.2.1:このIPアドレスからの送信を許可
  • include:_spf.google.com:Google(Gmail)からの送信を許可
  • ~all:その他は「怪しい」と判定

なぜ必要?

SPFを設定しないと:

  • 迷惑メールフォルダに入りやすくなる
  • メールが届かなくなる
  • ドメインが悪用されるリスク

②DKIMレコード(電子署名)

DKIM(DomainKeys Identified Mail)とは?

メールに電子署名を付けて、改ざんされていないことを証明する仕組みです。

役割

メールが送信途中で書き換えられていないことを確認できます。

設定例

default._domainkey.example.com.  IN  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCSq..."

意味

  • v=DKIM1:DKIMバージョン1
  • k=rsa:暗号化方式(RSA)
  • p=...:公開鍵

仕組み

  1. 送信側:秘密鍵でメールに署名
  2. 受信側:TXTレコードの公開鍵で署名を検証
  3. 署名が正しければ、改ざんされていないと判断

③DMARCレコード(メール認証ポリシー)

DMARC(Domain-based Message Authentication, Reporting & Conformance)とは?

SPFとDKIMの認証結果をどう扱うかを指定する仕組みです。

役割

認証に失敗したメールをどうするか(隔離する/拒否する/許可する)を決めます。

設定例

_dmarc.example.com.  IN  TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"

意味

  • v=DMARC1:DMARCバージョン1
  • p=quarantine:認証失敗時は隔離(迷惑メールフォルダ)
  • rua=mailto:...:レポート送信先

ポリシーの種類

  • p=none:何もしない(監視のみ)
  • p=quarantine:隔離する
  • p=reject:拒否する(配信しない)

重要性

2024年以降、Gmailなどの大手メールサービスではDMARC設定が必須になっています。

④ドメイン所有権の確認

用途

自分が本当にそのドメインの所有者であることを証明します。

使用場面

  • Google Search Console
  • Google Workspace
  • Microsoft 365
  • SSL証明書の発行
  • 各種クラウドサービス

設定例

Google Search Consoleの場合:

example.com.  IN  TXT  "google-site-verification=xxxxxxxxxxxxxxxxxxxxxxxx"

仕組み

  1. サービス側が固有の文字列を発行
  2. その文字列をTXTレコードに登録
  3. サービス側がDNSを確認
  4. 文字列が一致すれば所有者と認証

⑤サイト検証・各種認証

その他の用途

  • MTA-STS:メール転送の暗号化設定
  • BIMI:認証済みメールにロゴを表示
  • CAA:SSL証明書発行の許可設定
  • 各種サービスの連携認証

TXTレコードの書式と制限

基本的な書式

TXTレコードは以下のような形式で記述されます。

ホスト名  TTL  クラス  タイプ  値
example.com. 3600 IN TXT "テキストの内容"

各項目の意味

  • ホスト名:example.comまたは@(ルートドメイン)
  • TTL:3600(秒) = 1時間
  • クラス:IN(Internet)
  • タイプ:TXT
  • :"ダブルクォーテーションで囲んだテキスト"

文字数の制限

重要な制限

  • 1つの文字列は255文字まで
  • 255文字を超える場合は、複数の文字列に分割する必要がある

255文字を超える場合の書式

example.com. IN TXT "最初の255文字" "次の255文字" "さらに続く..."

受信側では、これらが自動的に連結されます。

よくある書式

SPFの場合

example.com. IN TXT "v=spf1 include:_spf.google.com ~all"

DKIM の場合

selector._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GC..."

DMARCの場合

_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"

サイト検証の場合

example.com. IN TXT "google-site-verification=xxxxxxxxxxxxxxx"

複数のTXTレコード

1つのドメインに複数のTXTレコードを設定できます。

example.com. IN TXT "v=spf1 include:_spf.google.com ~all"
example.com. IN TXT "google-site-verification=xxxxxxxxxx"
example.com. IN TXT "MS=msxxxxxxxxxx"

これらはすべて独立して機能します。

TXTレコードの設定方法

実際にTXTレコードを設定する手順を解説します。

事前に確認すること

必要な情報

  1. 設定するテキスト内容(サービス提供元から指示される)
  2. ホスト名(例:@、_dmarc、selector._domainkey)
  3. DNS管理画面へのログイン情報

お名前.comでの設定手順

手順

  1. お名前.com Naviにログイン
  2. 「DNS」メニューを選択
  3. 「ドメインのDNS設定」をクリック
  4. 設定したいドメインを選択
  5. 「DNSレコード設定を利用する」をクリック
  6. 「追加」ボタンをクリック
  7. 以下を入力:
  • ホスト名:
    • ルートドメインの場合:空欄または@
    • SPFの場合:空欄
    • DKIMの場合:selector._domainkey
    • DMARCの場合:_dmarc
  • TYPE:TXTを選択
  • VALUE:指定された文字列をコピー&ペースト
  • TTL:3600(1時間、推奨)
  1. 「追加」をクリック
  2. 「確認画面へ進む」→「設定する」

注意点

  • 値はダブルクォーテーション(")で囲む
  • コピペ時にスペースや改行が入らないよう注意

その他のDNSサービスでの設定

基本的な流れは同じ

  1. DNS管理画面にログイン
  2. DNSレコード設定画面を開く
  3. 新しいレコードを追加
  4. タイプを「TXT」に設定
  5. ホスト名とテキスト内容を入力
  6. 保存

主なDNSサービス

  • Cloudflare
  • Google Cloud DNS
  • AWS Route 53
  • バリュードメイン
  • ムームードメイン
  • さくらインターネット

Google Workspaceでの設定例

Gmail用SPFレコード

ホスト名: @(または空欄)
TYPE: TXT
VALUE: "v=spf1 include:_spf.google.com ~all"

ドメイン確認用TXTレコード

ホスト名: @
TYPE: TXT
VALUE: "google-site-verification=xxxxxxxxxxxxxx"

設定時の注意点

①既存のTXTレコードを確認

同じホスト名に同じ用途のTXTレコードが既にある場合、上書きや統合が必要です。

②SPFレコードは1つだけ

同じドメインに複数のSPFレコードは設定できません。統合する必要があります。

③ダブルクォーテーションを忘れずに

値は必ず"で囲んでください。

④コピペ時のスペースや改行に注意

余計なスペースや改行が入ると、正しく動作しません。

TXTレコード設定の確認方法

設定が正しく反映されているか確認する方法です。

方法①nslookupコマンド(Windows)

手順

  1. コマンドプロンプトを開く
  2. 以下のコマンドを入力
nslookup -type=txt example.com

結果の見方

example.com     text = "v=spf1 include:_spf.google.com ~all"
example.com     text = "google-site-verification=xxxxxxxxx"

設定したテキストが表示されればOKです。

方法②digコマンド(Mac/Linux)

手順

  1. ターミナルを開く
  2. 以下のコマンドを入力
dig example.com TXT

結果の見方

;; ANSWER SECTION:
example.com. 3600 IN TXT "v=spf1 include:_spf.google.com ~all"
example.com. 3600 IN TXT "google-site-verification=xxxxxxx"

方法③Webサービスを使う

MXToolbox

DNS Lookup Text Record - MxToolbox
  1. サイトを開く
  2. ドメイン名を入力
  3. 「TXT Lookup」をクリック

Google Admin Toolbox

Dig (DNS lookup)
  1. ドメイン名を入力
  2. タイプで「TXT」を選択
  3. 「Dig」をクリック

特定のTXTレコードを確認

DKIMレコードの確認

nslookup -type=txt selector._domainkey.example.com

DMARCレコードの確認

nslookup -type=txt _dmarc.example.com

よくあるTXTレコードの設定例

実際によく使われる設定パターンを紹介します。

①Gmail用SPFレコード

ホスト名: @
TYPE: TXT
VALUE: "v=spf1 include:_spf.google.com ~all"

②複数のメールサーバーを使う場合のSPF

VALUE: "v=spf1 ip4:192.0.2.1 include:_spf.google.com include:spf.protection.outlook.com ~all"

複数のサーバーをinclude:で列挙できます。

③Google Search Console認証

ホスト名: @
TYPE: TXT
VALUE: "google-site-verification=xxxxxxxxxxxxxxxxxxxxxxxx"

④Microsoft 365認証

ホスト名: @
TYPE: TXT
VALUE: "MS=msxxxxxxxx"

⑤DMARC設定(基本)

ホスト名: _dmarc
TYPE: TXT
VALUE: "v=DMARC1; p=none; rua=mailto:dmarc@example.com"

段階的な運用

  1. 最初はp=noneで監視のみ
  2. 問題なければp=quarantine(隔離)に変更
  3. さらに厳格化する場合はp=reject(拒否)

⑥複数のサービス認証を併用

# SPFレコード
@ IN TXT "v=spf1 include:_spf.google.com ~all"

# Google認証
@ IN TXT "google-site-verification=xxxxxxxxxx"

# Microsoft認証
@ IN TXT "MS=msxxxxxxxxx"

# DMARC
_dmarc IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"

TXTレコードでよくある問題と解決方法

問題①設定したのに反映されない

原因

  1. DNS反映待ち:設定が世界中のDNSに反映されるまで最大72時間
  2. キャッシュが残っている
  3. 設定ミス

解決方法

  1. 24〜72時間待つ
  2. TTLの時間を確認
  3. 設定内容を再確認(スペース、改行、ダブルクォーテーション)

問題②SPFレコードが複数あるとエラー

原因

SPFレコードは1つのドメインに1つだけしか設定できません。

解決方法

複数のメールサーバーを使う場合は、1つのSPFレコードに統合します。

間違い

@ IN TXT "v=spf1 include:_spf.google.com ~all"
@ IN TXT "v=spf1 include:spf.protection.outlook.com ~all"

正しい

@ IN TXT "v=spf1 include:_spf.google.com include:spf.protection.outlook.com ~all"

問題③メールが迷惑メールフォルダに入る

原因

  1. SPF、DKIM、DMARCの設定が不十分
  2. 認証に失敗している

解決方法

  1. SPFレコードが正しく設定されているか確認
  2. DKIMを設定
  3. DMARCを設定
  4. メールヘッダーで認証結果を確認

問題④255文字を超えるエラー

原因

TXTレコードの1つの文字列は255文字までです。

解決方法

複数の文字列に分割します。

@ IN TXT "最初の255文字" "次の255文字"

問題⑤ダブルクォーテーションのエラー

原因

値を"で囲んでいない、または全角の""を使っている。

解決方法

半角の"を使い、必ず値全体を囲みます。

間違い

VALUE: v=spf1 include:_spf.google.com ~all
VALUE: "v=spf1 include:_spf.google.com ~all"(全角)

正しい

VALUE: "v=spf1 include:_spf.google.com ~all"

TXTレコード設定時の注意点

①設定前にバックアップ

既存のTXTレコードを確認し、メモやスクリーンショットで保存しておきましょう。

②SPFレコードは慎重に

SPFの設定を間違えると、自分のメールが届かなくなる可能性があります。

最初は~all(ソフトフェイル)で設定し、問題なければ-all(ハードフェイル)に変更するのが安全です。

③TXTレコード数の上限に注意

ほとんどのDNSサーバーでは、1つのドメインに設定できるTXTレコードは49個までです。

不要なレコードは削除しましょう。

④サブドメインごとの設定

メインドメインとサブドメインでは、TXTレコードは別々に設定する必要があります。

例:

  • example.comのTXTレコード
  • mail.example.comのTXTレコード
  • これらは別々に設定

⑤設定後は必ず確認

TXTレコードを追加したら、nslookupやWebツールで必ず確認しましょう。

よくある質問

Q. TXTレコードとAレコードの違いは何ですか?

A. Aレコードはドメインをipアドレスに変換するのに対し、TXTレコードは補足情報(テキスト)を保存するためのものです。用途が全く異なります。

Q. TXTレコードはいくつまで設定できますか?

A. 技術的には制限はありませんが、ほとんどのDNSサーバーでは1つのドメインに49個までが推奨されています。

Q. TXTレコードの設定にお金はかかりますか?

A. 基本的に無料です。ドメイン管理費用のみで、TXTレコード設定自体に追加料金はかかりません。

Q. SPFレコードとTXTレコードは別物ですか?

A. いいえ、SPFレコードはTXTレコードの一種です。SPFの情報をTXTレコードとして保存します。

Q. TXTレコードの反映にどれくらいかかりますか?

A. 数分〜72時間かかります。通常は数時間以内に反映されますが、TTLの設定によって異なります。

Q. 既存のTXTレコードを削除するとどうなりますか?

A. そのTXTレコードが使われていたサービス(メール認証、サイト検証など)が機能しなくなります。削除は慎重に行ってください。

Q. SPFレコードは必須ですか?

A. 法律的な義務はありませんが、メールの到達率を高めるために強く推奨されます。特にGmailなどへのメール送信では、2024年以降ほぼ必須になっています。

Q. TXTレコードの設定を間違えるとどうなりますか?

A. メールが届かなくなったり、サービスの認証ができなくなったりします。ただし、設定を修正すれば復旧できます。

Q. 複数のドメインで同じTXTレコードを使えますか?

A. ドメインごとに個別に設定する必要があります。コピーすることはできますが、それぞれのドメインで設定が必要です。

Q. TXTレコードにHTMLタグは書けますか?

A. 技術的には可能ですが、HTMLとして解釈されることはありません。あくまでテキストとして扱われます。

まとめ|TXTレコードの重要ポイント

DNS TXTレコードについて詳しく解説してきました。最後に、重要なポイントをおさらいしましょう。

TXTレコードとは

  • DNSにテキスト情報を保存するレコード
  • 管理者が任意の文字列を設定可能
  • 1つのドメインに複数設定できる

主な用途

用途内容
SPFメール送信元の認証
DKIMメールの電子署名
DMARCメール認証ポリシー
ドメイン所有権確認Google、Microsoft等のサービス認証
サイト検証Search Consoleなど

基本的な書式

ホスト名  TTL  IN  TXT  "テキスト内容"

文字数制限

  • 1つの文字列は255文字まで
  • 超える場合は複数の文字列に分割

よくある設定例

# SPFレコード
@ IN TXT "v=spf1 include:_spf.google.com ~all"

# Google認証
@ IN TXT "google-site-verification=xxxxxxxxx"

# DMARC
_dmarc IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"

設定の基本手順

  1. DNS管理画面にログイン
  2. DNSレコード設定画面を開く
  3. TXTレコードを追加
  4. ホスト名とテキスト内容を入力(ダブルクォーテーションで囲む)
  5. 保存

確認方法

  • Windowsの場合:nslookup -type=txt ドメイン名
  • Mac/Linuxの場合:dig ドメイン名 TXT
  • Webサービス:MXToolbox、Google Admin Toolbox

メールセキュリティ設定の推奨手順

  1. SPFレコードを設定(基本)
  2. DKIMレコードを設定(推奨)
  3. DMARCレコードを設定(Gmail等では必須)
  4. 段階的に厳格化(p=nonep=quarantinep=reject)

注意点

  1. 値は必ずダブルクォーテーションで囲む
  2. SPFレコードは1つのドメインに1つだけ
  3. 設定後は必ず確認する
  4. TXTレコード数は49個までが推奨
  5. 反映には最大72時間かかる場合がある

トラブルシューティング

  • 反映されない→24〜72時間待つ、設定を再確認
  • SPFレコードが複数→1つに統合する
  • メールが迷惑メール扱い→SPF、DKIM、DMARCを設定
  • 255文字超過エラー→複数の文字列に分割
  • ダブルクォーテーションエラー→半角の"を使う

TXTレコードは、メールのセキュリティとドメインの認証に欠かせない重要な設定です。特にメールを送信する場合、SPF・DKIM・DMARCの設定は2024年以降ほぼ必須になっています。

この記事を参考に、正しくTXTレコードを設定して、安全で信頼性の高いメール運用とドメイン管理を実現してくださいね!

コメント

タイトルとURLをコピーしました