SPF includeとは? 役割・設定方法・DNSルックアップ上限超過の解消法を解説

最終更新日:2026年10月01日 公開日:2025年12月23日
SPF includeとは? 役割・設定方法・DNSルックアップ上限超過の解消法を解説

SPF(Sender Policy Framework)は、メールの送信元IPアドレスをもとに、許可された送信者から送られたメールかどうかを確認する送信ドメイン認証技術です。送信側は、あらかじめメール送信を許可するIPアドレスやサーバーの情報をSPFレコードとしてDNSに登録しておきます。受信側は、受け取ったメールの送信元IPアドレスとSPFレコードを照合し、許可されたサーバーから送信されたものかを確認します。

外部のメール配信サービスを利用している場合には、SPFレコードの設定時に、他ドメインのSPFポリシーを参照する「include」がよく利用されます。includeが正しく設定されていなかったり、DNSルックアップ回数の上限を超えてしまったりすると、SPF認証が正常に行われない可能性があります。

本記事では、SPF includeの役割から、具体的な書き方と設定方法、よくある設定ミス、DNSルックアップ回数の上限を超過してしまった場合の解決策まで、わかりやすく解説します。

お役立ち資料のダウンロードページへ移動(『SPFレコード設定大全』:SPFの仕組み・設定手順・基本書式・記述例・確認方法)

SPF includeとは?

SPFの「include」とは、SPFレコードの構成要素である「メカニズム」の一つです。メカニズムとは、SPF認証において送信元をどのように評価するかを指定するものです。includeのほか、ip4、a、mx、allなど、さまざまな種類があります。

本章では、includeの役割と利用シーンについて解説します。

SPFの仕組みやレコードの構成要素、設定方法については、以下の記事で詳しく解説しています。
SPFレコードとは? 書き方・設定手順・確認方法まで完全ガイド|ベアメールブログ

SPF includeの役割

SPF includeは、別ドメインのSPFレコードを参照するために使用されるメカニズムです。

SPFは、メールの送信元IPアドレスが、そのドメインからの送信を許可されたものかどうかを確認します。includeで別ドメインのSPFレコードを参照することで、そのSPFレコードで送信が許可されているIPアドレスについても、許可の対象に含めることができます。

SPF includeの利用シーン

includeが使用されるのは、主に外部のメール配信サービスなどを利用してメールを送信する場合です。

外部サービスを利用すると、自社のメールサーバーではなく、サービス提供事業者が保有するサーバーからメールが送信されます。サービス提供事業者が公開するSPFレコードをincludeで参照することで、そのSPFレコードで送信が許可されているIPアドレスを、自社ドメインのSPFでも許可された送信元として扱うことができます。

SPF includeの書き方と設定方法

SPF includeの基本的な構文に加えて、既存のSPFレコードにincludeを追加する方法と、複数の外部サービスを利用する場合の設定例を解説します。

SPF includeの基本構文

SPFレコードは、「v=spf1」というバージョン宣言から始まり、複数のメカニズムをスペースで区切って記述します。最後には「all」メカニズムを記述し、許可されていない送信元の扱いを指定するのが一般的です。「all」には、「-all」や「~all」のように限定子を付けて、該当した場合の認証結果を指定します。なお、限定子を省略して「all」と記述した場合は「+all」と同じ扱いとなり、すべての送信元がSPF認証を通過します。

includeを使用する場合は、以下のように記述します。

v=spf1 include:[参照するドメイン] ~all

例えば、Google Workspaceからメールを送信する場合は、includeの参照先としてGoogleが指定する「_spf.google.com」を指定します。その場合のSPFレコードは次のようになります。

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

既存のSPFレコードにincludeを追加する場合の設定例

すでにSPFレコードを設定している場合は、既存のレコードにincludeを追加します。
例えば、以下のSPFレコードが設定されているとします。

v=spf1 ip4:192.0.2.1 ~all

ここにGoogle Workspaceの「include:_spf.google.com」を追加する場合は、次のように記述します。

v=spf1 ip4:192.0.2.1 include:_spf.google.com ~all

 複数の外部サービスを追加する場合の設定例 

複数の外部サービスを利用している場合は、includeを複数並べて記述します。

例えば、Google Workspaceと外部のメール配信サービスを併用している場合のSPFレコードは、以下のようになります。

v=spf1 include:_spf.google.com include:_spf.example.net ~all

このように、利用するサービスをincludeで追加していくことで、それらのサービスが指定する送信元をSPFで許可できます。

ただし、includeを追加するとDNSルックアップ回数も増えるため、上限を超えないよう注意が必要です。DNSルックアップ回数の上限については、後ほど詳しく解説します。

 SPF includeのよくある設定ミス 

SPF includeの構文はシンプルですが、記述方法を誤ると認証が正しく行われない原因になります。ここでは、includeを設定する際によくあるミスを紹介します。

 SPFレコードを新しく追加してしまう 

すでにSPFレコードが設定されている場合、新しくレコードを追加するのではなく、既存のレコードにincludeを追記する必要があります。同じドメインに複数のSPFレコードが設定されていると、PermErrorが発生します。

【誤った例】
v=spf1 include:_spf.google.com ~all
v=spf1 include:_spf.example.net ~all

【正しい例】
v=spf1 include:_spf.google.com include:_spf.example.net ~all

既存のSPFレコードを上書きしてしまう

新しい外部サービスのSPF設定を追加する際に、既存のSPFレコードをそのまま上書きしてしまうケースです。

例えば、既存のinclude:_spf.google.comを削除して新しいincludeだけを設定すると、Google WorkspaceからのメールがSPF認証に通らなくなる可能性があります。

必要な設定を残したうえで、includeを追加しましょう。

includeを「all」より後ろに記述してしまう

includeは、「~all」や「-all」などのallメカニズムより前に記述する必要があります。

allは、それまでのメカニズムに該当しなかったすべての送信元に適用されるため、その後ろに記述したincludeは評価されません。

【誤った例】
v=spf1 include:_spf.google.com ~all include:_spf.example.net

【正しい例】
v=spf1 include:_spf.google.com include:_spf.example.net ~all

includeの参照先を誤って指定してしまう

includeで指定するドメインに入力ミスがあるなど、正しい参照先を指定できていないと、SPF認証が正常に行われない可能性があります。また、参照先にSPFレコードが存在しない場合は、PermErrorが発生する原因になります。

includeを追加する際は、メール配信サービスなどが案内している参照先を確認し、正確に記述しましょう。

includeを増やしすぎてDNSルックアップ上限を超えてしまう

SPFでは、includeなどによって発生するDNSルックアップ回数に10回までの上限があります。

外部サービスを追加するたびにincludeを増やしていると、参照先のSPFレコードに含まれるincludeなども含めて上限を超え、PermErrorが発生する場合があります。

複数のincludeを設定する場合は、DNSルックアップ回数もあわせて確認しましょう。

SPF include設定時の注意点|DNSルックアップ上限

前述の通り、SPFでincludeを使用する際は、DNSルックアップ回数の上限にも注意が必要です。ここでは、DNSルックアップ回数の上限や、上限を超えた場合の影響、確認方法について解説します。

SPFのDNSルックアップ回数は10回まで

DNSルックアップとは、DNSを参照して、ドメインに紐づく情報を取得する処理のことです。SPFでは、include、a、mxなどDNSルックアップを伴うメカニズム・修飾子の評価数が、SPF評価全体で合計10回までに制限されています。

includeでは、参照先のSPFレコードにさらにincludeなどが含まれている場合、それらも回数に含まれます。そのため、SPFレコード上のincludeが10個未満であっても、DNSルックアップ回数の上限を超えることがあります。

DNSルックアップ回数の確認方法や上限を超えた場合の対処法については、以下の記事で詳しく解説しています。
SPFのDNSルックアップ回数制限とは? 確認方法や対策を解説|ベアメールブログ

お役立ち資料のダウンロードページへ移動(『SPFルックアップエラーとは?』:SPFルックアップエラーが発生するケース・確認方法・改善策)

DNSルックアップ上限を超えるとどうなる?

DNSルックアップ回数が10回を超えると、SPF認証の結果は「PermError(恒久的なエラー)」となります。

PermErrorとなったメールをどのように扱うかは受信側のメールサーバーによって異なりますが、受信拒否や迷惑メール判定など、メールの配送に影響する可能性があるため注意が必要です。

DNSルックアップ回数を確認する方法

SPFのチェックツールを利用すると、DNSルックアップ回数や上限超過の有無を手軽に確認できます。

「MxToolbox SPF Record Check」や「dmarcian SPF Surveyor」では、ドメイン名を入力することで、SPFレコードの内容やDNSルックアップに関する問題をチェックできます。

特に、SPFレコードを変更した場合や、新たに外部サービスを追加した場合は、DNSルックアップ回数が上限を超えていないか確認しておくとよいでしょう。

DNSルックアップ上限超過を解消する方法

DNSルックアップ回数が上限の10回に近づいている、あるいは超えている場合は、SPFレコードの構成や運用方法を見直す必要があります。ここでは、ルックアップ回数を削減する具体的な方法を紹介します。

不要なinclude指定を削除する

SPFレコードを見直し、不要なinclude指定を削除します。長期間ドメインを運用していると、現在は利用していない外部サービスの設定が残っていることがあります。

こうした不要なinclude指定を整理することで、DNSルックアップ回数を削減できる場合があります。

手動でSPFフラット化を行う

SPFフラット化とは、includeの参照先を展開し、許可されているIPアドレスをSPFレコードに直接記述する方法です。DNSルックアップ回数を削減する手段の一つとして利用されます。

ただし、参照先のIPアドレスが変更された場合は、SPFレコードの更新が必要です。そのため、継続的な確認やメンテナンスが発生し、運用負荷が増える場合があります。

SPFフラット化の仕組みや実施手順、注意点については、以下の記事で詳しく解説しています。
SPFフラット化(フラットニング)とは? 仕組み・手順・リスクを解説|ベアメールブログ

SPFホスティングや自動フラット化サービスを利用する

手動でSPFフラット化を行う場合、参照先の変更に応じてSPFレコードを更新する必要があります。こうした管理の負担を抑えるために、SPFホスティングや自動フラット化サービスを活用するのも有効な手段です。

ベアメールの「迷惑メールスコアリング」では、SPFホスティング機能を提供しています。SPFレコードの参照先を自動でモニタリング・更新することで、DNSルックアップ上限への対応や、SPF管理・運用の負荷軽減につなげられます。

SPFホスティングの仕組み

SPFホスティングについて、詳しくは以下のページをご確認ください。
SPFルックアップエラーを効率よく解消するならSPFホスティング|ベアメール

お役立ち資料のダウンロードページへ移動(『SPFホスティング 紹介資料』:機能詳細・料金プラン)

まとめ

本記事では、SPF includeの役割や書き方、よくある設定ミス、DNSルックアップ回数の上限と対処法について解説しました。

includeは、外部のメール配信サービスなどが指定するSPFレコードを参照する際によく利用されるメカニズムです。一方、設定を誤ったり、DNSルックアップ回数が上限を超えたりすると、SPF認証が正常に行われない原因になります。

SPFレコードを変更した場合や新たな外部サービスを追加した場合は、設定内容やDNSルックアップ回数を確認することが重要です。また、管理の負担が大きい場合は、SPFホスティングなどの活用も検討するとよいでしょう。