ドメインやメールの設定をしていると、「TXTレコードを追加してください」と言われることがありますよね。
「SPFレコードをTXTレコードで設定」「Google Search ConsoleでTXTレコードで認証」など、TXTレコードはさまざまな場面で登場します。
でも、「TXTレコードって何?」「どうやって設定すればいいの?」と疑問に思う方も多いのではないでしょうか。
この記事では、DNS TXTレコードの基本的な仕組みから、SPF・DKIM・DMARCなどのメールセキュリティ設定、ドメイン所有権確認、具体的な設定方法まで、初心者の方にもわかりやすく解説します。
TXTレコードとは?

基本的な定義
TXTレコード(Text Record)とは?
DNSにテキスト情報を登録するためのレコードです。
「TXT」は「Text(テキスト)」の略で、ドメインに関する補足情報を文字列として保存できます。
TXTレコードの特徴
①自由にテキストを保存できる
管理者が任意の文字列を設定できます。特定のフォーマットは決められていません。
②人間にも機械にも読める
- 人間が読めるメモ(当初の用途)
- プログラムが処理するデータ(現在の主な用途)
③1つのドメインに複数設定可能
同じドメインに何個でもTXTレコードを追加できます。
TXTレコードの歴史
元々の目的
TXTレコードは当初、管理者がドメインに関するメモを残すために作られました。
例:「このサーバーの担当者はXXXです」といった覚え書き。
現在の用途
現在では、以下のような重要な用途で使われています:
- メールのセキュリティ設定(SPF、DKIM、DMARC)
- ドメイン所有権の確認
- 各種サービスの認証
- サイト検証
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バージョン1ip4: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バージョン1k=rsa:暗号化方式(RSA)p=...:公開鍵
仕組み
- 送信側:秘密鍵でメールに署名
- 受信側:TXTレコードの公開鍵で署名を検証
- 署名が正しければ、改ざんされていないと判断
③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バージョン1p=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"
仕組み
- サービス側が固有の文字列を発行
- その文字列をTXTレコードに登録
- サービス側がDNSを確認
- 文字列が一致すれば所有者と認証
⑤サイト検証・各種認証
その他の用途
- 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レコードを設定する手順を解説します。
事前に確認すること
必要な情報
- 設定するテキスト内容(サービス提供元から指示される)
- ホスト名(例:@、_dmarc、selector._domainkey)
- DNS管理画面へのログイン情報
お名前.comでの設定手順
手順
- お名前.com Naviにログイン
- 「DNS」メニューを選択
- 「ドメインのDNS設定」をクリック
- 設定したいドメインを選択
- 「DNSレコード設定を利用する」をクリック
- 「追加」ボタンをクリック
- 以下を入力:
- ホスト名:
- ルートドメインの場合:空欄または
@ - SPFの場合:空欄
- DKIMの場合:
selector._domainkey - DMARCの場合:
_dmarc
- ルートドメインの場合:空欄または
- TYPE:
TXTを選択 - VALUE:指定された文字列をコピー&ペースト
- TTL:
3600(1時間、推奨)
- 「追加」をクリック
- 「確認画面へ進む」→「設定する」
注意点
- 値はダブルクォーテーション(
")で囲む - コピペ時にスペースや改行が入らないよう注意
その他のDNSサービスでの設定
基本的な流れは同じ
- DNS管理画面にログイン
- DNSレコード設定画面を開く
- 新しいレコードを追加
- タイプを「TXT」に設定
- ホスト名とテキスト内容を入力
- 保存
主な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)
手順
- コマンドプロンプトを開く
- 以下のコマンドを入力
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)
手順
- ターミナルを開く
- 以下のコマンドを入力
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
- サイトを開く
- ドメイン名を入力
- 「TXT Lookup」をクリック
Google Admin Toolbox
- ドメイン名を入力
- タイプで「TXT」を選択
- 「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"
段階的な運用
- 最初は
p=noneで監視のみ - 問題なければ
p=quarantine(隔離)に変更 - さらに厳格化する場合は
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レコードでよくある問題と解決方法
問題①設定したのに反映されない
原因
- DNS反映待ち:設定が世界中のDNSに反映されるまで最大72時間
- キャッシュが残っている
- 設定ミス
解決方法
- 24〜72時間待つ
- TTLの時間を確認
- 設定内容を再確認(スペース、改行、ダブルクォーテーション)
問題②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"
問題③メールが迷惑メールフォルダに入る
原因
- SPF、DKIM、DMARCの設定が不十分
- 認証に失敗している
解決方法
- SPFレコードが正しく設定されているか確認
- DKIMを設定
- DMARCを設定
- メールヘッダーで認証結果を確認
問題④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"
設定の基本手順
- DNS管理画面にログイン
- DNSレコード設定画面を開く
- TXTレコードを追加
- ホスト名とテキスト内容を入力(ダブルクォーテーションで囲む)
- 保存
確認方法
- Windowsの場合:
nslookup -type=txt ドメイン名 - Mac/Linuxの場合:
dig ドメイン名 TXT - Webサービス:MXToolbox、Google Admin Toolbox
メールセキュリティ設定の推奨手順
- SPFレコードを設定(基本)
- DKIMレコードを設定(推奨)
- DMARCレコードを設定(Gmail等では必須)
- 段階的に厳格化(
p=none→p=quarantine→p=reject)
注意点
- 値は必ずダブルクォーテーションで囲む
- SPFレコードは1つのドメインに1つだけ
- 設定後は必ず確認する
- TXTレコード数は49個までが推奨
- 反映には最大72時間かかる場合がある
トラブルシューティング
- 反映されない→24〜72時間待つ、設定を再確認
- SPFレコードが複数→1つに統合する
- メールが迷惑メール扱い→SPF、DKIM、DMARCを設定
- 255文字超過エラー→複数の文字列に分割
- ダブルクォーテーションエラー→半角の
"を使う
TXTレコードは、メールのセキュリティとドメインの認証に欠かせない重要な設定です。特にメールを送信する場合、SPF・DKIM・DMARCの設定は2024年以降ほぼ必須になっています。
この記事を参考に、正しくTXTレコードを設定して、安全で信頼性の高いメール運用とドメイン管理を実現してくださいね!

コメント