SPF (Sender Policy Framework)

メール & セキュリティ
ドメインの代わりにメールを送信する権限があるメールサーバーを指定するメール認証プロトコル。
← 用語集に戻る

SPF (Sender Policy Framework) とは何か?

SPF (Sender Policy Framework) はメール認証方法で、ドメイン所有者がドメイン向けに電子メール送信が権限を持つメールサーバーを指定することを可能にします。受信メールサーバーはドメイン向けのSPFレコードをチェックして、受信メールが権限を持つソースから来たことを確認します。

SPFが重要である理由

SPFなしで、誰でも自分のドメインから来たかのようなメールを送信できます (スプーフィング)。SPFはこれを防ぎ、以下を支援します:

SPFの動作方式

1. ドメイン所有者は公開 SPFレコード (TXT) DNSで

2. 送信者のメールサーバーが送信 @example.com からのメールが主張します

3. 受信メールサーバーは見上げ example.com 向けのSPFレコード

4. サーバーが確認 送信IPが権限を持つかどうか

5. 結果が適用: Pass、fail、softfail、または neutral

SPFレコード構文

SPFレコードは特定の形式でのTXTレコードです:

v=spf1 [mechanisms] [qualifier]all

SPFレコード例

基本 (単一メールサーバー):
v=spf1 ip4:203.0.113.50 -all
Google Workspace:
v=spf1 include:_spf.google.com ~all
複数サービス:
v=spf1 include:_spf.google.com include:sendgrid.net ip4:203.0.113.50 -all

SPFメカニズム

メカニズム説明
ip4IPv4アドレスまたは範囲ip4:203.0.113.0/24
ip6IPv6アドレスまたは範囲ip6:2001:db8::/32
include別のドメインのSPFを含めるinclude:_spf.google.com
aドメインのAレコードIPa:mail.example.com
mxドメインのMXサーバーIPmx
allすべてに一致 (通常は最後)-all、~all、?all

修飾子

修飾子結果意味
+ (デフォルト)Pass権限を持つ送信者
-Fail権限なし、拒否
~SoftFailおそらく権限なし、受け付けますが フラグ
?Neutralポリシーアサーションなし

SPF実装ベストプラクティス

SoftFail で開始

SPFを最初に実装する場合、~all を使用して、正当なメール拒否を避けます:

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

Fail に移行

これが機能することを確認したら、厳格に実装向けに -all に切り替えます:

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

DNS ルックアップを10未満に保つ

SPF は最大10DNS ルックアップ (include、a、mx、redirect、exists)を許可します。これを超過するとSPF失敗の原因になります。

# DNS ルックアップとしてカウント:

include:_spf.google.com # 1 (ネストされた include を加える)

a:mail.example.com # 1

mx # 1

# カウント内ではありません:

ip4:203.0.113.50 # 0

ip6:2001:db8::1 # 0

1つのSPFレコードのみ

複数のSPFレコードは検証失敗を引き起こします。すべてのメカニズムを1つのレコード内に組み合わせます:

# 不正 - 2つのSPFレコード

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

v=spf1 include:sendgrid.net ~all

# 正しい - 組み合わせ

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

SPFレコードの確認

dig を使用:
dig example.com TXT | grep spf
DomScanを使用:
curl "https://domscan.net/v1/health?domain=example.com"

# hasSPF ステータスを返す

オンライン検証ツール: MXToolbox、mail-tester.com

一般的なSPF問題

DNS ルックアップが多すぎます

症状: SPF permerror

解決: include をフラットにするか、より少ないサービスを使用

サードパーティサービス欠落

症状: 正当なメールがSPFに失敗

解決: すべての送信サービス (マーケティングツール、CRM など)向けに include/ip4 を追加

許容性が高すぎるSPF

症状: スプーフィングされたメールがSPFをパス

問題: +all の使用またはサービスを含みすぎ

解決: 監査および権限を持つ送信者を制限

SPFはメール認証向けに不可欠ですが、DKIM および DMARC と組み合わせるときに最適に機能します。

この知識を実践する

DomScan の API を使用してドメインの可用性、状態などを確認します。