渚ナギサコーポレーションSEO・LLMO・AEO・AIOのお悩み、全部お任せください。

全国対応打ち合わせから納品まで
メールで完結します

サイトを
見てもらう
サイトを見てもらう(無料)
COLUMN 1161 / メールセキュリティ

SPFの設定方法は?書き方の例と複数のサービスを使う時の注意点を解説

公開 2026.11.06文・ナギサコーポレーション

この記事の答え

  • SPFは、自社ドメインのDNSにTXTレコードを1本置いて設定する
  • サービスが増えても別の行にせず、1本⁠のレコードにincludeで足す
  • DNS参照は10回までで、includeの中の参照も数に入る
目次

SPFの設定は、自社のメールを送ってよいサーバーを書いたTXTレコードを、ドメインのDNSに1本置く作業です。

今日やることは、自社のドメインを差出人にしてメールを送っているものを全部書き出すことです。Microsoft 365やGoogle Workspaceだけでなく、メール配信サービス、問い合わせフォーム、業務システムの通知も入れます。ここで漏れると、そのメールがSPFの認証に失敗します。

SPFレコードの基本の書き方は?

SPFレコードは、Googleの設定手順⁠の言葉では「ドメインに追加する1行⁠のテキスト」⁠で⁠す⁠。その1行に、ドメインに代わってメールを送るサーバーをすべて書きます。形は次のとおりです。

v=spf1 送信元 送信元 … 認証に通らない時の扱い

使う語はそれほど多くありません。

書くもの 意味 例
v=spf1 SPFレコードの宣言。必ず先頭 v=spf1
include: 別のドメインの送信元を取り込む include:_spf.google.com
ip4: / ip6: IPアドレスを直接書く ip4:192.0.2.10
~all / -all 書いていない送信元の扱い ~all

自社で使うメールサービスごとの書き方は、公式の文書に出ています。

Google Workspaceだけの場合
v=spf1 include:_spf.google.com ~all

Microsoft 365だけの場合
v=spf1 include:spf.protection.outlook.com -all

上はGoogleの手順、下はMicrosoftの手順⁠にある形です。末尾の違いは、後の節で説明します。

どこに、どんな順番で設定する?

SPFはメールの管理画面ではなく、ドメインのDNSに設定します。Googleは管理コンソールで特に何もする必要はないと案内し、Microsoftも管理ポータルでは扱わず、レジストラーかDNSホスティング事業者の側で作ると案内しています。作業の順番は次のとおりです。

  1. 自社ドメインでメールを送っているものを書き出す
  2. 各サービスの公式文書で、指定のincludeかIPアドレスを確かめる
  3. DNSの管理画面で今のTXTレコードを見て、v=spf1 で始まる行があるか確かめる
  4. 無ければ新しく1本作り、あれば既存の1本⁠を編集する
  5. 実際に送ったメールで、認証の結果を確かめる

DNSの管理者が社外の制作会社やプロバイダということもよくあります。その場合は依頼先を確かめて、書きたい1行⁠を渡すと話が早く進みます。Googleの手順⁠によれば、SPF認証が機能し始めるまでに最長で48時間ほどかかることがあります。確認の手順はSPF・DKIM・DMARCの設定状態を調べる方法⁠にまとめました。

サブドメインにも注意が要ります。Microsoftの文書⁠のとおり、contoso.com のSPFレコードは marketing.contoso.com をカバーしません。サブドメインから送るなら、そのサブドメインのレコードを別に作ります。

~allと-allはどちらにする?

どちらも「書いていない送信元」⁠へ⁠の指示で、強さが違います。-all は拒否すべきという指示です。~all は受け入れたうえで目印を付けるべきという指示です。実際にどう扱うかは、受信側のメールシステムが決めます。

各社の案内は分かれています。Googleは~allを勧め、Microsoftは、DKIMとDMARCも使うことを前提に-allを勧めています⁠。Microsoftの文書には、DKIM署名のないメールでは、~all の失敗だとDMARCポリシーが実質的に無視されるとの記載もあります。

私たちの考えはこうです。送信元の洗い出しが済んでいない間は ~all にします。全経路の認証を確かめ、DKIMも揃ってから -all にするかを決めます。書き漏らした経路があるまま -all にすると、正規のメールが拒否されるおそれがあるためです。

複数のサービスを使うときはどう書く?

レコードを増やさず、1本⁠の中に足します。同じドメインにSPFレコードが2本あると、受信側はどちらで判定するか決められません。仕様のRFC 7208⁠は複数持つことを禁じていて、Microsoftの文書でも結果はpermerrorになると説明されています。

次の上の形は、配信サービスの導入時に起きやすい間違いです。

誤り(2本に分かれている)
v=spf1 include:_spf.google.com ~all
v=spf1 include:amazonses.com ~all

正しい(1本にまとめる)
v=spf1 include:_spf.google.com include:amazonses.com ~all

正しい形は、Googleの手順にある組み合わせの例です。配信サービスの案内には、単体で使うときのSPFレコードが1行⁠で載っていることがあります。そのまま新しい行として登録せず、includeの部分だけを既存の行へ移します。

たとえば、社内のメールはMicrosoft 365で送り、受発注システムの注文確認と、展示会の案内の配信を別のサービスから同じドメインで送る製造業の場合です。includeが3つ必要で、受発注のIPアドレスが固定なら ip4: で足します。担当部署が分かれていると、導入のたびに別々の人がレコードを触るので、DNSの変更は1つ⁠の窓口に集めておくと事故が減ります。

10回⁠の制限は何を数える?

SPFには、判定の間に行うDNS参照の上限があります。RFC 7208の4.6.4⁠節は、include、a、mx、ptr、exists、redirectの合計を10までに制限し、超えた場合はpermerrorを返すよう定めています。ip4、ip6、allは数えません。

間違えやすいのは、見た目のinclude数と参照の数が別物である点です。Microsoftの文書⁠の例では、さらに3つ⁠のincludeを持つレコードを指すincludeは、それだけで4回⁠と数えます。Googleの手順には「includeは最大10個」⁠とありますが、中の入れ子まで入れた合計で10回⁠に収める必要があります。

失敗が気づかれにくい点も厄介です。判定は左から順に進み、送信元が一致した時点で止まります。そのため、右のほうの経路だけが上限に届き、特定のメールだけが失敗することがあります。社内のメールは届くのに展示会の案内だけ迷惑メールに入る、という形で表に出る場合もあるわけです。

10回⁠を超えたときの減らし方

  • 使っていないサービスのincludeを消す
  • 送信元のIPアドレスが安定し、文書化されているサービスは、ip4 / ip6 に置き換える。変更の監視は自社で行う
  • 配信サービスをサブドメインへ移す。サブドメインごとに別枠の10回になる
  • 送信に使うサービスの数を減らす

2つ目以降はMicrosoftの文書⁠にある方法で、配信サービスをサブドメインに分けると、本体のドメインの評判を守れるとも説明されています。解約したサービスのincludeを残すのも避けます。同じ文書によれば、include先が解決できないとpermerrorになり、メールが拒否される可能性があります。

文字数の制限はどう考える?

2つ⁠の数字を分けて覚えます。

  • 255バイト:TXTレコードの中の1つ⁠の文字列の上限。超えるときは複数の文字列に分ける
  • 512バイト:DNSの応答がこの大きさに収まるよう、レコードを小さく保つとされている値

どちらもRFC 7208の3.3節と3.4⁠節⁠に書かれています。分割した文字列は、受信側で空白を入れずにつなげて読まれます。分けるときは、語の区切りの空白を文字列の中に残します。

"v=spf1 include:example.com " "include:example.net ~all"

1行目の文字列の末尾に空白があるのがポイントです。長いレコードの扱いはDNS事業者の管理画面ごとに違うので、事業者の案内を確かめてください。文字数が問題になるほどIPアドレスを並べているなら、先に送信元の整理を検討します。

SPFを設定すれば、なりすましは防げる?

SPFだけでは足りません。Microsoftの文書も、最適な保護にはDKIMとDMARCの構成も必要だとしています。Gmailの送信者ガイドラインでは、すべての送信者にSPFかDKIMを求め、1日5,000件以上⁠の送信者にはSPF、DKIM、DMARCのすべてを求めています。

メールに使っていない予備のドメインを持っている会社は、そちらも見ておきます。Microsoftの文書は、送信に使わないドメインには v=spf1 -all を置いて、そのドメインからのメールが無いことを示す方法を挙げています。

DMARCの支援サービスは、送信元の洗い出しを自社で続けにくい会社に向きます。内容はDMARC導入・運用支援サービスの比較で確かめられます。メール全体の守りをどこまで揃えるかはメールのセキュリティ対策⁠とメールセキュリティ製品の比較を見てください。製品を比べる前に標準機能の範囲を確かめたい場合は、メールセキュリティ製品の比較の見方⁠が参考になります。

よくある質問

SPFレコードはどう書けばいいですか?

v=spf1 で始め、送信元をincludeやIPアドレスで並べ、最後に~allか-allを書きます。Google Workspaceだけなら v=spf1 include:_spf.google.com ~all という1行です。

メール配信サービスを追加するときはSPFレコードを増やしますか?

増やしません。1つ⁠のドメインに置けるSPFレコードは1本で、2本あるとpermerrorになります。今あるレコードの中にサービスのincludeを足します。

SPFの10回制限とは何ですか?

判定のときに行うDNS参照の回数の上限です。include、a、mx、exists、redirectなどが数に入り、10回⁠を超えるとpermerrorになります。include先の中の参照も合算します。

SPFの文字数に制限はありますか?

TXTレコードの1つ⁠の文字列は255バイトまでです。長いときは複数の文字列に分けられ、受信側では空白なしでつなげて読まれます。レコード全体は、DNSの応答が512バイトに収まる大きさに保つよう仕様に書かれています。

あわせて読みたい

セキュリティ / COLUMN 1215メールセキュリティSPF・DKIM・DMARCの確認方法は?自社の状態を5分⁠で調べる手順

SPF・DKIM・DMARCの状態は、無料の確認サイトでDNSのレコードを見て、実際に送ったメールのヘッダーを読むと分かります。Authentication-Resultsの読み方と、結果ごとに次にすることを整理します。

解説を読む
セキュリティ / COLUMN 1236メールセキュリティメールセキュリティ製品の比較の見方は?標準機能で足りるかの判断を解説

メールセキュリティ製品は、標準機能の範囲を確かめ、足りない所を具体的に書いてから比べます。Microsoft 365とGoogle Workspaceの標準機能と追加プラン、追加の製品が要る場面、比べる項目を公式文書で整理します。

解説を読む
メールセキュリティとは?受信・送信・なりすましの3方向で考える対策

メールセキュリティとは、届く攻撃、送るときの誤り、自社名のなりすましの3方向から会社のメールを守る取り組みです。警察庁とIPAの資料をもとに、中小企業が足りない所を見つける順番を整理します。

解説を読む
PPAPとは?パスワード付きZIPをやめる理由と取引先への伝え方

PPAPとは、パスワード付きZIPファイルとパスワードを別々のメールで送る手法です。やめる理由、代わりの渡し方の決め方に加え、長年の取引先へ方法の変更を伝える文面の考え方を、公的機関の資料をもとに整理します。

解説を読む

いきなり契約する必要はありません。

御社のサイトを見て、「検索とAIから問い合わせを増やすなら、まず何をするべきか⁠」⁠をお伝えします。営業電話はしません。相談だけでも構いません。

自社サイトを見てもらう 打ち合わせから納品まで、メールで完結します
サイトを見てもらう