SPFとは?
SPF(Sender Policy Framework)は、RFC 7208で定義されたメール認証プロトコルです。自社ドメインからメールを送信することを許可されたすべてのIPアドレスまたはホスト名をリストしたDNS TXTレコードを公開することで機能します。受信側のメールサーバーがあなたを差出人と称するメッセージを受け取ると、DNSを照会して、送信サーバーのIPが承認済みリストにあるかどうかを確認します。
SPFがないと、誰でもメールのリターンパス(エンベロープFrom)を偽造し、自社ドメインから送信されたように見せかけることができます。これは、フィッシングやスパムキャンペーンで一般的に使用される手法です。
なぜSPFが必要なのか?
1なりすましの防止
悪意のある者が自社ドメインを送信元アドレスとして偽装することを阻止します。
2到達率の向上
受信サーバーは承認された送信者を信頼し、スパムスコアを下げます。
3DMARCに必須
SPFは、DMARCがアライメント(整合性)のために依存する2つのメカニズムのうちの1つです。
4レピュテーションの保護
未承認の送信者が、自社ドメインの送信レピュテーションにダメージを与えるのを防ぎます。
SPFの仕組み — ステップ・バイ・ステップ
承認されたIPとincludeリストを含むTXTレコードを `_your-domain.com` に公開します。
メールサーバーがメールを送信します。エンベロープ「From」アドレスには自社ドメインが含まれます。
受信サーバーは送信IPとエンベロープFromドメインを抽出します。
DNSでSPFレコードを照会し、送信IPがリストに含まれているか確認します。
結果は `pass`、`fail`、`softfail`、`neutral`、または `permerror` となり、スパムフィルタリングの判断に使用されます。
SPFレコードの構文
v=spf1 ip4:203.0.113.10 include:_spf.google.com include:sendgrid.net -allメカニズムの解説
v=spf1— バージョン、常に最初に記述しますip4:— IPv4アドレスまたは範囲を承認しますip6:— IPv6アドレスまたは範囲を承認しますinclude:— 他のドメインのSPFを継承しますa— ドメインのAレコードのIPを承認しますmx— ドメインのMXサーバーを承認しますredirect=— 他のドメインのSPF全体に委任しますクオリファイア(各メカニズムの接頭辞)
+ (デフォルト)Pass — 承認済み-Fail — 未承認の送信者を拒否~SoftFail — 疑わしいとしてマーク、拒否はしない?Neutral — 判断を下さない一般的なSPFの失敗と解決策
DNSルックアップが多すぎる
includeを生のIPに置き換えてSPFレコードをフラット化するか、SPFフラット化サービスを使用します。
送信サービスの漏れ
使用しているサービス(Mailchimp、Zendeskなど)のinclude:タグをSPFレコードに追加します。
複数のSPFレコード
v=spf1で始まるTXTレコードは1つだけ許可されます。複数を1つのレコードに統合してください。
転送メール
転送サーバーのIPがリストにないため、転送時にSPFは失敗します。これはDKIMで解決できます。
よくある質問 (FAQ)
あなたの代わりにメール送信を許可されたIPアドレスやドメインをリスト化したDNSのTXTレコードです。なりすましやフィッシング詐欺を防ぐ役割を果たします。
SPFの検証において、DNSへの問い合わせは最大10回までと決められています。これを超えると「PermError」となり、認証が失敗します。IPアドレスを直接指定するなどの対策が必要です。
「~all」(SoftFail)は認証失敗時に「疑わしい」として受け入れるよう促し、「-all」(Fail)は完全に拒否するよう指示します。
構文エラーや、前述の10回ルックアップ制限を超過していることが主な原因です。当チェッカーで具体的なエラー箇所を特定できます。
いいえ、1ドメインにつき1つの「v=spf1」レコードのみ有効です。複数あるとPermErrorになります。複数のサービスを許可する場合は1つのレコードにまとめます。
いいえ、SPFは「Return-Path」を検証します。見える「From」を保護するにはDMARCが必要です。