SPF是爲了防範垃圾郵件而提出來的一種DNS記錄類型,它是一種TXT類型的記錄,它用於登記某個域名擁有的用來外發郵件的全部IP地址。例如:
html
dig TXT 21cn.com 服務器
21cn.com. 27970 IN TXT "v=spf1ip4:202.105.45.0/24 ip4:61.140.60.0/24 ip4:202.123.79.206 ip4:220.232.167.218 ip4:221.192.129.0/24 ip4:59.36.102.0/24 -all" dom
按照SPF的格式在DNS記錄中增長一條TXT類型的記錄,將提升該域名的信譽度,同時能夠防止垃圾郵件僞造該域的發件人發送垃圾郵件。
SPF是跟DNS相關的一項技術,它的內容寫在DNS的txt類型的記錄裏面。mx記錄的做用是給寄信者指明某個域名的郵件服務器有哪些。SPF的做用跟mx相反,它向收信者代表,哪些郵件服務器是通過某個域名承認會發送郵件的。
由定義能夠看出,SPF的做用主要是反垃圾郵件,主要針對那些發信人僞造域名的垃圾郵件。
ide
添加SPF記錄的方法:
這方法很簡單,只要咱們的DNS供應商提供的管理界面中能夠添加SPF記錄就能夠設置了(不是全部的供應商會提供這設置,個人域名是在godaddy.com上註冊的,能夠設置SPF記錄)。設置時,添加一個SPF記錄,而後輸入域名,若是是本域,可用@來表示。而後在VALUE中輸入如「v=spf1 ip4:67.202.107.106 -all」的值。 這值分三部分:測試
(1)v=spf1 說明是一個SPF的v1記錄
(2)ip4:67.202.107.106 說明郵件會今後聲明IPv4地址發出。它能夠是一個IP,或一個IP段。若是有多個IP或多個IP段的話,能夠聲明多個ip4記錄(如「ip4:1.0.1.0/24 ip4:1.0.2.0/24″),每一個ip4記錄間用空格分隔。另外,除了用IPv4外,還能夠有以下選擇:
1) ip6: 使用 IPv6 進行驗證。
2) a: 使用一個域名進行驗證。這將引發對域名服務器進行一次 A RR 查詢。能夠按照 a:domain, a:domain/cidr 或 a/cidr 的形式來使用。
3) mx: 使用 DNS MX RR 進行驗證。MX RR 定義了收信的 MTA,這可能和發信的 MTA 是不一樣的,這種狀況基於 mx 的測試將會失敗。 能夠用 mx:domain, mx:domain/cidr 或 mx/cidr 這些形式進行 mx 驗證。
4) ptr: 使用域名服務器的 PTR RR 進行驗證。這時,SPF 使用 PTR RR 和反向圖進行查詢。若是返回的主機名位於同一個域名以內,就驗證經過了。這個參數的寫法是 ptr:domain
5) exist: 驗證域名的存在性。能夠寫成 exist:domain 的形式。
6) ext: 定義對 type 的可選擴展。若是沒有這個字段,那麼僅使用單個記錄進行問詢。
7) mod: 這是最後的類型指示,做爲記錄的一個修正值。修正值 描述:
redirect 重定向查詢,使用給出的域名的 SPF 記錄。
以 redirect=domain 的方式使用。
exp 這條記錄必須是最後一條,容許給出一條定製的失敗消息。
IN TXT 「v=spf1 mx -all exp=getlost.example.com」
getlost IN TXT 「You are not authorized to send mail for the domain」spa
(3)-all 定義匹配時的返回值,可有以下選擇:
1) + 缺省值。在測試完成的時候表示經過。
2) – 表示測試失敗。這個值一般是 -all,表示沒有其餘任何匹配發生。
3) ~ 表示軟失敗,一般表示測試沒有完成。
4) ? 表示不置能否。這個值也一般在測試沒有完成的時候使用。
因此「v=spf1 ip4:67.202.107.106 -all」的意思是這個域只有67.202.107.106這個IP能夠發郵件出來,其餘IP的都是非法的。orm