SPFレコードの設定方法:メール認証セットアップガイド
SPFレコードを確認・検証する方法。SPF構文、DNSルックアップ制限、よくあるエラー、無料テストツールを網羅したステップバイステップ設定ガイド。 — Nova Uptimeはアップタイム、SSL、メール健全性、リンク変更を1つのダッシュボードで監視します。
なぜ今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検証の仕組み#
- メールがGmailに到着する
- Gmailが確認:「yourcompany.comのSPFレコードは何か?」
- SPFレコードが応答:「mail.yourcompany.comとSendGridのみ認証済み」
- メールはSendGridから送信(認証済み)
- 結果:SPFパス ✅
attacker.comがyourcompany.comを名乗ってメールを送信しようとした場合:
- メールがGmailに攻撃者のサーバーから到着
- Gmailが確認:「攻撃者のサーバーはyourcompany.comのSPFレコードに含まれているか?」
- 答え:いいえ
- 結果: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 |
mx | MXサーバーを認証 | mx |
ptr | 逆引きDNSを認証 | ptr(ほぼ使用されない、避けるべき) |
a | Aレコードを認証 | 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など)にアクセスして:
-
DNSレコードまたはTXTレコードに移動
-
以下の内容で新しいTXTレコードを追加:
- 名前:@(またはプロバイダーによってはドメイン名)
- 値:あなたのSPFレコード
- TTL:3600(1時間、テストには十分)
-
保存して、伝播のために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.comとinclude: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を公開した後:
- ドメインからテストメールを送信する
- ヘッダーを確認:
SPF: PASSまたはSPF: FAILを探す - 迷惑メールフォルダをモニタリング:メールがまだ迷惑メールに行く?DKIM/DMARCを確認
- メール検証ツールを使用:ヘッダーを表示する一時的なメールサービスに転送する
まとめ
- すべてのメール送信サービスをリストアップする
- それぞれから公式のSPF includeを取得する
~allで始まる1つのSPFレコードに統合する- DNS TXTレコードに公開する
- メール検証ツールでテストする
- 1週間モニタリングする
- すべて機能していれば
-allに変更する - 完全な認証のためにDKIMとDMARCを追加する
メールのレピュテーションは数か月かけて構築され、数日で破壊されます。適切なSPF設定がその基盤です。
Nova Uptime のメール配信ヘルスチェッカーで、メール配信ヘルスを自動的にモニタリングしましょう — SPF、DKIM、DMARC、MXレコード、ブラックリストのステータスを監査します。🚀
関連記事
- SPFレコード設定とチェックガイド — 初心者向けのステップバイステップSPFセットアップ
- SPF・DKIM・DMARC完全ガイド — SPFが認証スタック全体にどう収まるか
- メールブラックリストのチェックと削除ガイド — SPFの欠落によるブラックリスト掲載
- DMARCセットアップ:noneからrejectへ — SPFの準備ができたらDMARCを設定
- メール配信ヘルスチェッカーガイド — 包括的なメール認証監査
- 無料SPFチェッカー — SPFレコードを即座に検証
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関連記事
DMARCポリシー設定:メールなりすましを防ぐ
無料DMARCテストと設定手順を解説。p=none、p=quarantine、p=rejectの設定、SPF/DKIMアライメント。2026年2月以降Gmail/Yahoo必須。 — Nova Uptimeはアップタイム、SSL、メール健全性、リンク変更を1つのダッシュボードで監視します。
DKIM設定ガイド:ステップバイステップの完全な構成手順
20分でDKIM設定:セレクタ確認、鍵生成、DNSレコード追加。無料DKIMチェッカー付き。2026年2月よりGmail/Yahoo必須。 — Nova Uptimeはアップタイム、SSL、メール健全性、リンク変更を1つのダッシュボードで監視します。
DKIMセレクタ検出を解説 — DKIMレコードの見つけ方
DKIMセレクタが分からない?50以上のプロバイダーで自動検出する無料ツール。Google、Mailgun、SendGrid、Microsoft 365を数秒でチェック。 — Nova Uptimeはアップタイム、SSL、メール健全性、リンク変更を1つのダッシュボードで監視します。