Nova Uptime
ガイドspf-lookupspf-record-checkspf-validation

SPFレコードの設定方法:メール認証セットアップガイド

SPFレコードを確認・検証する方法。SPF構文、DNSルックアップ制限、よくあるエラー、無料テストツールを網羅したステップバイステップ設定ガイド。 — Nova Uptimeはアップタイム、SSL、メール健全性、リンク変更を1つのダッシュボードで監視します。

SN
Sumit Nova Uptime
2026年2月22日 · 12 min read
Share:

なぜ今SPFが重要なのか#

2026年2月、GmailとYahooによる厳格なメール認証の強制が始まりました。適切なSPFレコードがないメールは、かつてないほどの割合で拒否されています。

現実:SPFレコードが正しく設定されていない場合、トランザクションメール(パスワードリセット、確認、請求書)が静かにブロックされています。お客様はあなたのサービスが壊れていると思い、苦情を言われるまで問題があることに気づきません。

このガイドでは、15分でSPFセットアップを進めていきます。

SPFとは何か、どのように機能するのか#

SPF (Sender Policy Framework) は、「これらのサーバーは、私のドメインを代表してメールを送信する権限を持っています」と示すDNSレコードです。

SPFが解決する問題#

SPFがなければ、誰でもあなたのドメインから送信されたように見えるメールを送ることができます:

From: you@yourcompany.com
Reply-To: attacker@attacker.com

このメールはあなたの会社から送られたように見えます(フィッシングに悪用されます)。SPFは、送信サーバーが実際に認証されていることを検証することで、これを防止します。

SPF検証の仕組み#

  1. メールがGmailに到着する
  2. Gmailが確認:「yourcompany.comのSPFレコードは何か?」
  3. SPFレコードが応答:「mail.yourcompany.comとSendGridのみ認証済み」
  4. メールはSendGridから送信(認証済み)
  5. 結果:SPFパス ✅

attacker.comがyourcompany.comを名乗ってメールを送信しようとした場合:

  1. メールがGmailに攻撃者のサーバーから到着
  2. Gmailが確認:「攻撃者のサーバーはyourcompany.comのSPFレコードに含まれているか?」
  3. 答え:いいえ
  4. 結果:SPF失敗 ❌

SPFレコードの形式と構文#

SPFレコードはDNS TXTレコードです。特定の構文を持っています:

v=spf1 [mechanisms] [qualifier]

それぞれを分解してみましょう:

  • v=spf1:バージョン(常にこれで始める)
  • [mechanisms]:認証されたサーバーを定義
  • [qualifier]:認証されていないサーバーの処理方法

メカニズム(よく使われるもの)

メカニズム意味
include:別ドメインのSPFを含めるinclude:_spf.google.com
ip4:特定のIPv4を認証ip4:203.0.113.50
ip6:特定のIPv6を認証ip6:2001:db8::1
mxMXサーバーを認証mx
ptr逆引きDNSを認証ptr(ほぼ使用されない、避けるべき)
aAレコードを認証a

修飾子(失敗時の処理方法)

修飾子意味使用シーン
+パス(許可)明示的に認証済み
-失敗(拒否)明示的に未認証
~ソフトフェイル(受信するがマーク)未認証のデフォルト
?ニュートラル(ポリシーなし)ほぼ使用されない

実例

v=spf1 include:_spf.google.com include:sendgrid.net ip4:203.0.113.50 ~all

この意味:

  • GoogleのSPFレコードを含める(Gmail)
  • SendGridのSPFレコードを含める(SendGrid)
  • IP 203.0.113.50も認証(オフィスのメールサーバー)
  • それ以外はソフトフェイル(~all)で処理(疑わしいとマークするが拒否はしない)

ステップ1:すべてのメール送信サービスを特定する#

SPFレコードを書き始める前に、あなたを代表してメールを送信するすべてのサービスをリストアップしましょう:

確認すべき質問:

  • Google Workspaceを使用していますか?
  • Microsoft 365を使用していますか?
  • SendGrid、Mailgun、または他のメールサービスを使用していますか?
  • オンプレミスのメールサーバーを持っていますか?
  • メールを送信するサードパーティアプリ(Zapier、自動化ツール)を使用していますか?

**すべて書き出してください。**これは人々が犯す#1のミスです — 送信サービスを忘れると、そのサービスからのメールがSPFで失敗します。

よくあるサービスとそのSPF include文:

# Google Workspace
include:_spf.google.com

# Microsoft 365
include:spf.protection.outlook.com

# SendGrid
include:sendgrid.net

# Mailgun
include:mailgun.org

# Klaviyo
include:klavan.net

# HubSpot
include:hstsrv.net

ステップ2:SPF Include文を集める#

各サービスについて、公式のSPF include文を見つけましょう(ランダムなウェブサイトではなく、ドキュメントから)。

公式情報源:

  • Google Workspace:support.google.com
  • Microsoft 365:learn.microsoft.com
  • SendGrid:sendgrid.com/docs
  • Mailgun:mailgun.com/docs

ブログ記事やランダムなウェブサイトを信用しないでください。常に公式の情報源から取得しましょう。

ステップ3:SPFレコードを構築する#

まずはこれから:

v=spf1 [mechanisms] ~all

各includeを追加:

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

IPアドレスを追加:

v=spf1 include:_spf.google.com include:sendgrid.net ip4:203.0.113.50 ~all

ステップ4:DNSに公開する#

DNSプロバイダー(Cloudflare、GoDaddy、Route 53など)にアクセスして:

  1. DNSレコードまたはTXTレコードに移動

  2. 以下の内容で新しいTXTレコードを追加:

    • 名前:@(またはプロバイダーによってはドメイン名)
    • :あなたのSPFレコード
    • TTL:3600(1時間、テストには十分)
  3. 保存して、伝播のために5〜15分待ちます

ステップ5:SPFレコードをテストする#

これらのツールのいずれかを使用して、レコードが正しいか確認してください:

無料オプション:

確認すべきポイント:

  • ✅ SPFレコードが見つかった
  • ✅ 構文エラーなし
  • ✅ ルックアップ数が10以下(超えると失敗します)

ステップ6:継続的にモニタリングする#

最初は~all(ソフトフェイル)で公開します:

  • 1週目:メール配信をモニタリング
  • メールが届くか確認
  • 迷惑メールフォルダをチェック

1週間後にすべて問題なければ、-all(ハードフェイル)に変更できます:

v=spf1 include:_spf.google.com include:sendgrid.net -all

よくあるSPFのミスと回避方法#

ミス1:DNSルックアップ10回の制限を超える#

SPF仕様ではDNSルックアップを10回に制限しています。これを超えると、SPFはPermError(永続的な失敗)を返し、メールが拒否されます。

修正方法:

  • 可能な限りinclude:ip4:に置き換える
  • SPFフラット化ツールを使用する
  • メールサービスを統合する(サービスが少なければincludeも少なくなります)

ミス2:-all~allの代わりに+allを使う

+allは「このドメインを名乗る誰でも受け入れる」という意味で、SPFを無効化します。

正しい使い方:

  • ~all:ソフトフェイル(疑わしいとマークするが配信)
  • -all:ハードフェイル(拒否)

最初は~allを使い、検証後に-allに移行しましょう。

ミス3:複数のSPFレコード#

DNS仕様では、1つの名前につきTXTレコードは1つだけ許可されています。複数のSPF TXTレコードを作成すると、DNSは最初のものだけを読み取り、他は無視されます。

正しいアプローチ:

  • 1つのSPFレコードを作成
  • すべてのメカニズムをそこに統合:
v=spf1 include:_spf.google.com include:sendgrid.net ip4:203.0.113.50 ~all

3つの別々のレコードではダメです。

ミス4:Include文のタイプミス#

include:sendgrid.cominclude:sendgrid.net — 1文字違うだけですべてが壊れます。

修正:

  • 公式ドキュメントからコピー&ペーストし、手で入力しない
  • 公開後にDNSツールで検証する

ミス5:送信サービスを忘れる#

SendGridのSPFを追加したけれど、Klaviyoを忘れる。KlaviyoのメールがSPFで失敗します。

修正:

  • メールを送信するすべてのサービスを監査する
  • 一つ残らず追加する

SPF vs DKIM vs DMARC#

SPFはメール認証の一部です。完全な保護のためには3つすべてが必要です:

  • SPF:「送信サーバーは認証されているか?」
  • DKIM:「メッセージの内容は本物か(改ざんされていないか)?」
  • DMARC:「両方がパスし、ドメインも一致するか?」

Nova Uptimeは3つすべてを自動的にモニタリングします。Nova Uptime のメール配信ヘルスチェッカーでメール配信ヘルスを確認しましょう。

実際のシナリオでSPFが機能するかテストする#

SPFを公開した後:

  1. ドメインからテストメールを送信する
  2. ヘッダーを確認:SPF: PASSまたはSPF: FAILを探す
  3. 迷惑メールフォルダをモニタリング:メールがまだ迷惑メールに行く?DKIM/DMARCを確認
  4. メール検証ツールを使用:ヘッダーを表示する一時的なメールサービスに転送する

まとめ

  1. すべてのメール送信サービスをリストアップする
  2. それぞれから公式のSPF includeを取得する
  3. ~allで始まる1つのSPFレコードに統合する
  4. DNS TXTレコードに公開する
  5. メール検証ツールでテストする
  6. 1週間モニタリングする
  7. すべて機能していれば-allに変更する
  8. 完全な認証のためにDKIMとDMARCを追加する

メールのレピュテーションは数か月かけて構築され、数日で破壊されます。適切なSPF設定がその基盤です。

Nova Uptime のメール配信ヘルスチェッカーで、メール配信ヘルスを自動的にモニタリングしましょう — SPF、DKIM、DMARC、MXレコード、ブラックリストのステータスを監査します。🚀

関連記事

Monitor Your Website Before It Goes Down

Get uptime monitoring, SSL tracking, domain expiry alerts, and email health checks. Free plan — no credit card required.

Start Monitoring Free

関連記事