郵件系統(tǒng)原理
究竟什么是郵件服務器呢?郵件服務器提供了郵件系統(tǒng)的基本結構,包括郵件傳輸、郵件分發(fā)、郵件存儲等功能,以確保郵件能夠發(fā)送到Internet 網(wǎng)絡中的任意地方。目前先進的郵件服務器會包括:短信郵件,防毒反
究竟什么是郵件服務器呢?郵件服務器提供了郵件系統(tǒng)的基本結構,包括郵件傳輸、郵件分發(fā)、郵件存儲等功能,以確保郵件能夠發(fā)送到Internet 網(wǎng)絡中的任意地方。目前先進的郵件服務器會包括:短信郵件,防毒反垃圾模塊,地址簿功能,用戶群組功能,代收POP3等,郵件服務器有兩種不同的應用群體:ISP 提供商和企事業(yè)單位。電子郵件是Internet 應用服務之一。下面詳細講一下郵件系統(tǒng)具體的一些技術要點。
MUA( 客戶端程序,如 outlook )
MTA(mail transfer agent, 郵件傳輸代理 )
MDA(mail delivery agent, 郵件投遞代理 )
MRA(mail retrieval agent, 郵件獲取代理 )
真實郵件發(fā)送流程模擬
假設 Alex 使用的信箱是 alex@gmail.com,則當 Alex 要寄信給 john@yahoo.com 時,會經(jīng)過下列步驟:
· 首先 Alex 從個人計算機中寫好一封信,送到他所屬的 gmail.com 的主機中。
· gmail.com 會先將信件存在自己的機器上的暫存區(qū)。
· gmail.com 會檢查信件目的地,并查找 yahoo.com 的 IP 地址。
· 接著經(jīng)由因特網(wǎng)將信件送到 yahoo.com 的主機。
· yahoo.com 的主機收到信后,發(fā)現(xiàn)是給自己機器中的使用者,所以將信件存放到使用者的新件匣中。
· 當 John 有空時,從家里打開計算機,并主動去 yahoo.com 檢查是否有新的信件,當發(fā)現(xiàn)有新的信,則下載到自己的計算機中。
從寄信到收信的流程中,每一個網(wǎng)絡上的組件都扮演著不同的角色
· Mail User Agent (MUA):郵件使用者代理人,這是使用者用來寫信、收信的程序。例如,我們常用的 Outlook Exporess 、Thunderbird 等。它的作用在于提供使用者一個好用的收發(fā)信件接口,并將信傳到自己的郵件服務器。
· Mail Delivery Agent (MDA):郵件遞送代理人,負責將要給本地使用者的郵件分配到使用者的信箱中。在 UNIX 中,MDA 通常是 mail 這支程序。
· Mail Transfer Agent (MTA):郵件轉(zhuǎn)送代理人,是一個負責轉(zhuǎn)送信件的服務器。UNIX
,中使用的 Sendmail 、Postfix 就是 MTA 軟件。它的作用在于收到 MTU 寄來的信后,根據(jù)信件地址,將信件轉(zhuǎn)送到目的地。在目的地中,也有另一臺 MTA 會負責接收信件。有時候信件并不會一次就從使用者的計算機傳送到目的地的主機,而是會經(jīng)由許多 MTA 轉(zhuǎn)送到目的地的主機。這種 MTA 接收非自己的信件,并轉(zhuǎn)送到別臺 MTA 的動作就叫作「Relay 」。
當我們在寄信時,所使用的是 SMTP (Simple Mail Transfer Protocol) 通訊協(xié)議,在一臺郵件服務器上,必須要先安裝郵件服器軟件,以接收 SMTP 協(xié)議所寄來的信件。MTA 和 MTA 之間傳送信件時也是使用 SMTP 協(xié)定。而收信時,使用的是 POP3 (Post Office Protocol) 或是 IMAP (Internet Message Access Protocol) 協(xié)定。
什么是POP
POP 的全稱是 Post Office Protocol ,即郵局 協(xié)議 ,用于電子郵件的接收,它使用TCP 的110端口?,F(xiàn)在常用的是第三版 ,所以簡稱為 POP3。POP3仍采用Client/Server工作模式,Client 被稱為客戶端,一般我們?nèi)粘J褂秒娔X都是作為客戶端,而Server (服務器)則是 網(wǎng)管 人員進行管理的。舉個形象的例子,Server (服務器)是許多小信箱的集合,就像我們所居住樓房的信箱結構,而客戶端就好比是一個人拿著鑰匙去信箱開鎖取信一樣的道理。
POP 工作原理簡介
下面就讓我們一起來看看電子郵件軟件收取電子郵件的過程,一般我們在電子郵件軟件的賬號屬性上設置一個 POP 服務器的URL (比如pop. 21cn .com),以及郵箱的賬號和密碼。這個在收信過程中都是用得到的。當我們按下電子郵件軟件中的收取鍵后,電子 郵件軟件首先會調(diào)用DNS 協(xié)議對POP 服務器進行解析IP 地址,當IP 地址被解析出來后,郵件程序便開始使用TCP 協(xié)議連接 郵件服務器 的110 端口,因為POP 服務器是比較忙的,所以在這個過程中我們相對要等比較長的時間。當郵件程序成功地連上POP 服務器后,其先會使用USER 命令將郵箱的賬 號傳給POP 服務器,然后再使用PASS 命令將郵箱的賬號傳給服務器,當完成這一認證過程后,郵件程序使用STA T 命令請求服務器返回郵箱的統(tǒng)計資料,比 如郵件總數(shù)和郵件大小等,然后LIST 便會列出服務器里郵件數(shù)量。然后郵件程序就會使用RETR 命令接收郵件,接收一封后便使用DELE 命令將郵件服務器 中的郵件置為刪除狀態(tài)。當使用QUIT 時,郵件服務器便會將置為刪除標志的郵件給刪了。通俗地講,郵件程序從服務器接收郵件,其實就是一個對話過程, POP 協(xié)議就是用于電子郵件的一門語言。
命令行pop 郵件
telnet pop. 21cn .com 110
OK Hermes POP service () is ready.
user mr22
,OK
pass svtest
OK mr22@21cn.com has 42 messages (3846240 octets)
stats
OK 42 3846240
list
OK 42 3846240
1 637170
2 7047
3 1444
4 10938
5 3573
R etr 6
SMTP 協(xié)議原理
SMTP-簡單郵件傳輸協(xié)議(Simple Mail Transfer Protocol),是定義郵件傳輸?shù)膮f(xié)議,它是基于TCP 服務的應用層協(xié)議 。
命令行發(fā)郵件
ehlo xxxx
250-21cn.com, helo (DELAYED)
250-EXPN
250-HELP
250-8BITMIME
,250-AUTH=LOGIN PLAIN
250-AUTH LOGIN PLAIN
250 XTMD
auth login
什么是域名? 域名由什么構成?
域名是internet 上用來尋找網(wǎng)站所用的名字,是internet 上的重要標識,相當于主機的門牌號碼。每一臺主機都對應一個IP 地址,每 一個IP 地址由一連串的數(shù)字組成,如101.25.11.34。人們?yōu)榱朔奖阌洃浘陀糜蛎麃泶孢@些數(shù)字來尋找主機,如mydomain.com 。每一個 域名與IP 地址是一一對應的,人們輸入域名,再由域名服務器(DNS)解析成IP 地址,從而找到相應的網(wǎng)站。每一個網(wǎng)址和EMAIL 都要用到域名。在英文 國際域名中,域名可以英文字母和阿拉伯數(shù)字以及橫杠"-" 組成,最長可達67個字符(包括后綴) ,并且字母的大小寫沒有區(qū)別,每個層次最長不能超過22個 字母。在國內(nèi)域名中,三級域名長度不得超過20個字。
什么是DNS?
域名管理系統(tǒng)DNS(Domain Name System) 是域名解析服務器的意思. 它在互聯(lián)網(wǎng)的作用是:把域名轉(zhuǎn)換成為網(wǎng)絡可以識別的ip 地址. 比如:我們上網(wǎng)時輸入的www.163.com 會自動轉(zhuǎn)換成為202.108.42.72
什么是A 記錄?
A (Address)記錄是用來指定主機名(或域名) 對應的IP 地址記錄。用戶可以將該域名下的網(wǎng)站服務器指向到自己的web server上。同時也可以設置您域名的二級域名。
什么是NS 記錄?
NS(Name Server)記錄是域名服務器記錄,用來指定該域名由哪個DNS 服務器來進行解析。
什么是別名記錄(CNAME)?
也被稱為規(guī)范名字。這種記錄允許您將多個名字映射到同一臺計算機。通常用于同時提供WWW 和MAIL 服務的計算機。例如,有一臺計算機名為 “host.mydomain.com ”(A記錄) 。它同時提供WWW 和MAIL 服務,為了便于用戶訪問服務??梢詾樵撚嬎銠C設置兩個別名 (CNAME):WWW 和MAIL 。這兩個別名的全稱就是“www.mydomain.com ”和
,“mail.mydomain.com ”。實際上他們都 指向“host.mydomain.com ”。
什么是泛域名解析?
泛域名解析定義為:客戶的域名a.com ,之下所設的*.a.com全部解析到同一個IP 地址上去。比如客戶設b.a.com 就會自已自動解析到與a.com 同一個IP 地址上去。
什么是MX 記錄?
MX(Mail Exchanger)記錄是郵件交換記錄,它指向一個郵件服務器,用于電子郵件系統(tǒng)發(fā)郵件時根據(jù)收信人的地址后綴來定位郵件服務器。例如,當 Internet 上的某用戶要發(fā)一封信給user@mydomain.com時,該用戶的郵件系統(tǒng)通過DNS 查找mydomain.com 這個域名的MX 記錄,如果MX 記錄存在,用戶計算機就將郵件發(fā)送到MX 記錄所指定的郵件服務器上。
檢查MX 記錄是否存在的方法
進行DNS 查詢的一個非常有用的工具是nslookup ,可以使用它來查詢DNS 中的各種數(shù)據(jù)??梢栽赪indows 的命令行下直接運行nslookup 進入一個交互模式,在這里能查詢各種類型的DNS 數(shù)據(jù)。
DNS 的名字解析數(shù)據(jù)可以有各種不同的類型,有設置這個zone 的參數(shù)的SOA 類型數(shù)據(jù),有設置名字對應的IP 地址的A 類型數(shù)據(jù),有設置郵件交 換的MX 類型數(shù)據(jù)。這些不同類型的數(shù)據(jù)均可以通過nslookup 的交互模式來查詢,在查詢過程中可以使用set type命令設置相應的查詢類型。如:C:>nslookupDefault Server: [202.106.184.166]Address: 202.106.184.166
> set type=mx
> sina.com.cnDefault Server: [202.106.184.166]Address: 202.106.184.166
Non-authoritative answer:
sina.com.cn MX preference = 10, mail exchanger = sinamx.sina.com.cn
sina.com.cn nameserver = ns1.sina.com.cn
sina.com.cn nameserver = ns3.sina.com.cnsinamx.sina.com.cn internet address = 202.106.187.179sinamx.sina.com.cn internet address = 202.106.182.230ns1.sina.com.cn internet address = 202.106.184.166ns3.sina.com.cn internet address = 202.108.44.55
如果所要查的某域名的MX 記錄不存在,則出現(xiàn)與以下類似的提示: C:>nslookup> set type=mx> amaxit.com.cnDefault Server: [202.106.184.166]Address: 202.106.184.166
,*** 202.106.184.166 can't find amaxit.com.cn: Non-existent domain
命令確認郵件是否接收到。如果SMTP 接收者接收,則返回OK 應答;如果不能接收到,則發(fā)出拒絕接收應答(但不中止整個郵件操作),雙方將如此重復多次。當接收者收到全部郵件后會接收到特別的序列,如果接收者成功處理了郵件,則返回OK 應答。SMTP 提供傳送郵件的機制,如果接收方與發(fā)送方連接在同一個傳送服務下時,郵件可以直接由發(fā)送方主機傳送到接收方主機;或者,當兩者不在同一個傳送服務下時,通過中繼SMTP 服務器傳送。為了能夠?qū)MTP 服務器提供中繼能力,它必須擁有最終目的主機地址和郵箱名稱。 MAIL 命令參數(shù)是回復路徑,它指定郵件從何處來;而RCPT 命令的參數(shù)是轉(zhuǎn)發(fā)路徑的,它指定郵件向何處去。向前路徑是源路徑,而回復路徑是返回路徑(它用于發(fā)生錯誤時返回郵件)。 當同一個消息要發(fā)往不同的接收者時,SMTP 遇到了向不同接收者發(fā)送同一份數(shù)據(jù)的復制品的問題,郵件命令和應答有一個比較奇怪的語法,應答也有一個數(shù)字代碼。在下面,例子中可以看到哪些使用實際的命令和應答。完整的命令和應答在第四節(jié)。 命令與應答對大小寫不敏感,也就是說,命令和應答可以是大寫,小寫或兩者的混合,但這一點對用戶郵件名稱卻不一定是對的,因為有的主機對用戶名大小寫是敏感的。這樣SMTP 實現(xiàn)中
轉(zhuǎn)載自:http://www.sz-isp.com http://www.szgreatwall.net