Sender Policy Framework
SPFは、あるドメインのための電子メールを送信することが正式に認められているマシンはどれかという事(以下送信者ポリシー)を、ドメイン所有者が専用の書式を使ってDNSのTXTレコードに明示することを可能にする。例えば、送信者アドレスが「〜@example.jp」で終わっている電子メールを送信することを、正式に認めていないマシンはどれかということを、「example.jp」所有者が指定できる。SPFを検証する配送先メールサーバは、電子メールの通信文を受け取る前に、権限がないマシンから届いた電子メールを拒否することができる。したがって動作原理は、SPFが本当のDomain Name Systemの権威委任を利用することを除いて、DNSブラックリスト(DNSBL: DNS-based Blackhole List)によるものと全く同様である。
SPFは、エラーメールの通知先である Return-Path のメールアドレスを保護する。送信者アドレスはSMTPによる通信を開始する最初に伝えられる。もし送信先メールサーバがその送信者アドレスを拒否する場合は、権限のない送信元メールサーバはエラーメールをそのメールアドレスに送信するべきである。もし送信先メールサーバがその送信者アドレスを受け入れ、また続けて宛先メールアドレスと通信文も受け入れる場合は、送信者アドレスを保持するためにReturn-Pathヘッダを挿入するべきである。Return-Path のメールアドレスは、「From:」や「Sender:」のようなメールヘッダの発信者メールアドレスと一致することが多いが、必ずしもそういう訳ではない。
2003年に開催されたYAPC(Yet Another Perl Conference)とOSCON(O'Reilly Open Source Convention)において、SPFの概念が紹介された。2002年にポール・ヴィクシー(Paul Vixie)により著された"Repudiating Mail-From"(『Mail-Fromの否認』)という短い論説である。その前身は、Hadmut Danischによる"Reverse MX"(RMX)と、Gordon Fecykによる"Designated Mailer Protocol" (DMP)であった。
2003年6月、メン・ウェン・ウォン(Meng Weng Wong)はRMXとDMP仕様を融合し、他のプログラマからの提案を求めた。その後6ヶ月以上に渡り多くの改良が為され、コミュニティはSPFの取り組みを始めた。
パソコンのメールにおいては過去より強固なフィルタリングルールが指定できるものが多く登場しており、そのようなものを使用すれば排除可能であるが、携帯メールについては左記の理由から、そうは言えない側面がある。
前述の通り、SPFによって迷惑メールに対する追跡や法的な請求が容易になると言われている。しかし、SPFによって得られる情報は、送信者メールアドレスに対してSPF認証に合格したというお墨付きをあるメールサーバーが与えるだけのものである。そのメールサーバーを経由したというところまでの追跡は容易になるが、前述のような「登録ユーザーに対して任意の送信者アドレスからのSPF認証を合格させるようなスパム送信者用のドメイン」を経由した迷惑メールに対して、送信者を追跡できるだけの情報が得られるとは言えない。また、法的な請求については法的整備の範疇であり、SPFの守備範囲からは外れる。実際、日本においては特定電子メールの送信の適正化等に関する法律のような法的整備が行われているが、依然として迷惑メールの量は増加傾向にあるといった報告がある。
その限界にもかかわらず、多くの人はSPFの利点がその欠点に勝ることを確信し、SPFの実装を始めた。SpamAssassin version 3.0.0やAnti-Spam SMTP Proxy(ASSP)といった迷惑メール対策ソフトウェアがSPFに対応した。多くのメールサーバ(MTA: Message Transfer Agent)は、CommuniGate Pro、Wildcat、Microsoft Exchange、SmarterMailのように直接SPFに対応したり、またPostfix、Sendmail、Exim、qmailのように修正パッチやプラグインの形でSPFに対応した。Amazon、AOL、EBay、Google、GMX、Hotmail、マイクロソフト、W3Cといった多くの有名なドメインは、2004年中頃にはSPFデータを宣言することを決めた。
2007年に発表された調査によると、.comドメインおよび.netドメインの5%が、何らかの送信者ポリシーが宣言されていた。ただしこれには「v=spf1 ?all」のように全く役に立たない宣言も含まれている可能性がある。