複製鏈接
請複製以下鏈接發送給好友

郵件頭

鎖定
郵件頭是電子郵件三大組成部分之一,是正文之前的一行標頭,主要包含了郵件的傳輸信息,例如發件人、收件人、日期和主題。
郵件頭分為必要(mandatory)和可選(optional)兩種。常見的有FROM,TO,DATE(必要郵件頭)和SUBJECT,CC(可選郵件頭)等。
中文名
郵件頭
外文名
e-mail header
處理對象
電子郵件
作    用
標明郵件傳輸信息

目錄

郵件頭簡介

雖然在討論中儘量有意避免如何偽造一封郵件的討論,但是在討論中的內容可能被惡意讀者用作創建偽造郵件的基礎。因為要在文章中舉例説明,因此在文章中有若干虛構的域名和隨意分配的IP地址作為示例使用。這些域名和IP都是任意選擇和偽造的,和Internet上真實的域名和IP沒有任何關係。
二、Email的傳輸過程
這部分包含一個簡單的對一個電子郵件生命週期的分析。這對於理解郵件頭能為你提供哪些信息是非常重要的背景信息。
從表面上看來郵件似乎是直接從發送者機器傳遞到接收者地址,但通常情況下事情並不是這樣。一個典型的電子郵件在其生命週期中至少要經過四台計算機。
這是因為大多數企業或組織都有一個被稱為“郵件服務器”專用服務器來處理電子郵件,而這一般並不是用户閲讀郵件的計算機。對於ISP來説,用户從家裏面的計算機撥號接入ISP網絡,這裏將用户家中的計算機稱為客户機,而將ISP專門處理郵件的計算機稱為郵件服務器。當一個用户發送郵件,他一般是在自己的計算機上編輯郵件,然後將郵件發送到ISP的郵件服務器上。客户機就此已經完成了自己的工作,而後面的工作則由ISP的郵件服務器來完成。首先ISP郵件服務器查找接收者指定的郵件服務器的IP地址,然後將郵件發送給該目的服務器。現在郵件則存儲在接收者郵件服務器上等待接收者收取。當接收者從接受郵件服務器取得發送給他的郵件到自己的PC機以後,通常該郵件將被刪除。

郵件頭郵件協議

這部分內容相對其它部分來説具有更多原理性內容,主要討論郵件是如何從一點傳輸到另外一點的細節。你不需要理解每一句話,但是熟悉這方面的內容有助於在郵件傳輸出現奇怪現象時弄明白問題所在。由於垃圾電子郵件發送者常常故意製造一些奇怪的情況以掩飾自己的身份,因此能理解這些奇怪的現象對對付這些傢伙是非常有用的。
為了在網絡上傳輸數據,計算機網絡協議使用了稱為端口的訪問入口,你可以將端口看做是一個通道,通過它計算機可以監聽網絡通信以提供服務。為了同時監聽多個通信,計算機需要有使用端口號碼標識多個不同的端口以區別這些通信。而和電子郵件傳輸相關的端口是25。
MAIL FROM命令標識開始郵件傳輸,含義是"我有從某人發送來的郵件",該命令後跟的地址就是所謂的“信封地址”(在後面我們將深入討論),信封from地址不一定是發送者自己的地址。這個明顯的安全漏洞是不可避免的(因為接收者並不知道發送者機器上有哪些地址),但是在特定的情況下這又是一個有用處的特色。
RCPT TO和MAIL FROM是相輔相成的。其指定郵件接收者。通過多個RCPT TO命令一個郵件可以被髮送給多個接收者。(在後面的郵件中繼部分將解釋該特色可能針對某些不安全的系統濫用)。該命令後跟的地址稱為"envelope to"地址。其指定了郵件將被投遞給哪些用户,而和信件中的To:指定的地址沒有關係。
DATA命令指示開始實際的郵件內容傳輸。DATA命令後輸入的任何內容都被看做是郵件的一部分。而格式並沒有任何限制。以一個英文單詞加冒號開始的行一般被郵件程序看做是郵件頭。以英文句號符號(.)開始的行被認為是郵件內容結束。
QUIT命令終止連接。
SMTP協議規範定義在RFC 821中。
非正常情況
上面的例子有些過於簡單。上面的例子有一個假設前提:兩個組織的郵件服務器相互之間能直接訪問,而不需要經過代理、防火牆等安全設備。這在當前Internet環境下情況往往是這樣的。但由於安全對於某些組織來説非常重要,而且網絡或組織可能變得越來越龐大,情況就不那麼簡單了。對於具有代理型防火牆系統的郵件傳輸來説,區別就在於在郵件的頭中多了一次轉發過程的記錄,也就是郵件首先從發送者郵件服務器發送到防火牆上,然後再從防火牆發送到目的郵件服務器。
四、郵件中繼
出現郵件中繼是由於歷史的原因,使用郵件中繼是有它的好處的。到八十年代末期,很多網絡中的計算機都不是直接通信來傳輸郵件。而是通過郵件路由來傳遞郵件,通過郵件路由服務器一步一步地進行郵件傳輸。這樣做是非常麻煩的,發送者往往需要手工指定一封郵件需要經過哪些郵件路由服務器,比如需要從San Francisco發送一封郵件到New York,則需要在信封中添加如下內容:
San Francisco,Sacramento,Reno,Salt Lake City,Rock Springs,Laramie,North Platte,Lincoln,Omaha,Des Moines,Cedar Rapids,Dubuque,Rockford,Chicago,Gary,Elkhart,Fort Wayne,Toledo,Cleveland,Erie,Elmira,Williamsport,Newark,New York City,Greenwich Village,#12 Desolation Row,Apt. #35,R.A. Zimmermann
如果從郵局工作人員的角度來考慮,這種模型是非常有用的。在Gary的郵局只需要知道如何和臨近的郵局Chicago和Elkhart通信,而無需消耗資源計算如何將郵件發送到New York(這時候就很清楚為什麼這種模式對於郵件發送者來説非常糟糕,為什麼這種方法被拋棄了)。但是這就是郵件被傳輸的過程。因此服務器具有這樣的中繼的能力在那時是很重要的。