SPF(Sender Policy Framework)
よみ: エスピーエフ
メール送信時に「このドメインからの送信を許可するサーバ」を DNS で宣言する認証技術。SPF レコード(TXT 形式)を DNS([[dns]])に設定し、受信側メールサーバが「送信元 IP がそのドメインから送信を許可されているか」を検証する。DKIM([[dkim]])・DMARC([[dmarc]])とセットで、メール認証の 3 点セット(Lesson 7-5 土台 6 領域)。
本書のスタンス(Lesson 7-5)は「SPF 未設定だと、なりすましメールを防げず、自社ドメインのレピュテーションが落ちる」。Gmail / Yahoo! / Microsoft の受信側メールサーバが厳しくなっている現代では、SPF 未設定 = メールが届かないのと近い扱い。法人 / 商用利用なら必須項目。
設定の論点:SPF レコードの内容(v=spf1 include:_spf.google.com include:amazonses.com ~all のような形式)、すべての送信経路を include に含める(Google Workspace + メール配信サービス + 業務 SaaS)、~all(softfail)と -all(fail)の選択(本格運用は -all 推奨)、DNS レコードの 10 個制限(SPF 検証の include 連鎖が 10 を超えると失敗)、新規送信元追加時に必ず SPF 更新。Resend / SendGrid 導入時の SPF 追加忘れが事故の典型。
落とし穴は、新サービス追加で SPF 更新を忘れて、そのサービスのメールが全部届かない、SPF レコードの構文ミスで認証エラー、include 連鎖が 10 を超えて検証失敗、~all → -all への移行時に既存メールがブロックされる、SPF 設定のみで「認証完了」と思い DKIM / DMARC を放置、DNS 変更直後の伝播待ちを忘れる、複数 SPF レコードを設定して 1 つしか効かない(SPF は 1 ドメインに 1 レコード)。
言葉をよく利用する人
- インフラエンジニア
- バックエンドエンジニア
- 情シス
- Web 担当者(発注側)
会話上での使用例
Resend 導入時の SPF 設定の場面
-
バックエンドエンジニア
Resend 導入。SPF 設定をお願いします
-
Web 担当者
現在のSPF は v=spf1 include:_spf.google.com ~all。include にamazonses.com追加でv=spf1 include:_spf.google.com include:amazonses.com ~allに書き換え。DNS 変更前後の値を Slack で記録、伝播 48 時間以内で確認します
メールが届かない問題の調査の場面
-
カスタマーサポート
一部のお客様にメールが届きません
-
Web 担当者
SPF / DKIM / DMARC の認証状況を確認。Gmail / Outlook / Yahoo の受信ヘッダ解析で、認証失敗の箇所を特定。SPF レコードの構文 / include 範囲 / DNS 伝播状況の 3 つから順に潰します