SPF は Sender Policy Framework の略で、そのドメインのメールを送信してよいメールサーバーを DNS で示す仕組みです。受信側メールサーバーは、送信元 IP アドレスと SPF レコードを照合し、そのメールが許可された送信元から来ているかを判断します。
メールの仕組みは古く、SMTP 自体には送信者を強く検証する仕組みがありません。そのため、SPF、DKIM、DMARC のような仕組みを重ねて、送信ドメインの正当性を判断するようになっています。
書籍
Postfix 実用ガイド
Postfix の配送経路、リレー、ログ確認、メールサーバー運用を深く確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
SPF が解決しようとしていること
SPF の目的は、送信元メールサーバーの正当性を DNS で示すことです。昔は逆引き DNS を手がかりにすることもありましたが、現在の構成では正引きと逆引きが単純に一致しないことも多く、ロードバランサー、クラウド、外部メールサービス、メール中継が絡むと判断が難しくなります。
SPF レコードの例
SPF は TXT レコードとして DNS に登録します。次は、自分の MX と特定の IPv4 アドレスからの送信を許可する例です。
example.com. 3600 IN TXT "v=spf1 mx ip4:203.0.113.10 -all"-all は、列挙した送信元以外を拒否相当として扱う指定です。最初から強くするのが不安な場合は、検証段階で ~all を使うこともあります。
SPF だけでは十分ではない
SPF は送信元サーバーを確認する仕組みであり、メール本文やヘッダーの改ざんを防ぐものではありません。また、転送を挟むと SPF が失敗することもあります。そのため、現在は DKIM と DMARC も含めて考えるのが自然です。
反対に言えば、SPF は万能なセキュリティ対策ではありません。SPF を正しく設定した組織が悪意あるメールを送ることもできます。SPF は、あくまで「そのドメインの送信元として許可されているか」を確認する仕組みです。



