版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、計算網(wǎng)絡課程設計 學 院_ _ 計算機學院_專 業(yè)_網(wǎng)絡工程_年級班別_2012級(3)班 _ _ 學 號_ 3112006443 學生姓名_王彥德_課 題 簡單的電子郵件客戶端指導教師_ 何翠紅 _ 成 績 計算機網(wǎng)絡課程設計任務書設計題目利用MyEclipseSWT-Designer實現(xiàn)電子郵件客戶端 已知技術參數(shù)和設計要求1.設計圖形用戶接口(GUI)的電子郵件客戶端,與收件人SMTP服務器交互,實現(xiàn)郵件的發(fā)送。2.界面設計中至少包含用戶輸入收件人地址、郵件主題、發(fā)件人地址、文本電子郵件內(nèi)容編輯等的編輯框,以及發(fā)送郵件(Send)、清除郵件內(nèi)容(Clear)、退出客戶端(Exit)等的命
2、令按鈕等。3.如果可能,實現(xiàn)附件發(fā)送,完成該項功能將得到加分。設計內(nèi)容與步驟1.閱讀RFC821-Simple Mail Transfer Protocol,熟悉SMTP協(xié)議;2.熟悉Java Socket實現(xiàn)網(wǎng)絡通信的基本機制;3.熟悉TCP Socket程序設計方法;4.熟悉MyEclipse+SWT-Designer的GUI應用程序開發(fā)環(huán)境的安裝、使用;5.電子郵件客戶端用戶界面設計;6.電子郵件客戶端功能實現(xiàn);7.課程設計任務說明書。設計工作計劃與進度安排1.SMTP 4小時2.Java TCP Socket程序設計基礎 2小時3.MyEclipseSWT-Designer環(huán)境安裝與使
3、用 8小時4.電子郵件客戶端GUI界面設計 4小時5.電子郵件客戶端功能實現(xiàn) 12小時6.課程設計說明書 10小時目錄簡單郵件客戶端設計說明書1一 前言1二 需求分析12.1 功能需求12.2開發(fā)環(huán)境工具12.3 所需要的知識2三 概要設計23.1 郵件系統(tǒng)各功能概述23.1.1 JavaMail簡介23.1.2 設計目標33.1.3 系統(tǒng)功能概述33.2 郵件管理系統(tǒng)總體設計方案43.2.1 系統(tǒng)體系結構43.2.2 功能模塊43.3 系統(tǒng)開發(fā)的技術難點和解決方案53.3.1 MIME Messsage的解析53.3.2 郵件發(fā)送63.3.3 系統(tǒng)性能問題63.4 系統(tǒng)特點73.5 系統(tǒng)具體
4、設計73.6 關鍵代碼113.7 結束語20 簡單郵件客戶端設計說明書 一 前言隨著互聯(lián)網(wǎng)技術及網(wǎng)絡辦公化的發(fā)展,電子郵件成為人們主要的通信方式之一。越來越多的人開始使用它。而且用它的人數(shù)勢必會繼續(xù)增加。雖然,現(xiàn)在已經(jīng)有很多的郵件收發(fā)軟件例如著名的FoxMail ,但是對于大多數(shù)的非專業(yè)的人來說它還是有點難度。因此,我們所設計的基于JavaMail的郵件收發(fā)系統(tǒng)就利用JavaMail開發(fā)包的高級應用和E-Mail的相關協(xié)議開發(fā)出這個功能相對簡單,但是實用、方便、快捷的郵件收發(fā)系統(tǒng)。主要用于幫助用戶將郵件發(fā)送給SMTP服務器和從POP3郵件服務器讀取用戶的電子郵件。它集郵件的撰寫、發(fā)送和接收功能
5、與一體。并且支持附件的發(fā)送和接收以及其它一些附加功能的實現(xiàn)。雖然它沒有FoxMail那么強大的功能,但是它容易掌握和使用。整個系統(tǒng)功能流暢,從操作簡便、界面友好、靈活實用的要求出發(fā),使用戶之間的交流能夠更加地方便和快捷。本人結合SMTP以及POP3協(xié)議的實現(xiàn)原理、相關JavaMail API幫助文檔以及相關參考書,實現(xiàn)了一個工作在PC下的郵箱客戶端程序,該程序基本上實現(xiàn)了一個郵箱所對應的所有功能。二 需求分析2.1 功能需求(1)開發(fā)一個JavaMail API下的郵箱客戶端,實現(xiàn)郵件的發(fā)送、接收以及。(2)通過輸入服務器地址、用戶名、密碼,可以實現(xiàn)遠程FTP服務器登錄。(3)提供本地文件和文
6、件夾的上傳功能,對FTP主機文件進行下載和刪除。(4)提供對本地目錄的讀取與返回,能夠列出文件和文件夾。(5)FTP提供兩種工作模式的選擇,Port模式(主動模式)和Passive模式(被動模式)。2.2開發(fā)環(huán)境工具(1)使用編程工具:MyEclipse SWT-Designer(2)使用的語言:Java(3)開發(fā)平臺:2.3 所需要的知識(1)計算機網(wǎng)絡的基本知識(2)了解SMTP協(xié)議以及POP3協(xié)議基本實現(xiàn)原理(3)使用Windows下的Eclipse編譯器的使用方法(4)熟悉郵件的各項功能。三 概要設計3.1 郵件系統(tǒng)各功能概述3.1.1 JavaMail簡介JavaMail API是J
7、ava EE的一部分,是Java SE的可選組件。該組件提供了一個平臺無關、協(xié)議獨立的框架,預置了一些最常用的郵件傳送協(xié)議的實現(xiàn)方法,通過一組API來模擬郵件系統(tǒng)。提供Email的發(fā)送和接收服務。它借鑒了IMAP、MAPI、CMC等消息系統(tǒng)API的設計,采用面向對象的思想將接2008年4月18日收到接口與實現(xiàn)相分離,支持存取方式、消息格式、消息傳送協(xié)議不同的郵件消息系統(tǒng),可以簡便的為應用程序增加Email支持,廣泛應用于構件郵件和消息應用系統(tǒng) JavaMail API封裝了電子郵件功能中:郵件對象、發(fā)送、身份認證、接收等功能。其核心類有:Session、Authenticator Addres
8、s Message Transport、Store、Folder等。其中Session是郵件操作的接口,用于建立了基本的郵件會話;Authenticator類提供訪問郵件服務器所需的認證信息;Message描述基本的郵件消息,是收發(fā)郵件的操作單位;Transport是發(fā)送郵件時所用的協(xié)議,通常是SMTP;Store模擬了消息數(shù)據(jù)庫及其內(nèi)部存儲消息的目錄的訪問協(xié)議;Folder用于描述消息數(shù)據(jù)庫中的目錄結構。一個Session會有多個Transport,每個Store包含一系列的Folder和Message,每個Folder又包含一系列的Folder和Message。借助這些類,就可以構建各種典
9、型的郵件應用。JavaMail的最新實現(xiàn)是14版本,可以支持POP3、IMAP4、SMTP協(xié)議。由于JavaMail還需要JavaBeans Activation Framework(JAF)框架的支持,3.1.2 設計目標公用郵箱是和外單位交互的主要渠道,用戶獲取和提交一些重要數(shù)據(jù)和文件,也是與本單位其它部門進行業(yè)務的信息交換的重要渠道。公用郵箱不僅有13常辦公相關的各類郵件,還有很多其它種類的郵件。此外,一些與辦公相關的郵件還會發(fā)送到工作人員的個人郵箱中。工作人員使用Foxmail或其它郵件客戶端將公用郵箱中的郵件從服務器下載至本地,然后進行處理。這樣的工作模式存在的缺點有:郵箱中郵件太多
10、,很難找到與工作相關的郵件,工作效率低下,存在潛在處理風險;工作人員都利用郵件客戶端存儲和處理郵件,造成資源浪費,且無法及時得悉郵件的處理情況,難以落實責任;難以對辦公相關的郵件進行統(tǒng)一歸檔和備份,并提供檢索、統(tǒng)計、數(shù)據(jù)分析等服務;郵件帳號分散管理,帶來潛在的信息安全隱患。本系統(tǒng)的設計旨在解決這些問題,為工作人員提供一個基于Web的簡潔、易用、安全可靠、功能完備的辦公郵件處理平臺。3.1.3 系統(tǒng)功能概述(1)郵件自動獲取與過濾系統(tǒng)每天實時或者在固定的時間,統(tǒng)一收集多個外部郵件服務上多個郵件帳號的新郵件后匯總在一起,并根據(jù)發(fā)送地址和過濾規(guī)則對郵件進行過濾,提取服務器上的有效郵件,通過人工干預或
11、者自動化的機制將郵件基本信息存儲在數(shù)據(jù)庫中,附件存人文件服務器,對完全重復的郵件通過比對后只保留一份。(2)郵件分類對過濾后的有效郵件,按照制定好的分類規(guī)則,根據(jù)郵件主題、發(fā)件人信息、附件屬性及關鍵詞對郵件及其附件進行歸類,并提供自動歸類和人工干預后確定郵件類別兩種靈活的類別確認機制。(3) 郵件提醒與處理在郵件歸類后,對于新郵件,系統(tǒng)通過與短信發(fā)送平臺的接口,將發(fā)件人、發(fā)送時間、主題、優(yōu)先級等信息以短信的形式發(fā)送給相應郵件類別的處理者。郵件處理者通過網(wǎng)頁登陸系統(tǒng),可以像使用Web郵箱那樣,方便快捷的查閱和處理只屬于自己需要處理的那些郵件。(4) 郵件管理系統(tǒng)向用戶提供郵件檢索、刪除、調(diào)整分類
12、等功能??梢越y(tǒng)一直觀的對:信息過濾情況、信息分類跟蹤、處理情況、審閱結果、處理者信息、反饋情況等進行展示。還可以對郵件進行統(tǒng)計,生成月度及年度郵件統(tǒng)計報表。普通用戶只能管理與自己工作相關的郵件,系統(tǒng)管理員可以管理所有郵件。(5)郵件帳號設定及過濾和分類規(guī)則定義系統(tǒng)管理員可根據(jù)需求設定多個郵件帳號,將不同郵箱的郵件匯總在一起。過濾規(guī)則是系統(tǒng)選擇接收郵件的依據(jù),目前狀況下,對郵件地址和發(fā)送時間進行過濾已能滿足需求。分類規(guī)則是對郵件進行分類的依據(jù),對每個公司或單位,管理員可以根據(jù)業(yè)務類型定義郵件及附件類別,然后指定該類別郵件的關鍵詞、特征及處理者。3.2 郵件管理系統(tǒng)總體設計方案3.2.1 系統(tǒng)體系
13、結構系統(tǒng)基于BS結構,采用MVC(Mode1ViewController)模式,體系結構系統(tǒng)采用三層結構:第一層是客戶端層,用戶通過IE、Firefox等瀏覽器與系統(tǒng)交互,發(fā)起瀏覽、檢索、處理郵件、系統(tǒng)配置與管理等請求,并展示處理結果。第二層為服務器層,可以分為兩個功能相對獨立的部分,一個是Web服務器,用于響應和處理客戶端請求,通過請求處理程序與后臺數(shù)據(jù)庫交互,返回處理結果給瀏覽器;一個是郵件處理部分,通過JavaMail API與郵件服務器交互,發(fā)送和接收郵件,并對有效郵件進行解析與分類,將結果存放在數(shù)據(jù)庫和文件系統(tǒng)中,然后借助短信發(fā)送平臺的接口通知用戶處理郵件。第三層為數(shù)據(jù)層,包括:用于
14、存儲系統(tǒng)信息、郵件信息的數(shù)據(jù)庫服務器,存儲郵件附件的文件服務器。為了提高系統(tǒng)可擴展性和滿足復雜應用邏輯的需求,在系統(tǒng)第二層的Web應用中,是MVC模式的一種實現(xiàn)。3.2.2 功能模塊系統(tǒng)涵蓋了運行中心日常郵件管理與維護的所有功能,共分為六個模塊:郵件獲取模塊、郵件發(fā)送模塊、郵件分類模塊、郵件處理模塊、郵件管理模塊、聯(lián)系人模塊。這些模塊功能相對獨立,具有高內(nèi)聚、低耦合的特點,每個模塊都有定義良好的接口,可以擴展和增加復雜的應用邏輯。其中,郵件發(fā)送模塊可以發(fā)送文字,圖片,附件,并可以同時發(fā)送給不同的郵箱。其中可編輯發(fā)送文字的大小格式顏色等。郵件獲取模塊可以獲取郵件,在收件箱可以看到郵件列表,刷新可
15、見新郵件。郵件分類模塊是將郵件客戶端分為發(fā)信箱,收信箱,已發(fā)送,已刪除郵件管理模塊是可對郵件刪除,回復,徹底刪除,對已刪除的郵件可以恢復,刷新收信箱。郵件處理模塊是對郵件的查看,下載附件,回復。聯(lián)系人模塊是可以添加,刪除聯(lián)系人,發(fā)郵件的時候可以直接點擊已添加過的聯(lián)系人進行發(fā)送。3.3 系統(tǒng)開發(fā)的技術難點和解決方案3.3.1 MIME Messsage的解析MIME(Multipurpose Internet Mail Extension)協(xié)議是目前應用最廣泛的郵件協(xié)議,用于定義郵件的格式,它可以包含文本、圖像、音頻、視頻以及其它應用程序專用的數(shù)據(jù)。郵件的解析實際上可以就是解析MIME消息的過程
16、,是郵件過濾、分類、管理等工作的前提。通常情況下,一個MIME消息由消息頭(Headers)和消息體(Content)組成。消息頭包括:發(fā)送者、接收者、發(fā)送時間、主題、優(yōu)先級、郵件內(nèi)容類型、MIME版本號等信息。消息體為郵件的內(nèi)容,它可以為簡單的文本,也可以是包含多個分段(Part)的多重消息(Muhipart),而其中每個分段的消息都有自己的消息頭和消息體。對于不帶附件的簡單郵件,其消息體的內(nèi)容類型是純文本,text/plain或者text/html等。對于帶附件或者包含多種內(nèi)容格式的郵件,其消息體為muhipart類型,通常為:muhipart/mixed、muhipart/related
17、或multipart/alternative.比如:郵件正文、附件、HTML信件等。因此,郵件消息的解析過程實際上是一個后序周游整棵MIME消息樹的過程。消息的解析需要遞歸訪問消息中的每個消息體,也就是樹的葉結點,從中獲取相關信息,并生成一個郵件對象,用于隨后的郵件分類和寫人數(shù)據(jù)庫操作。在解析時,需要將發(fā)送者、接收者、主題、發(fā)送時間、正文等有用信息存儲在定義好的郵件對象中,將附件和HTML格式的信件存儲在文件系統(tǒng),并將附件的文件名和文件路徑存儲在郵件對象中。3.3.2 郵件發(fā)送Email的發(fā)送實際上就是構造一個MIME消息的過程。JavaMail API提供了相應的接口用于構造一個郵件消息,但
18、是相對較復雜。本系統(tǒng)采用Apache的開源工具包Commons Email來實現(xiàn)郵件發(fā)送。Commons Email構建于JavaMail API上,對JavaMail進行了再封裝,提供了極為簡便的借口用于通過Java程序發(fā)送Email。它提供的主要類有:SimpleEmail(用于發(fā)送簡單的文本類型Email)、MultiPartEmail(用于發(fā)送帶附件的Email)、HtmlEmail(用于發(fā)送Html格式的郵件)、EmailAttachment(描述Email的附件)。借助Commons Email工具包發(fā)送一個簡單Email只需要創(chuàng)建SimpleEmail對象,設置SMTP服務器、認
19、證信息、發(fā)送者、接收者、主題、正文,然后發(fā)送即可。要發(fā)送一個帶附件的郵件,只需要構造一個MuhiPartEmail對象,設置和簡單Email一樣的屬性,然后構造附件對象并將之附加在MuhiPartEmail中即可。不難看出采用了Commons Email工具包后,郵件的發(fā)送十分簡潔,只需要構建相應的附件和郵件內(nèi)容即可,而且工具包還支持直接用網(wǎng)絡上的文件作為附件內(nèi)容。3.3.3 系統(tǒng)性能問題郵件服務器上可能會有很多封郵件,如何判斷一封郵件是否被處理過,并對未處理的郵件消息進行過濾與分類是系統(tǒng)的一個性能瓶頸。系統(tǒng)基于Web技術構建客戶端,而Web應用程序不可避免的會有頻繁的數(shù)據(jù)庫操作,建立數(shù)據(jù)庫連
20、接是相當耗費資源和時間的操作。在JSP應用中若直接采用JDBC接口訪問數(shù)據(jù)庫,必然會頻繁建立和關閉數(shù)據(jù)庫連接,從而導致服務器性能下降。為保證系統(tǒng)高效運行,采用如下的策略來提高整體性能: (1)多線程技術每個Email消息的處理是相對獨立的過程,因而采用多線程技術同時處理多封郵件是提高性能的最簡單可行的做法。系統(tǒng)共使用8個線程處理郵件消息,根據(jù)郵件消息的總數(shù) ,就能計算出每個線程所需要處理的消息數(shù)為N=M8(表示取上整)。其中第k個線程處理郵件消息隊列中第8i+k(i=0,1, ,N一1)個消息,以倒序的方式處理可以使得消息相對均勻的分配給處理線程,并保證有效消息先被處理。 (2) 靈活高效的過
21、濾機制每個Email都會對應一個固定的MessageID和SentDate,在解析時很容易獲取。系統(tǒng)會對每個帳號設定郵件開始接收13期(ReceiveStartDate),在處理Email消息時,先根據(jù)SentDate來判斷,若在該13期前,則不予以處理。每次接收完成后,更新ReceiveStartDate至當前13期。為了避免重新設定ReceiveStartDate或者重新執(zhí)行接收任務時,對已經(jīng)處理過的有效郵件重復處理,系統(tǒng)提供兩種機制,一種是不在服務器上保留副本,這樣每次獲取的必然是新郵件;一種是保留副本,但利用Property文件記錄每個符合要求的消息的處理情況,以便快速判斷郵件消息是否被處理過。(3) 采用數(shù)據(jù)庫連接池技術連接池會在初始化時保持一定數(shù)量的數(shù)據(jù)庫連接,應用程序在操作數(shù)據(jù)庫時,從連接池中獲取一個連接,完成操作后釋放連接,這樣大大提高了系統(tǒng)性能。保存郵件信息至數(shù)據(jù)庫時,系統(tǒng)采用Apache DBCP Co
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療診斷、監(jiān)護及治療設備制造考核試卷
- 二零二五年度跨境電子商務平臺運營承包合同2篇
- 合同簽訂授權委托書
- 2025年滬教版七年級歷史下冊月考試卷含答案
- 2025年北師大新版八年級地理上冊月考試卷含答案
- 2025年外研版三年級起點選擇性必修3歷史下冊階段測試試卷
- 2025年度暖通工程綠色建材采購合同4篇
- 二零二五版景區(qū)導覽門牌定制服務合同4篇
- 2025版南京市房產(chǎn)局推廣的房屋抵押權設立合同模板4篇
- 二零二五年度農(nóng)膜行業(yè)人才培養(yǎng)與交流合同3篇
- DB32-T 4444-2023 單位消防安全管理規(guī)范
- 臨床三基考試題庫(附答案)
- 合同簽訂執(zhí)行風險管控培訓
- DB43-T 3022-2024黃柏栽培技術規(guī)程
- 九宮數(shù)獨200題(附答案全)
- 人員密集場所消防安全管理培訓
- 《聚焦客戶創(chuàng)造價值》課件
- PTW-UNIDOS-E-放射劑量儀中文說明書
- JCT587-2012 玻璃纖維纏繞增強熱固性樹脂耐腐蝕立式貯罐
- 典范英語2b課文電子書
- 員工信息登記表(標準版)
評論
0/150
提交評論