2009年12月26日 星期六

了解Email Headers所代表的意義

我是從Reading Email Headers 這邊看到的,解說的很詳盡,我稍微把我理解的寫出來,看不懂我寫的人,只能說抱歉囉,我表達能力不好,建議各位還是去看原文吧

一般的郵件傳輸的過程至少經過4台電腦,怎麼說呢,當使用者發送郵件,會在使用者自己的電腦上產出訊息,然後訊息會先送到你指定寄件用的Mail Server(可能是你ISP用的或公司的),此時使用者的電腦已完成它的發送工作,但是Mail Server還沒完成他的工作,他會幫你找到收件者的Mail Server,跟她溝通然後將訊息傳送給她才算完成,這訊息會待在第二台Mail Server上,直到收件者讀取該訊息,將訊息下載到收件者的電腦後刪除,整個流程大概是這樣。

現在假設一個情境,有一個使用者A為adalf0722@yahoo.com.tw,使用者B為shaq.adalf@gmail.com,A想寄信給B,A利用遠端有台SMTP Services當作mail server發信,當B收到信後,完整mail header如下(其中電腦名稱,IP,網域名稱為杜撰的,其他都是真的):

Received: from sample.test.com (192.168.1.2) by
smtp.mail.com (192.168.1.3) with Microsoft SMTP Server id
8.1.375.2; Thu, 31 Dec 2009 11:02:37 +0800

Received: from tst33 ([192.168.1.1]) by sample.test.com with Microsoft
SMTPSVC(5.0.2195.6713); Thu, 31 Dec 2009 11:02:35 +0800
From: "adalf0722@yahoo.com.tw"
To: "shaq.adalf@mail.com"
Content-Class: urn:content-classes:message
Date: Thu, 31 Dec 2009 11:02:32 +0800
Subject: Send the message using the network

Thread-Topic: Send the message using the network
Thread-Index: AcqJxbIiyzk4CLcJSOa1mph6h4PKgg==
Message-ID: <000001ca89c5$b23830b0$2b02b00a@mail.com>
Accept-Language: zh-TW
Content-Language: zh-TW
X-MS-Exchange-Organization-AuthAs: Anonymous
X-MS-Exchange-Organization-AuthSource: HCS02.mail.com
X-MS-Has-Attach:
X-MS-Exchange-Organization-SCL: 0
X-MS-TNEF-Correlator:
x-originalarrivaltime: 31 Dec 2009 03:02:35.0458 (UTC)
FILETIME=[B3FA7A20:01CA89C5]
Content-Type: text/plain; charset="big5"
Content-Transfer-Encoding: base64
MIME-Version: 1.0

一般讀Email Headers,我覺得最重要的是要看Received Header了,Received Header可以說是郵件傳送的歷程,Received Header是由下往上讀的,由處理到的mail server將資訊加入,最下面的Received是最先處理到的mail server所加的,最上面的則是最後的,最上面的通常也代表了你最後是從哪裡將此郵件讀取並下載下來

以下是我抓出幾行比較需要了解的解釋一下

From: adalf0722@yahoo.com.tw這封郵件是由adalf0722@yahoo.com.tw 寄出的
To: shaq.adalf@mail.com
收件者為shaq.adalf@mail.comContent-Class: urn:content-classes:messageDate: Thu, 31 Dec 2009 11:02:32 +0800
這訊息是在Thu, 31 Dec 2009 11:02:32 +0800 建立的
Subject: Send the message using the network

Received: from tst33 ([192.168.1.1]) by sample.test.com with Microsoft
SMTPSVC(5.0.2195.6713); Thu, 31 Dec 2009 11:02:35 +0800
這封郵件是從tst33送到sample.test.com,發生的時間點為31 Dec 2009 11:02:35 +0800,發信的機器稱它自己為tst33(A的電腦),它的真實IP為192.168.1.1,sample的mail server是使用微軟的smtp services,版本為5.0.2195.6713,注意from後面的tst33,這是機器說它自己叫tst33的,也就是它是可以欺騙mail server的,但是後面帶的ip是它真實的ip,如果去比對的話,就可以發現它有沒有欺騙囉,現在的mail程式有的可以做reverse DNS,很容易就發現此信是不是偽造的

Received: from sample.test.com (192.168.1.2) by
smtp.mail.com (192.168.1.3) with Microsoft SMTP Server id
8.1.375.2; Thu, 31 Dec 2009 11:02:37 +0800

第二個Received是說這封郵件是從sample.test.com送過來的(剛從smtp services寄出),它自己說它叫sample.test.com,它的真實IP為192.168.1.2,由叫smtp.mail.com的機器收下來,它的真實IP為192.168.1.3,收件的是微軟的exchange server,exchange的版本為8.1.375.2,傳輸時間為Thu, 31 Dec 2009 11:02:37 +0800

各位如果有去注意平常郵件的Email Headers的話,通常會發現到至少有兩個以上Received Header,一個是寄件server加的,一個是收件server加的,如果有多很多的,代表中間可能經過很多台遞送,每經過一台,幾乎就會多一個Received Header囉,有種情況會只看到一個Received Header,那就是內部郵件的遞送,比如說同一個公司內員工郵件傳遞,因為收件與寄件server都是同一台,所以只會有一筆紀錄囉

0 意見:

張貼留言