

【摘要】文章分別闡述了基于客戶機/服務器模式和Web方式的電子郵件工作原理,同時對浙教版高中信息技術教材《信息技術基礎》的“電子郵件的工作奧秘”一節作出評析,指出其不足,并給出改進方案。
【關鍵詞】電子郵件;WebMail;工作原理
從用戶角度來看,電子郵件主要分為基于客戶端軟件的方式和Web方式兩種。浙江教育出版社出版的高中信息技術教材《信息技術基礎》第5.2節是“人際信息交流——電子郵件”,在這一節中,依次講解了“收發電子郵件”、“申請電子郵箱”和“電子郵件的工作奧秘”?!笆瞻l電子郵件”講解的是使用瀏覽器以Web方式收發電子郵件,而“電子郵件的工作奧秘”講解的是基于客戶端的電子郵件工作原理,并且是以隱含方式指明基于客戶端軟件?;诳蛻舳塑浖碾娮余]件工作原理并不能解釋前兩小節基于Web的電子郵件的相關內容。這種知識呈現上的混亂,不符合學生的認知規律,給學生的理解造成了很大的困難,不利于學生知識體系的構建。
基于客戶機/服務器(Client/Server)模式的電子郵件工作原理
電子郵件是一種在萬維網產生之前就已經存在并廣泛使用的網絡通信技術。在萬維網產生之前,電子郵件的收發是基于客戶端軟件的。用戶利用客戶端軟件,如Outlook Express、FoxMail,可以在個人電腦上完成編寫郵件和閱讀郵件的工作,因此,常把用戶的電腦稱為客戶端(Client)。與之相對應,郵件服務提供商提供的專門處理郵件的計算機稱為郵件服務器(Server)。這種郵件收發方式是基于典型的客戶機/服務器(Client/Server)模式。
電子郵箱地址的格式為:用戶名@域名。第一部分標識用戶的郵箱,從文件系統角度看,電子郵箱就是一個文件夾;第二部分標識郵件所在的計算機,即存放用戶郵件的郵局服務器。
1.電子郵件的發送
當使用電子郵件客戶端軟件編寫完郵件并發送后,發送方計算機上的電子郵件軟件使用發送方電子郵箱地址中的第二部分,與遠程服務器(如圖中的SMTP服務器1)構造一個TCP連接,并在此上面進行通信,該連接位于25號端口。一旦連接建立,客戶端和服務器端的程序就遵循SMTP協議,相互發送信息。客戶端先以HELO命令向服務器發出請求,并以Mail命令向服務器標識發件人的身份。服務器如果接受,就以OK作為響應。發送方再以RCPT命令,告知服務器收件人的身份。服務器如果同意為收件人接收郵件,就再以OK作為響應。至此,就建立了一個SMTP會話。然后,客戶端使用相應的命令將郵件信息發送到服務器上。郵件的整個發送過程由發送方控制,需要確認幾次才能夠完成。
SMTP服務器還具有轉發功能。SMTP服務器收到郵件后,檢查收件人的地址,當收件方為本地計算機上的接收方時,直接將郵件存入用戶的郵箱中;當收件方為遠程用戶時,SMTP服務器以客戶端的身份與遠程的服務器(如圖SMTP服務器2)建立連接,將郵件傳送給遠程的服務器。這樣依次進行,直到將郵件發送到接收者信箱中。
由此可見,SMTP服務器有兩種工作狀態:一是作為服務器接收從客戶端發送來的電子郵件;二是作為客戶端向另一個遠程服務器發送電子郵件。
2.電子郵件的接收
電子郵件的接收也是通過客戶端軟件實現的。在TCP/IP協議族中,包含一個提供對電子郵件進行遠程存取的協議,稱為郵局協議(POP),現在使用的是第3個版本,通常稱作POP3。郵局服務器(如圖POP3服務器2)通過偵聽TCP端口110開始POP3服務。
當客戶端軟件需要從郵箱中讀取郵件時,它將與郵局服務器主機建立TCP連接,并在此上面進行通信。一旦連接建立,客戶端和服務器端的程序就遵循POP3協議,相互發送信息。
客戶端軟件先使用USER命令和PASS命令將郵箱的賬號、密碼傳送給POP3服務器,進行身份認證。當這一認證過程完成后,郵件客戶端程序使用STAT命令請求服務器返回郵箱的統計資料,如郵件總數、郵件總字節數等。然后使用LIST命令請求服務器列出服務器里郵件數量和每個郵件的大小。接下來郵件程序就會使用RETR命令接收郵件,每接收一封郵件,便使用DELE命令請求服務器將該郵件置為刪除狀態。全部郵件接收完畢后,使用QUIT命令結束會話,和服務器斷開連接。服務器收到QUIT命令請求后,便會將標有刪除標志的郵件全部刪除。郵件被下載到客戶機上后,用戶就可以使用客戶端軟件閱讀郵件了。
由此可見,POP協議支持脫機工作方式。另外,有些郵局服務器還支持IMAP協議,這種協議支持脫機、聯機和斷連三種工作方式。
基于Web的電子郵件工作原理
隨著萬維網的產生,電子郵件技術也發生了很大變化,基于Web的電子郵件迅速發展起來。基于Web的電子郵件,有時也稱WebMail。實際上,WebMail是一種利用瀏覽器通過Web方式收發電子郵件的服務或技術。WebMail不需要借助專用的郵件客戶端,用戶以Web方式直接登錄服務器上的電子郵箱,即可讀寫、發送及管理電子郵件。目前,大部分國內的門戶網站都提供WebMail服務,比如新浪、搜狐、網易、雅虎中國等等。
WebMail系統的服務器端通常由Web服務器、應用程序服務器和郵件服務器等組成。Web服務器通常借助于服務器端的JSP、PHP、ASP等腳本運行環境,以及客戶端腳本,為用戶提供郵件系統的訪問界面。應用程序服務器負責訪問用戶信息數據庫、收發郵件、管理郵箱等工作。Web服務器通過程序接口與應用程序服務器進行連接,而應用程序服務器又與郵件服務器、數據庫服務器連接在一起。Web服務器和應用程序服務器通常按一前一后的形式進行配置,這種功能上的分離有助于提高系統性能,同時給最佳產品的選取留有余地。在一些小型的WebMail系統中,為了簡化系統規模,通常將Web服務器和應用程序服務器放在一起,即建立一個Web應用程序服務器。
1.郵箱登錄
對于WebMail,無論收信還是發信,用戶必須先登錄郵箱。登錄郵箱時,用戶利用表單(Form),使用HTTP協議將賬號名(用戶電子郵箱地址)和密碼發送到Web服務器上,再通過應用程序服務器連接用戶信息數據庫進行身份驗證。身份驗證通過后,應用程序服務器連接郵局服務器,從用戶郵箱中取得郵件信息,并返回給Web服務器,Web服務器再以網頁的形式發送給用戶。
HTTP協議是以明文形式發送賬號名和密碼的,安全性較差。許多網站使用安全連接對通信信息進行加密,即使用安全套接字層上的超文本傳輸協議(HTTPS),使信息安全得到保障。
基于HTTP協議的通信是建立在TCP連接之上的。在此基礎上,瀏覽器和Web服務器要建立一個會話,以請求/應答方式進行工作。由于HTTP是無狀態協議,每次通信都是單獨連接,不能維持客戶的上下文信息,所以WebMail系統有必要對用戶會話進行跟蹤。通常,WebMail系統使用幾種常用的會話跟蹤技術,如Cookie、Session等,維持客戶端和服務器端的通信聯系,跟蹤每一個客戶。
2.電子郵件的發送
用戶利用表單(Form),完成電子郵件的撰寫,并將郵件信息發送到Web服務器上。Web服務器通過程序接口將郵件信息傳送給應用程序服務器。應用程序服務器通過組件或外部應用程序,使用SMTP協議將郵件發送出去。
WebMail系統中,發送電子郵件的一種方法是通過應用程序服務器中的組件。例如,在JSP環境下,可以通過服務器組件JavaMail、JavaBean、Servlet發送郵件;在ASP環境下,可以通過Jmail、AspEmail、CDONTS組件發送郵件。發送電子郵件的另一種方法是借助于操作系統的外部程序或命令,比如郵件發送程序SendMail。在PHP環境下,還可以通過PHP提供的system()、exec()等函數調用外部應用程序來實現郵件的發送。
郵件發出后,再通過其他的郵件傳輸代理(SMTP服務器),最終發送到收件服務器中。
3.電子郵件的接收
接收郵件時,由用戶發出請求,該請求被Web服務器接收并傳遞給應用程序服務器,應用程序服務器連接郵件服務器并讀取郵件信息,并傳遞給Web服務器,Web服務器再以網頁的形式將郵件傳遞給用戶。
WebMail主要通過應用程序組件或專用程序,從郵件服務器中獲取郵件信息,實現電子郵件的接收功能。例如,在JSP環境下,可以通過服務器組件JavaMail、JavaBean、Servlet接收郵件信息。ASP環境下則可以通過Jmail組件實現電子郵件的接收。接收到的郵件信息,最后由Web服務器以網頁的形式返回給用戶。
實際上,WebMail就是由瀏覽器和Web服務器、應用程序服務器共同作為郵件用戶代理,幫助用戶讀寫、收發郵件的。
綜上所述,“電子郵件的收發”和“電子郵件的工作原理”兩部分教學內容具有對應關系,浙教版高中《信息技術基礎》前面講解基于Web的電子郵件收發,后面講解基于客戶機/服務器模式的電子郵件工作原理,是不科學的。從絕大多數學生使用WebMail的客觀實際和認知規律來看,在這一部分,應在了解客戶機/服務器模式電子郵件工作原理的基礎上,重點講解基于Web的電子郵件工作原理。
參考文獻:
[1]胡道元.計算機網絡(初級).北京:清華大學出版社,1999
[2]中國科學院郵件系統幫助中心.郵件知識.http://mail.cstnet.cn/cstnet/help/mail_information.html
[3]尹斌,江崇禮,董明.基于Java的Web郵件系統.計算機工程,2004(14)
[4]陳玉清.基于Java的Web郵件系統的設計與實現.河南師范大學學報(自然科學版),2009(4)
[5]王進.WEB電子郵件系統的設計與實現.湖南廣播電視大學學報.2008(2)