SPF簡介

SPF是 Sender Policy Framework  的縮寫, 一種以IP地址認證電子郵件發件人身份的技術。接收郵件方會首先檢查域名的SPF記錄,來確認發件人的IP地址是否有包含在SPF記錄裡面。如果在,就認為是一封正確的郵件。否則會認為是一封偽造的郵件,然後根據SPF記錄裡面的設定進行處理(退信等)

對於DNS來說SPF實際為一個TXT記錄。也就是說SPF記錄是一個一定格式的TXT記錄。 其內容通常如下:”v=spf1 ip4:192.168.0.1 -all”

詳細查分一下:

  • “v=spf1” 必須以這個開頭,聲明使用spf1
  • “ip4:192.168.0.1”  聲明 ip是 192.168.0.1的server 發送的郵件才是“合法”的。
  • “-all” 其他的server 發送的郵件會被拒絕。

如果 abc.com 有一個TXT記錄 是 “v=spf1 ip4:192.168.0.1 -all”。 那麼他要表達的完整的意思是  如果有人以 xxx@abc.com 身份發送的郵件,那麼會自動檢測 發送郵件的server的ip 是不是 192.168.0.1。 如果是 則表示這個mail是“合法”的,如果不是就退信處理。

a 和 mx

v=spf1 a mx -all #允許當前域名a記錄 以及mx記錄 對應的ip地址
v=spf1 a:abc.com mx:abc.com -all # 允許域名abc.com對應的a記錄 以及mx記錄 對應的ip

include

v=spf1 include:abc.com -all #採用和abc.com完全相同的SPF記錄
v=spf1 include:abc.com include:example.com -all # 包含多個域名對應的SPF記錄

官方参考文档 http://www.openspf.org/SPF_Record_Syntax
其他参考 http://www.renfei.org/blog/introduction-to-spf.html