SPF與郵件頭簡述

2021-10-09 02:19:04 字數 3551 閱讀 3447

首先宣告,spf記錄其實是dns上的一條txt記錄

spf是跟dns相關的一項技術,它的內容寫在dns的txt型別的記錄裡面。mx記錄的作用是給寄信者指明某個網域名稱的郵件伺服器有哪些。spf的作用跟mx相反,它向收信者表明,哪些郵件伺服器是經過某個網域名稱認可會傳送郵件的。

任何組織或者企業一般都會有乙個郵件伺服器。倘若這個伺服器開啟了spf且接收到了郵件,那麼就會按照如下流程工作。

1.當前郵件伺服器接收到了一封郵件,郵件頭內容是聲稱ip為123.123.123.123,發件人為[email protected]

2.這時候郵件伺服器就會去查詢cow.com的spf記錄看是否允許123.123.123.123這個ip發郵件。根據spf記錄值作出後續的決斷例如是否攔截。

每條spf記錄開始都會是:

v=spf1

且都會有自己的字首,預設是"+"。

字首意義

「+」pass(通過)

「-」fail(拒絕)

「~」soft fail(軟拒絕)

「?」neutral(中立)

例如下圖為乙個攔截例項:

表示所有 ip,肯定會命中。因此通常把它放在 spf 記錄的結尾,表示處理剩下的所有情況。例如:

「v=spf1 -all」

拒絕所有ip傳送郵件,或者說這個網域名稱不會發郵件。

「v=spf1 +all」

接受所有

「v=spf1 ip4:123.123.123.1/24 -all」

只允許在 123.123.123.1 ~ 123.123.123.255 範圍內的 ip

格式和ip4的很類似,例如:

「v=spf1 ip6:1080::8:800:200c:417a/96 -all」

只允許在 1080::8:800:0000:0000 ~ 1080::8:800:ffff:ffff 範圍內的 ip

這倆的格式是相同的,以a為例,格式為以下四種之一:

a

a/x #這個x就類似於123.123.123.123/23中的23.

允許當前網域名稱的mx記錄對應的所有ip位址,也可以說是當前網域名稱的郵件伺服器發出的所有郵件都是合法的,只要查詢郵件伺服器ip進行判斷就好。

「v=spf1 mx mx:demo.test.com -all」

允許當前網域名稱和 demo.test.com 的 mx 記錄對應的ip位址。

「v=spf1 a/24 -all」

類似地,這個用法則允許乙個位址段。

上圖就表示此網域名稱發去出去的ip為123.59.170.202與後面的那個ip這兩個是合法的。其餘的生成是此網域名稱發出去的都軟拒絕。

格式為include:test.com,表示引入test.com網域名稱下的spf記錄,如果該網域名稱下不存在 spf記錄,則會出現乙個permerror結果。例如:

「v=spf1 include:test.com -all」 繼承test.com的spf記錄。

格式為exp=test.com,目的是如果郵件被拒絕,可以給出乙個訊息。而訊息的具體內容會首先對test.com執行txt查詢,然後執行巨集擴充套件得到。

格式為redirect=test.com

類似於include。

++spf相關的介紹在這裡就結束了++

++在無spf的前題下++

假設a的郵箱為[email protected],郵件伺服器為mail.test.com,主機名為xiaokeai。

假設b的郵箱為[email protected],郵件伺服器為mail.demo.com,主機名為fffff。

此時a給b發了封郵件內容如下

from: [email protected]

to: [email protected]

date: …

x-mailer: outlook

subject: hello

received: from xiaokeai(xiaokeai [xiaokeaid的ip]) by mail.test.com (8.8.5) id 004a21; tue, mar 18 2003 14:36:17 -0800 (pst)

from: [email protected]

to: [email protected]

date: …

x-mailer: outlook

subject: hello

這時候mail.test.com把郵件又**了mail.demo.com,這時候郵件頭變為了:

received: from mail.test.com (mail.test.com [mail.test.com的ip]) by mail.demo.com (8.8.5/8.7.2) with esmtp id laa20869 for [email protected]; tue, 18 mar 2003 14:39:24 -0800 (pst)

received: from xiaokeai(xiaokeai [xiaokeaid的ip]) by mail.test.com (8.8.5) id 004a21; tue, mar 18 2003 14:36:17 -0800 (pst)

from: [email protected]

to: [email protected]

date: …

x-mailer: outlook

subject: hello

這時候b就可以看自己的mail.demo.com這個郵件伺服器上a發給自己的郵件了。

++from mail.test.com(mail.test.com[ip])++

這句話表示,有郵件聲稱是mail.test.com傳送來的,看了看郵件的ip後發現確實是。

++with esmtp id laa20869++

郵件的id號。

++by mail.test.com (8.8.5)++

表示郵件伺服器執行的程式的版本號。

參考

email郵件頭詳解

快速讀懂郵件頭資訊

快速讀懂郵件頭資訊 有時候我們在管理郵件伺服器是會收到一些奇奇怪怪的郵件,這時候就要去分析郵件頭,好知道詳細情況,而天書般的郵件頭內容,就算是專業人士看起來也會頭痛,那麼有沒有一種快速簡便的方法能讀懂郵件頭呢?答案是有的,ip address 就能幫你解決這類問題。一 獲取郵件頭內容 首先開啟乙個 ...

快速讀懂郵件頭資訊

快速讀懂郵件頭資訊 有時候我們在管理郵件伺服器是會收到一些奇奇怪怪的郵件,這時候就要去分析郵件頭,好知道詳細情況,而天書般的郵件頭內容,就算是專業人士看起來也會頭痛,那麼有沒有一種快速簡便的方法能讀懂郵件頭呢?答案是有的,ip address 就能幫你解決這類問題。一 獲取郵件頭內容 首先開啟乙個 ...

快速讀懂郵件頭資訊

快速讀懂郵件頭資訊 有時候我們在管理郵件伺服器是會收到一些奇奇怪怪的郵件,這時候就要去分析郵件頭,好知道詳細情況,而天書般的郵件頭內容,就算是專業人士看起來也會頭痛,那麼有沒有一種快速簡便的方法能讀懂郵件頭呢?答案是有的,ip address 就能幫你解決這類問題。一 獲取郵件頭內容 首先開啟乙個 ...