在開始電子郵件開發前:我們需要明白一下幾個概念:電子郵件系統、郵件服務器、電子郵件、郵件客戶端軟件、郵件傳輸協議、電子郵件的傳輸過程。
電子郵件系統
與 傳統的郵政服務相類似,電子郵件系統由電子郵局、電子郵件發送、接收系統組成。發送者和接收者通過電子郵件發送、接收系統來發送和接收電子郵件,他們實際 上是運行在計算機上的郵件客戶端程序。電子郵局起著一個橋梁的作用,它實際上是運行在服務器上的郵件服務器程序。電子郵件的處理流程也和郵政服務相類似。
郵件服務器
郵件服務器是一種用來負責電子郵件收發管理的設備。在Internet上提供了大量的電子郵件服務器,如:126、163、hotmail…。
電子郵件服務器主要提供的功能:
1、 接收用戶投遞的郵件。
2、 將用戶投遞進來的郵件轉發給目標郵件服務器。
3、 接收其他電子郵件服務器轉發來的郵件并該郵件存儲到其管理的用戶郵中。
4、 為前來讀取郵件的用戶提供讀取郵件的服務。
郵 件服務器構成了電子郵件系統的核心。每個收信人都有一個位于某個郵件服務器上的郵箱(mailbox)。Bob的郵箱用于管理和維護已經發送給他的郵件消 息。一個郵件消息的典型旅程是從發信人的用戶代理開始,郵件發信人的郵件服務器,中轉到收信人的郵件服務器,然后投遞到收信人的郵箱中。當Bob想查看自 己的郵箱中的郵件消息時,存放該郵箱的郵件服務器將以他提供的用戶名和口令認證他。Alice的郵件服務器還得處理Bob的郵件服務器出故障的情況。如果 Alice的郵件服務器無法把郵件消息立即遞送到Bob的郵件服務器,Alice的服務器就把它們存放在消息隊列(message queue)中,以后再嘗試遞送。這種嘗試通常每30分鐘左右執行一次:要是過了若干天仍未嘗試成功,該服務器就把這個消息從消息隊列中去除掉,同時以另 一個郵件消息通知發信人(即Alice)。
電子郵件
電子郵件是一種通過網絡實現相互傳送和接收信息的現代化通信方式。它是—種用電子手段提供信息交換的通信方式,是Internet應用最廣的服務,通過網絡的電子郵件系統,用戶可以用非常低廉的價格,以非常快速的方式,與世界上任何一個角落的網絡用戶聯系,這些電子郵件可以是文字、圖像、聲音等各種方式。同時,用戶可以得到大量免費的新聞、專題郵件,并實現輕松的信息搜索。
電子郵件由信封和內容兩個部分組成。信封又稱郵件頭,電子郵件服務器根據信封上的信心來傳遞郵件的。內容稱為郵件體,它用于提供郵件的具體內容。
Internet上的電子郵件地址全球唯一,其格式為“郵箱名@郵件服務器域名”。域(郵件域)是電子郵件服務器的基本管理單位,郵件服務以域為基礎,每個郵箱對應一個用戶。其中郵件服務器域名必須是已注冊的DNS域名,并且必須要與MX(郵件交換機)記錄匹配。DNS用于將域名、主機名解析為IP地址。MX記錄指向該域名的郵件服務器主機記錄,為郵件服務專用。
郵件客戶端軟件
郵件客戶端軟件負責與郵件服務器通訊,主要用于幫助用戶將郵件發送給SMTP服務器和POP3/IMAP郵件服務器讀取用戶的電子郵件。郵件客戶端軟件通常集撰寫、發送、接收郵件于一體。
電子郵箱
每一個電子郵件服務器之上都可以開始多個電子郵箱,電子郵箱也稱之為E-Mail地址。它類似于現實生活中的通訊地址,用戶通過它接受別人發來的電子郵件和向別人發送電子郵件。
電子郵箱的獲得需要在電子郵件服務器上進行申請,確切的說,電子郵箱其實就是用戶在郵件服務器上申請的一個賬戶。郵件服務器把接收到的郵件保持到為某個賬戶所分配的郵箱空間中,用戶通過其申請的用戶名和密碼登陸到郵件服務器上查看該地址已經收到的電子郵件。
電子郵件的傳輸過程
電子郵件系統采用客戶/服務器模式。電子郵件傳送需要用到以下3個重要模塊:
MUA(Mail User Agent,郵件用戶代理):用戶通過它與電子郵件服務器打交道。MUA實際上就是郵件客戶端軟件。
MTA(Mail Transfer Agent,郵件傳輸代理):它主要負責處理所有接收和發送的郵件,為MUA或者MTA提供郵件發送服務,接收其他MTA發送過來的郵件。
MDA(Mail Delivery Agent,郵件投遞代理):它負責郵件本地投遞。當MTA決定某郵件發送本地用戶時,MTA將郵件交給MDA程序進行分發,也就是說投遞到用戶的。
具體的傳遞過程如下:
1、 發件人利用MUA將郵件發送給MTA。
2、 MTA收到郵件后判斷收件人是不是本地賬戶,如果是本地賬戶,交由MDA投送到該賬戶的郵箱中,完成發送過程,跳到第5步。如果不是則執行下一步驟。
3、 MTA根據其郵件中繼轉發設置來決定如何轉發郵件。
4、 最終目的的MTA將受到的交給他的MDA處理,有MDA將郵件投遞到收件人的郵箱中。
5、 收件人利用MUA通過POP/IMAP協議連接到郵箱所在的服務器,請求查看自己的收件箱是否有郵件,如果有郵件,將會通過它傳送個收件人的MUA。
注意:提示郵件訪問服務的是POP或者IMAP服務器軟件,而并非當初收下郵件的MTA,兩者的角色是分離的。
郵件傳輸協議
電子郵件服務傳輸主要是用到以下3中網絡協議
SMTP(簡單郵件傳輸協議)
SMTP是Simple Mail Transfer Protocol。標準TCP端口是25。MUA將郵件發送到MTA,MTA將郵件發送給下一個MTA,都是要使用SMTP。SMTP的目標是可靠高效地傳送郵件,它獨立于傳送子系統而且僅要求一條可以保證傳送數據單元順序的通道。
SMTP是一個“單向”的協議,它不能用戶從其他郵件服務器收取郵件。它本身是采用客戶/服務器模式,負責發送郵件的SMTP進程就是SMTP客戶端,負責接收郵件的SMTP進程就是SMTP服務器。一個完整的SMTP通信過程主要包括建立連接、傳送郵件、釋放連接三個過程。
建立連接:首先由發件人將要發送的郵件發送到郵件緩存,SMTP客戶端定期掃描郵件緩存,一旦發現有郵件,就與SMTP服務器建立TCP連接,然后發送HRLLO命令以附上發送方的主機名。
傳送郵件:SMTP客戶端使用MAIL命令開始傳送郵件,該命令提供發件人的地址;然后執行RCPT命令,并提供收件人地址;最后執行DATA命令傳送郵件內容。
釋放連接:郵件傳送完畢后,SMTP客戶端發送OUT命令請求關閉TCP連接。
POP(郵局協議)
POP是Post Office Protocol。標準TCP端口為110。主要用于電子郵件的接收。MUA經由POP協議連接到MTA的用戶收件箱,以讀取或下載用戶在收件箱中郵件。
目前用的較多的POP協議是POP3。POP3使用 TCP 作為傳輸協議。
IMAP(Internet信息訪問協議)
IMAP是Internet Message Access Protocol。標準TCP端口為143,它也是讓MUA從MTA收取郵件。目標球IMAP協議的版本為IMAP4。
POP和IMAP兩者都可以用于收取郵件,都是采用客戶/服務器模式,兩者最主要的區別就在于他們檢索郵件的方式不同。使用POP時,郵件駐留在服務器中個,一旦接收郵件,郵件都從服務器上下載到用戶計算機上。而IMAP則能夠然該用戶了解到服務器上存儲郵件的情況,已下載的郵件仍然滯留在服務器中,以便于實現郵件歸檔和共享。