什麼是SPF,郵箱域名的spf記錄添加方法

什麼是SPF記錄?
   這裏的SPF是指Sender Policy Framework。翻譯過來就是發信者策略架構,比較拗口,一般都直接稱爲SPF。在域名管理系統中對域名作一條以SPF格式爲準的txt記錄即爲SPF記錄。
SPF記錄有什麼用?
   SPF是爲了防範垃圾郵件而提出來的一種DNS記錄類型,它是一種TXT類型的記錄,它用於登記某個域名擁有的用來外發郵件的全部IP地址。例如: dig TXT domain.com
   domain.com. 27970 IN TXT "v=spf1 ip4:218.16.118.186 -all"
  按照SPF的格式在DNS記錄中增長一條TXT類型的記錄,將提升該域名的信譽度,同時能夠防止垃圾郵件僞造該域的發件人發送垃圾郵件。
   SPF是跟DNS相關的一項技術,它的內容寫在DNS的txt類型的記錄裏面。mx記錄的做用是給寄信者指明某個域名的郵件服務器有哪些。SPF的做用跟mx相反,它向收信者代表,哪些郵件服務器是通過某個域名承認會發送郵件的。
  由定義能夠看出,SPF的做用主要是反垃圾郵件,主要針對那些發信人僞造域名的垃圾郵件。。
 
如何查詢SPF記錄?
   當前市場上不少郵件系統和供應商都已經開始支持SPF,好比163.com,那麼該如何獲得163.com的SPF值呢?在CMD環境中,鍵入:
   nslookup
   set type=txt
   163.com
  就會獲得如下的結果:
   163.com text =
   "v=spf1 ip4:220.181.12.0/22 ip4:202.108.9.128/25 ip4:202.108.5.0/24 ~all"
   163.com nameserver = ns3.nease.net
   163.com nameserver = ns.nease.net
   ns.nease.net internet address = 202.106.185.75
   ns3.nease.net internet address = 220.181.28.3
  其中: "v=spf1 ip4:220.181.12.0/22 ip4:202.108.9.128/25 ip4:202.108.5.0/24 ~all"就是163.com的SPF值。
這個數據中說明了163.com有效合法服務器都有哪些!
 

如何增長SPF記錄
很是簡單,在DNS裏面添加TXT記錄便可。登錄http://www.openspf.org/在裏面輸入你的域名,點擊Begin,而後會自動獲得你域名的一些相關信息。
a 你域名的A記錄,通常選擇yes,由於他有可能發出郵件。
mx 通常也是yes,MX服務器會有退信等。
ptr 選擇no,官方建議的。服務器

a: 有沒有其餘的二級域名?好比:mail.abc.com和www不在一臺server上,則填入mail.abc.com。不然清空。
mx: 通常不會再有其餘的mx記錄了。
ip4: 你還有沒有其餘的ip發信?可能你的smtp服務器是獨立出來的,那麼就填入你的IP地址或者網段。
include: 若是有可能經過一個isp來發信,這個有本身的SPF記錄,則填入這個isp的域名,好比:hichina.com
~all: 意思是除了上面的,其餘的都不承認。固然是yes了。架構

好了,點擊Continue…..
自動生成了一條SPF記錄,好比abc.com的是
v=spf1 a mx ~all
而且在下面告訴你如何在你的bind裏面添加一條
abc.com. IN TXT 「v=spf1 a mx ~all」dom

加入你的bind,而後ndc reload便可。
檢查一下:
dig -t txt extmail.orgide

若是您的域名是由萬網的dns服務器進行解析的,萬網的網頁上沒有設置TXT記錄的地方,可是若是你的DNS主server是在Hichina的,能夠在diy.hichina.com上設置。設置完畢後您便可以經過使用spf策略進行垃圾郵件驗證了。測試

 

 

SPF 的 TXT 記錄

SPF 記錄包含在一個 TXT 記錄之中,格式以下:spa

  v=spf1 [[pre] type [ext] ] ... [mod]

每一個參數的含義以下表所示:
參數 描述
v=spf1 SPF 的版本。若是使用 Sender ID 的話,這個字段就應該是 v=spf2
pre 定義匹配時的返回值。

可能的返回值包括:



返回值 描述
+ 缺省值。在測試完成的時候表示經過。
- 表示測試失敗。這個值一般是 -all,表示沒有其餘任何匹配發生。
~ 表示軟失敗,一般表示測試沒有完成。
? 表示不置能否。這個值也一般在測試沒有完成的時候使用。
type 定義使用的確認測試的類型。

可能的值包括:



候選值 描述
include 包含一個給定的域名的測試
以 include:domain 的形式書寫。

all 終止測試序列。
好比,若是選項是 -all,那麼到達這條記錄也就意味着測試失敗了。可是若是沒法肯定,可使用"?all"來表示,這樣,測試將被接受。

ip4 使用 IPv4 進行驗證。
這個能夠以 ip4:ipv4 或 ip4:ipv4/cidr 的形式使用。建議使用這個參數,以減小域名服務器的負荷。

ip6 使用 IPv6 進行驗證。

a 使用一個域名進行驗證。
這將引發對域名服務器進行一次 A RR 查詢。
能夠按照 a:domain, a:domain/cidr 或 a/cidr 的形式來使用。

mx 使用 DNS MX RR 進行驗證。
MX RR 定義了收信的 MTA,這可能和發信的 MTA 是不一樣的,這種狀況基於 mx 的測試將會失敗。
能夠用 mx:domain, mx:domain/cidr 或 mx/cidr 這些形式進行 mx 驗證。

ptr 使用域名服務器的 PTR RR 進行驗證。
這時,SPF 使用 PTR RR 和反向圖進行查詢。若是返回的主機名位於同一個域名以內,就驗證經過了。
這個參數的寫法是 ptr:domain

exist 驗證域名的存在性。
能夠寫成 exist:domain 的形式。

ext 定義對 type 的可選擴展。若是沒有這個字段,那麼僅使用單個記錄進行問詢。
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"
相關文章
相關標籤/搜索