基于JavaMail的電子郵件收發(fā)系統(tǒng)論文_第1頁
基于JavaMail的電子郵件收發(fā)系統(tǒng)論文_第2頁
基于JavaMail的電子郵件收發(fā)系統(tǒng)論文_第3頁
基于JavaMail的電子郵件收發(fā)系統(tǒng)論文_第4頁
基于JavaMail的電子郵件收發(fā)系統(tǒng)論文_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、-. z目 錄 TOC o 1-3 h z u HYPERLINK l _Toc357548807第1章 概述 PAGEREF _Toc357548807 h 1HYPERLINK l _Toc3575488081.1研究目的和意義 PAGEREF _Toc357548808 h 1HYPERLINK l _Toc3575488091.2國外開展趨勢和現(xiàn)狀2HYPERLINK l _Toc3575488101.3 系統(tǒng)特點 PAGEREF _Toc357548810 h 4HYPERLINK l _Toc357548811第2章 相關(guān)技術(shù)和工具簡介6HYPERLINK l _Toc357548

2、8122.1 Swing簡介6HYPERLINK l _Toc3575488132.2 Java Mail簡介6HYPERLINK l _Toc3575488142.3Java平臺簡介7HYPERLINK l _Toc3575488152.4 Eclipse簡介7HYPERLINK l _Toc357548816第3章 系統(tǒng)需求分析和總體設(shè)計9HYPERLINK l _Toc3575488173.1用戶對電子系統(tǒng)的需求9HYPERLINK l _Toc3575488183.2產(chǎn)品可行性分析10HYPERLINK l _Toc3575488213.3系統(tǒng)總體設(shè)計 PAGEREF _Toc3575

3、48821 h 12HYPERLINK l _Toc3575449923.3.1電子系統(tǒng)的功能12HYPERLINK l _Toc3575449933.3.2電子收發(fā)過程13HYPERLINK l _Toc3575449923.3.3效勞器參數(shù)的設(shè)置14第4章 詳細設(shè)計.15HYPERLINK l _Toc3575488224.1 登錄功能的設(shè)計 PAGEREF _Toc357548822 h 15HYPERLINK l _Toc3575488234.2發(fā)送的設(shè)計 PAGEREF _Toc357548823 h 15HYPERLINK l _Toc3575488244.3接收的設(shè)計 PAGER

4、EF _Toc357548824 h 16HYPERLINK l _Toc3575488254.4管理的設(shè)計 PAGEREF _Toc357548825 h 17HYPERLINK l _Toc357548826第5章 系統(tǒng)功能的編碼實現(xiàn) PAGEREF _Toc357548826 h 18HYPERLINK l _Toc3575488275.1用戶登錄界面的實現(xiàn) PAGEREF _Toc357548827 h 18HYPERLINK l _Toc3575488285.2主界面的實現(xiàn)19HYPERLINK l _Toc3575488295.3 配置界面的實現(xiàn)20HYPERLINK l _Toc

5、3575488305.4 發(fā)送界面的實現(xiàn)21HYPERLINK l _Toc3575488315.5 接收界面的實現(xiàn) PAGEREF _Toc357548831 h 22HYPERLINK l _Toc357548832第6章 系統(tǒng)實現(xiàn)的功能測試 PAGEREF _Toc357548832 h 24HYPERLINK l _Toc3575488336.1 登錄測試 PAGEREF _Toc357548833 h24HYPERLINK l _Toc3575488346.2發(fā)送測試 PAGEREF _Toc357548834 h 24HYPERLINK l _Toc3575488356.3接收測試

6、 PAGEREF _Toc357548835 h 26HYPERLINK l _Toc3575488366.4查看測試 PAGEREF _Toc357548836 h 26HYPERLINK l _Toc3575488376.5刪除測試 PAGEREF _Toc357548837 h 27HYPERLINK l _Toc357548838第7章 總結(jié) PAGEREF _Toc357548838 h 29HYPERLINK l _Toc357548839參考文獻30HYPERLINK l _Toc357548840致 31HYPERLINK l _Toc357548841附錄:局部源程序代碼3

7、PAGEREF _Toc357548841 h 2附件1:開題報告附件2: 譯文及原文影印件-. z-. z第1章 概述隨著信息時代的到來,Internet的廣泛應(yīng)用,相信大家對qq,163,已經(jīng)并不陌生,這一類的出現(xiàn)是計算機和網(wǎng)絡(luò)不斷開展的結(jié)果,與每個人都密不可分,已經(jīng)成為網(wǎng)絡(luò)中最廣泛使用的一局部。1.1研究目的和意義從人類開展開場,信息交換一直都是人類的根本需求之一。人們會通過各種途徑來實現(xiàn)信息的交換,從而到達一種交流。從以前的快馬送信和口耳相傳到如今的電腦和郵政系統(tǒng),隨著先進技術(shù)的不斷進步,人類信息交流的方式也一直在進步,其中電子效勞就是計算機和網(wǎng)絡(luò)技術(shù)出現(xiàn)之后的一個例子。它較以前更加方

8、便快捷,深受人們的喜愛。電子又被稱為電子,是一種典型的通過先進技術(shù)的電子手段提供信息交換的一種通信方式,同時也是Internet的所有應(yīng)用中最廣泛的效勞。電子不是只局限于信件的傳遞了,而是另外還包括文件,聲音及圖形圖像等信息的傳遞。這種非交互式的通信方式,加速了數(shù)據(jù)傳送從而更快的到達信息的交流,促進了社會的開展。她是一種簡單且快速的方法,電子系統(tǒng)通過連上全世界的網(wǎng)絡(luò),用戶就可以免費地并且非常快的幾秒鐘之可以將信息發(fā)送到世界上任何你指定的目的地。同時,用戶也可以從電子系統(tǒng)中得到大量免費的新聞、專題,并實現(xiàn)輕松的信息搜索。這是任何傳統(tǒng)的方式也無法相比的。 電子最顯著地特點是存貯轉(zhuǎn)發(fā)式效勞,并不是一

9、種終端到終端的效勞,利用這種存貯轉(zhuǎn)發(fā)可以進展異步通信,即信件發(fā)送人可以在任何時間任何地點發(fā)送文件,這并不要求接收者必須同時在場,即使是對方不在,發(fā)送者的還是可以立刻送到對方的信箱,并進展了存儲,這樣接收者可以在他方便時登錄來收取,來查看容,這不必受到時間空間的限制。這種存貯轉(zhuǎn)發(fā)效勞也正是電子系統(tǒng)的核心。 隨著上網(wǎng)用戶越來越多,上網(wǎng)速度越來越快,作為網(wǎng)絡(luò)根底應(yīng)用的電子系統(tǒng)所面臨的問題也日益突出,不管是使用免費的.,還是163.等,還是使用收費的個人,ISP提供的虛擬機都存在著種種問題。介于當(dāng)下流行的各大客戶端軟件的除了最主要的收發(fā)信件之外,功能越來越復(fù)雜,但是我們的日常生活中真正用到的功能卻很少

10、,同時作為中小型企業(yè),的本錢也越來越高,很多功能尤其對于計算機知識相對缺乏的人來說,顯得太過華美且不太實用。有鑒于此,在了解smtp和pop3等底層協(xié)議的根底之上,開發(fā)了這個各種功能相對簡單實用的系統(tǒng),簡化了用戶的操作。1.2國外開展趨勢和現(xiàn)狀 電子是互聯(lián)網(wǎng)最根本且最重要的效勞之一。據(jù)統(tǒng)計,目前全世界的電子賬號超過15億個,電子成為Internet上所占比例最大的應(yīng)用。中國互聯(lián)網(wǎng)絡(luò)信息中心關(guān)于中國互聯(lián)網(wǎng)開展?fàn)顩r統(tǒng)計報告(2005年1月)說明,我國目前上網(wǎng)人數(shù)9400萬,人均擁有電子1.5個。還有另一項數(shù)據(jù)說明,互聯(lián)網(wǎng)上百分之三十的業(yè)務(wù)量都是電子,由于我國通信設(shè)施較差,以及網(wǎng)絡(luò)速度慢等弊端,快捷

11、的電子效勞更具實用性。CINNIC中國互聯(lián)網(wǎng)絡(luò)開展?fàn)顩r統(tǒng)計報告中指出,中國用戶最常使用的網(wǎng)絡(luò)效勞71.65%是電子,而搜索引擎和上傳或下載效勞分別只占50.40%和44.16%。早期的電子系統(tǒng)在網(wǎng)絡(luò)形成的時候就已經(jīng)出現(xiàn)了,1961年的時候,麻省理工學(xué)院在7094大型機系統(tǒng)上開發(fā)出了一套兼容時分共享系統(tǒng)(CTSS)。這也允許許多用戶使用主機的新能力,使用戶可以用新的方法來共享信息。當(dāng)CTSS系統(tǒng)的用戶需要向其他用戶傳遞信息時,他們會在一個通用的目錄下以TO TOM之類的文件名簡歷一個文件,查看或者打印其中的容,在這種簡單的信息發(fā)送方法的根底上,出現(xiàn)了第一個工具,通過這個工具,CTSS系統(tǒng)的管理員

12、可以向用戶發(fā)送信息。例如*個用戶他喪失的文件已經(jīng)通過備份找回,這是通過在目錄用戶中創(chuàng)立特定的文件來實現(xiàn)的。 這以后,CTSS系統(tǒng)上也出現(xiàn)了用于用戶之間信息傳遞的工具。在其他的多用戶系統(tǒng)上,也陸續(xù)開發(fā)和使用了類似的軟件。這些軟件的工作原理類似,都是在用戶目錄下設(shè)置一個特殊的目錄,一個用戶給另一個用戶發(fā)信時,就在收信者的牡蠣下建立一個新的文件,并在其中保存新建的容。 當(dāng)收信者稍后登陸的主機上時,檢查該目錄就可以知道自己有新的,并可以翻開和查看容,這些早期的系統(tǒng)雖然非常簡陋,也存在很多問題,但是其根本思想都是通過文件的傳遞來實現(xiàn)用戶之間的異步傳輸,和今天所用的電子系統(tǒng)根本一樣?,F(xiàn)代電子系統(tǒng)正式在這些

13、原始的軟件根底上開展而來的。 到了20世紀(jì)60年代末70年代初,在美國國防部領(lǐng)導(dǎo)下,現(xiàn)代INTERNET 的前身ARPANET 開場建立和運行,它將成員單位的多臺主機連接起來組成了一個網(wǎng)絡(luò)。當(dāng)時,網(wǎng)絡(luò)的大局部主機上都已經(jīng)有了部的系統(tǒng),于是一個很自然的想法出現(xiàn)了,就是能否利用ARPANET使這些系統(tǒng)能夠相互通信。事實上,系統(tǒng)的互聯(lián)正式ARPANETA最早期的網(wǎng)絡(luò)應(yīng)用嘗試之一。 1969年,在ARPANET原型網(wǎng)還在試驗的時候,拉里羅伯特編寫了第一個通過網(wǎng)絡(luò)發(fā)送電子的程序。 1971年1月,ARPA RFC 196協(xié)議(Mail Bo* Protocol)中討論了如何通過ARPANET 發(fā)送的問題

14、。之后有多個類似的RFC文件進展了這個方面的探討。 由于當(dāng)時FTP協(xié)議已經(jīng)比擬成熟,而發(fā)送一直沒有成熟的協(xié)議,所以一些人開場研究利用FTP協(xié)議來發(fā)送的方法。1972年8月,在RCF385關(guān)于FTP協(xié)議的注釋中第一次提出通過擴展FTP協(xié)議的方法來發(fā)送電子。之后的一些RFC文件進一步對該方案進展了改良。在1973年一次會議上,大家統(tǒng)一在FTP命令中使用用戶名主機名形式的地址來標(biāo)明地址,這被寫入了RFC469文件。RFC498則提出了不用FTP協(xié)議進展傳輸?shù)姆椒?。這些方案由于各種原因都未能得到推廣使用,ARPANET上的系統(tǒng)一直處于各自為政的狀態(tài)。 除了收發(fā)的問題外,格式也是電子協(xié)議中的一個重要容。

15、1977年,洛克等人提出來一個統(tǒng)一的格式標(biāo)準(zhǔn),也就是后來的RFC733.但是這次統(tǒng)一格式標(biāo)準(zhǔn)的嘗試并未能獲得成功。這便是早起ARPNET上的電子系統(tǒng)。 早起的各種基于網(wǎng)絡(luò)的電子傳輸協(xié)議都存在這樣那樣的問題。要么功能不完善,要么過于復(fù)雜。人們需要的是一個全新的,易于實現(xiàn)而有功能強大的電子傳輸協(xié)議。1980年,RFC772傳輸協(xié)議發(fā)布了,其中描述了一個全新的傳輸協(xié)議。但是這個協(xié)議還是過于復(fù)雜了,于是人們在它的根底上又進展了改良,縱欲在1981年的RFC780中發(fā)布了簡單傳輸協(xié)議,經(jīng)過一些曉得改良后,最總形成了RFC821SMTP協(xié)議,這也正是今天的電子系統(tǒng)的標(biāo)準(zhǔn)傳輸協(xié)議。 統(tǒng)一的傳輸協(xié)議自然需要統(tǒng)

16、一的格式,1982年,克魯克在RFC733的根底上編寫RFC822APRAInternet文本信息格式標(biāo)準(zhǔn),他也最終成為電子的標(biāo)準(zhǔn)格式。但是在RFC822格式中,都是文本格式的,沒有考慮非文本的容問題。很快人們就對電子提出更多的要求,希望能用它來發(fā)送非文本格式的附件,如圖片,多媒體文件等。于是在1996年又發(fā)布了RFC20452049,規(guī)定了MIME編碼格式。通過這種格式,可以實現(xiàn)各種文件和文本信息之間的無損轉(zhuǎn)換,這樣就可以將他們封裝在標(biāo)準(zhǔn)RFC822格式的文本中直接發(fā)送,從而使電子系統(tǒng)也可以發(fā)送非文本的信息了。 后來,人們根據(jù)系統(tǒng)中使用的問題,又陸續(xù)對SMTP協(xié)議以及其父樹協(xié)議進展了一些小的

17、修改,如增加用戶身份認(rèn)證功能等。到目前為止,SMTP協(xié)議的最新版本是RFC2821,格式規(guī)的最新版本是RFC2822。這便是現(xiàn)代電子系統(tǒng)的出現(xiàn)。 從以上分析中可以得出這樣的結(jié)論,由于在電子系統(tǒng)存在的種種缺陷,我們要學(xué)會重新設(shè)計出一種全新的,每個地方都考慮到并徹底解決各種平安問題和隱患的電子系統(tǒng),用它來代替現(xiàn)有的電子系統(tǒng)給人們提供更高一層的效勞。但遺憾的是,由于各種現(xiàn)實的問題,如環(huán)境,技術(shù),資金等使其在可預(yù)見的未來,仍然是一個不可能實現(xiàn)的任務(wù),但是無論如何,一個已經(jīng)成功的或者試圖成功的電子系統(tǒng),必須要能夠較好的解決這些問題2。1.3 系統(tǒng)特點 效勞器提供的效勞類型,可以分為發(fā)送效勞器簡稱發(fā)送效勞

18、器和接收效勞器簡稱接收效勞器。發(fā)送效勞器使用發(fā)送協(xié)議,現(xiàn)在常用的是SMTP,所以通常發(fā)送效勞器也稱為SMTP效勞器;接收效勞器使用接收協(xié)議,常用的是POP3協(xié)議,所以通常接收效勞器也稱為POP3效勞器。SMTP(Simple Mail Transfer Protocol),即簡單的傳送協(xié)議,是互聯(lián)網(wǎng)傳送電子的根本協(xié)議,是TCP/IP協(xié)議組的成員,它可以解決系統(tǒng)如何通過一條鏈路,把從一臺機器上傳送到另一臺機器上的問題,它的特點是具有很好的可伸縮性和簡單性,因此它在廣域網(wǎng)和局域網(wǎng)都能適用,并且在Internet上能夠發(fā)送的效勞器幾乎都支持SMTP協(xié)議,這也正是它成功的關(guān)鍵。效勞器接收客戶端發(fā)過來的

19、SMTP協(xié)議格式的命令,這些命令有HELO ,MAIL FROM,RCPT TO,DATA,QUIT,效勞器接到這些命令后,給出對應(yīng)的響應(yīng)碼,然后發(fā)給客戶端。POP3(Post Office Protocol 3)是郵局協(xié)議的第3個版本,它規(guī)定客戶端怎么從效勞器那里接收,是第一個電子的離線協(xié)議標(biāo)準(zhǔn)。它既允許接收效勞器向用戶發(fā)送,也可以接收來自SMTP效勞器的,客戶端軟件會與POP3效勞器之間進展交互,下載由POP3效勞器接收到的,POP3協(xié)議支持用戶從效勞器上接收然后存儲到自己的計算機上,同時根據(jù)客戶端的操作刪除或保存在效勞器上的,效勞器接收客戶端發(fā)過來的POP3協(xié)議格式的命令,這些命令有US

20、ER,PASS,LIST,RETR,DELE,REST,QUIT,效勞器接到這些命令后,給出對應(yīng)的響應(yīng)信息+OK或者-ERR,然后連同信息發(fā)給客戶端。基于POP3協(xié)議的系統(tǒng)能提供快捷,實惠的效勞,因此深受廣闊用戶的青睞。POP3協(xié)議也是TCP/IP協(xié)議族中的一員,由RFC 1939 定義。第2章 相關(guān)技術(shù)和工具簡介2.1 .Swing簡介Swing是一個專門用于開發(fā)Java用戶界面程序的工具包。它是在抽象窗口工具包AWT的根底上讓跨平臺JAVA程序能夠使用所有可插拔的界面風(fēng)格,Swing程序員只需要用簡單的代碼就能夠利用Swing模塊化的,豐富的功能和靈活的組件來編出漂亮的系統(tǒng)界面。工具包中的

21、包都以swing來命名的。Swing開發(fā)包全部是用Java來實現(xiàn)的,Swing本身不依賴于操作系統(tǒng),也沒有除JAVA之外的其它代碼,是一個輕量級的組件,這就是他和AWT的卻別。因為AWT是通過與具體操作系統(tǒng)相關(guān)的對等類來實現(xiàn)的,所以Swing要比AWT具有更加強的實用性。Swing在所有平臺上的表現(xiàn)都是一致的,并且能表現(xiàn)出除當(dāng)前系統(tǒng)之外的其它界面風(fēng)格。Swing效仿了MVC的設(shè)計模式,即模型-視圖-控制,其中模型是專門用來存放容的,視圖是專門用來查看容的,控制器是用來負責(zé)用戶輸入的。在AWT中,由于控制界面外觀的對等類和具體的平臺息息相關(guān),因而AWT組件的外觀只和本機的外觀相關(guān),但是Swing

22、能使程序在一個操作系統(tǒng)上運行的時候有不同的外觀以供用戶可以選擇自己習(xí)慣的外觀。2.2 Java Mail簡介Java Mail是由Sun提供的API,但是它沒有被放在JAVA標(biāo)準(zhǔn)的根本開發(fā)包中,說明你在開發(fā)JAVA MAIL系統(tǒng)時需要另外下載JAVAMAIL包。另外,你還得下載Sun公司的JAF包,JAF非常復(fù)雜,JAVAMAIL的運行需要JAF的支持。Java Mail包是可選的,因此如果需要使用的話你需要首先從java.sun.下載。目前最新版本是JavaMail1.4,使用JavaMail的時候需要下載JAF,安裝Java Mail只是需要把他們參加到CLASSPATH中去,如果你不想修

23、改CLASSPATH的話,可以直接把他們的jar包copy到JAVA_HOME/lib/e*t下,這樣JavaMail就安裝好了5。Java Mail包中用于處理電子的核心類是:Session,Message,Address,Authenticator,Transport,Store,Folder等。Session定義了一個根本的會話,它需要從Properties中讀取類似于效勞器,用戶名和密碼等信息。另外很好的實現(xiàn)了Java Mail API的框架有James、Spring Mail。2.3Java平臺簡介Java平臺由Java虛擬機和Java核心類所構(gòu)成,它為純Java程序提供了統(tǒng)一的編程

24、接口,而不管下層操作系統(tǒng)是什么,Java平臺更分細一點的話主要是由一個piler(編譯器),一個運行環(huán)境(runtime environment),和一個核心的API組成。Java應(yīng)用編程接口為Java應(yīng)用提供了一個獨立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為根本局部和擴展局部,在安裝了Java運行平臺后,Java程序就能夠被運行了。Java API為分為根本局部與擴展局部,Java應(yīng)用提供了一個獨立于操作系統(tǒng)的標(biāo)準(zhǔn)接口。因此Java程序只需要編譯一次,就可以在所有系統(tǒng)中運行。Java應(yīng)用編程接口已經(jīng)從1.1*版開展到1.2版。目前常用的JDK版本是1.6,最新版本為1.7。與傳統(tǒng)程序不同,Sun 公司在

25、推出 Java 之際就將其作為一種開放的技術(shù),全球數(shù)以萬計的 Java 開發(fā)公司被要求所設(shè)計的 Java 軟件必須相互兼容,Java 語言靠群體的力量而非公司的力量為Sun公司的一個口號,并得到了大多數(shù)軟件開發(fā)公司的認(rèn)同,這和微軟公司的模式不同,微軟提倡的是注重精英和封閉的模式, Java 程序設(shè)計語言是個面向?qū)ο蟮?,簡單的、解釋性的、分布式的、平安的、強健與系統(tǒng)無關(guān)、高性能、可移植、動態(tài)和多線程的語言。Java 平臺是基于 Java 語言的平臺,這樣的平臺非常流行,因此微軟公司推出了與之競爭的.NET平臺以及模仿Java的C#語言,Java是一個可以在不同操作系統(tǒng)例如windows, uni

26、*等上運行的編程語言,java平臺是指運行在各種終端如pc、效勞器、移動設(shè)備、嵌入式設(shè)備的系統(tǒng)軟件,PC機上的java程序是用java SE開發(fā)出來的,效勞器端的java程序是用javaEE開發(fā)出來的,移動設(shè)備的java程序是用java ME開發(fā)出來的。2.4 Eclipse簡介Eclipse是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組效勞,用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse附帶了一個標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具Java Development Kit,JDK。 雖然大多數(shù)用戶很樂于將Eclipse當(dāng)作Java集成開發(fā)環(huán)境IDE

27、來使用,但Eclipse 的目標(biāo)卻不僅限于此。Eclipse還包括插件開發(fā)環(huán)境Plug-in Development Environment,PDE,這個組件主要針對希望擴展Eclipse的軟件開發(fā)人員,因為它允許他們構(gòu)建與Eclipse環(huán)境無縫集成的工具。由于Eclipse中的每樣?xùn)|西都是插件,對于給Eclipse提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。這種平等和一致性并不僅限于Java開發(fā)工具。盡管Eclipse是使用Java語言開發(fā)的,但它的用途并不限于Java語言;例如,支持諸如C/C+和COBOL等編程語言的插件已經(jīng)可用,或預(yù)計將會

28、推出。Eclipse框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的根底,比方容管理系統(tǒng)?;贓clipse的應(yīng)用程序的一個突出例子是IBM Rational Software Architect,它構(gòu)成了IBM Java開發(fā)工具系列的根底。至于Eclipse的安裝首先要創(chuàng)立一個java的工作環(huán)境,在sun的上下載j2se,安裝到自己的系統(tǒng)中,我下載的是1.4版本,安裝目錄為D:j2sdk1.4.2_04。下載地址為:設(shè)置環(huán)境參數(shù)的步驟如下: 右鍵我的電腦屬性高級環(huán)境變量增加:java_homeD:j2sdk1.4.2_04ClassPath=d:j2sdk1.4.2_04;d:j2sdk1

29、.4.2_04libtools.jar;d:j2sdk1.4. 2_04libdt.jar;d:j2sdk1.4.2_04binPathd:j2sdk1.4.2_04bin環(huán)境就設(shè)置好了。第3 章 系統(tǒng)需求分析和總體設(shè)計31用戶對電子系統(tǒng)需求 (1)方便性。電子系統(tǒng)可以像離線QQ信息一樣,在自己有時間的時候可以處理記錄下來的請求,通過電子可以方便快捷地傳送文本信息、圖像文件、報表和計算機程序等信息。 (2)快捷性。電子在傳遞過程中,假設(shè)*個通信站點發(fā)現(xiàn)用戶給出的收信人的電子地址有錯誤而無法繼續(xù)傳遞時,電子會迅速地將原信件逐站退回,并告知其原因。當(dāng)被送到目的地后,該計算機的系統(tǒng)就立即將它放人收件

30、人的信箱中,等候用戶自行讀取。用戶只要隨時以計算機聯(lián)機方式翻開自己的電子信箱,便可以查看自己的。 (3)廣域性。電子系統(tǒng)具有開放性,許多沒有連接到互聯(lián)網(wǎng)的用戶能夠通過本機的網(wǎng)關(guān)(Gateway)和網(wǎng)絡(luò)上的用戶相互交換。 (4)透明性。電子系統(tǒng)采用存儲轉(zhuǎn)發(fā)的方法幫助用戶傳送電子,通過在互聯(lián)網(wǎng)絡(luò)的一些通信節(jié)點計算機上運行相應(yīng)的軟件,使這些計算機充當(dāng)郵局的角色。當(dāng)用戶希望通過互聯(lián)網(wǎng)絡(luò)給別人發(fā)送時,首先要與為自己提供電子的計算機聯(lián)機,然后把要發(fā)送的和收件人的地址發(fā)給系統(tǒng)。電子系統(tǒng)就會把用戶的通過網(wǎng)絡(luò)一站一站地送到目的地,所有過程對于用戶來說都是透明的。 (5)廉價性。網(wǎng)絡(luò)的空間可以說是無限大的,公司能

31、夠?qū)⒉煌漠a(chǎn)品以及效勞信息放置在網(wǎng)絡(luò)上,這樣用戶就能夠隨時從網(wǎng)絡(luò)上獲取這些信息,并且相對于,郵寄或印刷來說在網(wǎng)上存儲與發(fā)送信息是非常廉價的。在公司與顧客一對一關(guān)系的電子效勞中,費用低廉,從而節(jié)約大量費用。 (6)全天性。對顧客而言,電子的優(yōu)點之一是沒有任何時間上的限制。一天24小時,一年365天,任何時間都可發(fā)送電子。比方,當(dāng)顧客發(fā)生問題時,他們隨時都可以把發(fā)生的問題發(fā)送給公司,而公司有關(guān)負責(zé)人可以在他方便的時候,查閱這些信件,決定哪些信件必須首先處理,哪些可以稍后處理,哪些應(yīng)該轉(zhuǎn)發(fā)給其他部門去承辦。而以前沒有電子時,顧客的產(chǎn)品本身或產(chǎn)品在使用過程中發(fā)生了問題,需要等到公司人員上班時,才能給公

32、司打。而且什么時候打也很講究,打早了,公司負責(zé)人還沒有上班,打晚了公司負責(zé)人又可能出去開會了。電子的全天候效勞,從根本上解決了這種狀況,大大改善了公司與顧客的關(guān)系,改善了公司對顧客的效勞。3.2產(chǎn)品可行性分析 電子系統(tǒng)包括電子客戶端和電子效勞器端,其過SMTP協(xié)議進展發(fā)送,POP3協(xié)議進展接收。電子系統(tǒng)的工作過程和相關(guān)收發(fā)協(xié)議如下列圖: 圖3.1電子系統(tǒng)工作過程圖 Java Mail是Sun發(fā)布的用來處理的API。它可以方便的執(zhí)行一些常用的傳輸。Java Mail API是Java對電子處理的延伸,它可以處理各種格式,包括IMAP,POP3,SMTP,為Java應(yīng)用程序提供了收發(fā)電子的公共接口

33、,如下列圖所示: 圖3.2JavaMail API的客戶端工作原理圖 JavaMail API主要位于java*.ernet中,主要類框架圖如下:圖3.3 JavaMail API中主要類的框架圖 1.java*.mail.Session:Session類代表JavaMail中的一次會話.每個基于JavaMail的應(yīng)用程序至少有一次會話,也可以產(chǎn)生屢次會話.發(fā)送之前,通常應(yīng)該建立會話。 它的作用有: 1接收各種配置屬性信息:通過Properties對象設(shè)置的屬性信息; 2初始化JavaMail環(huán)境:根據(jù)JavaMail的配置文件,初始化JavaMail環(huán)境以便通過Session對象創(chuàng)立其他重要

34、類的實例。 2.:操作只有發(fā)送或接收兩種處理方式,JavaMail將這兩種不同操作描述為傳輸java*.mail.Transport和存儲java*.mail.Store,傳輸對應(yīng)的發(fā)送,而存儲對應(yīng)的接收。 3.java.mail.Store 該類實際特定協(xié)議上的讀,寫,監(jiān)視,查找等操作,通過java*.mail.Store類可以訪問java*.mail.Folder類. 4.java*.mail.MimeMessage該對象是實際發(fā)送的電子的信息.對象通常使用MimeMessage創(chuàng)立,創(chuàng)立該對象時應(yīng)傳入一個會話參數(shù).該類采用InternetHeaders類來解析和保存的頂級RFC 822文

35、件頭9.該類包含如下屬性:Protected byte content 該容的字節(jié)數(shù)組protected internetHeaders headers 返回保存該的文件頭的對象void addFrom(Address addresses 為該設(shè)置發(fā)件人的地址void addHeader(String name ,String value) 在name的文件頭容上增加value;void addRecipients(Message.RecipientType type, Address addresses)該方法還有一個重載的方法,都是增加指定類型的收件地址.Address getFrom返回

36、該的發(fā)件人的地址列表void setContent(Multipart mp) 為該設(shè)置容 5.java*.mail.Address 該對象用于確定發(fā)件人/收件人地址.和Message一樣,Address是個抽象類,時間使用的是他的子類,java*.ernetAddress類. 一旦您創(chuàng)立了Session 和Message,并將容填入消息后,就可以用Address 確定信件地址了 6.:Folder類用于分級組織,并提供照J(rèn)ava*.mail.Message格式訪問email的能力。3.3系統(tǒng)總體設(shè)計3.3.1 電子系統(tǒng)所包含的功能圖3.4 系統(tǒng)功能圖 本系統(tǒng)主要包括: (1)登錄系統(tǒng):用*個

37、的賬號和密碼登錄; (2)接收:從指定效勞器獲取; (3)發(fā)送:用此賬號發(fā)送到指定的電子地址,包括發(fā)送普通 文本和附件; (4)群發(fā): 將群發(fā)給指定地址列表,包括抄送等; (5)管理:查看,刪除; (6)系統(tǒng)配置:配置效勞器的smtp地址和pop3地址;3.3.2電子收發(fā)過程圖3.5電子收發(fā)過程圖電子效勞基于客戶/效勞器模式,其工作過程如下:客戶端和效勞器通過POP3協(xié)議收?。煌ㄟ^SMTP傳輸容,實現(xiàn)信息交換。SMTP通過用戶代理UA和傳輸代理程序MTA實現(xiàn)的傳輸。發(fā)送方編輯完畢的電子發(fā)送給當(dāng)?shù)氐男谄鳎谄魇盏娇蛻羲蛠淼?,根?jù)收件人的地址發(fā)送到對方的效勞器中。對方的效勞器接收到其他效勞器發(fā)

38、來的,并根據(jù)地址分發(fā)到相應(yīng)的電子中,這樣承受方可通過電子來讀取,并對他們進展相關(guān)的處理。 電子在發(fā)送與接收過程中都要遵循SMTP、POP3等協(xié)議,這些協(xié)議確保了電子在各種不同系統(tǒng)之間的傳輸。其中,SMTP負責(zé)電子的發(fā)送,而POP3則用于接收Internet上的電子。 3.3.3 效勞器的設(shè)置 用戶在發(fā)送和接收的時候,需要設(shè)置好效勞器的地址、賬號和密碼等這些信息。該系統(tǒng)提供了對上述配置的設(shè)置和存儲功能,這里,我們將配置信息存儲在一個屬性文件里面。其文件名為perties,位于工程的根目錄下,可使用perties類的setProperty()方法和getProperty()方法對屬性文件中的屬性容

39、進展存取。本系統(tǒng)smtp perties文件的容格式如下 : popAddress=pop3效勞器地址如pop3.qq. smtpAddress=smtp效勞器地址如smtp.qq. username=用戶名如* y z password=密碼如123456第4章 詳細設(shè)計4.1 登錄功能的設(shè)計 1選擇登錄效勞器,連接效勞器。 2選擇指定的地址和密碼。在本系統(tǒng)中有所提供的Mail效勞器創(chuàng)立了賬戶進展登錄。必須選用正確的地址和密碼才可以登錄,在該模塊中,用戶輸入賬戶和密碼,程序會根據(jù)用戶輸入的用戶名和密碼在用戶信息數(shù)表中查找,如果查找成功,就進入系統(tǒng)主界面,如果查找失敗,就會報錯。 登錄的設(shè)計主

40、要有下列圖的幾個步驟。圖4.1登錄流程圖4.2發(fā)送的設(shè)計 1編寫文本。該容是電子系統(tǒng)中最根本的功能。用戶需填寫信息:包括收件人,主題,文字容。 2上傳附件。在編寫時,容可以和附件如圖片,聲音等一起發(fā)送,這樣就需要先將附件上傳到效勞器,然后再發(fā)送給對方。 發(fā)送的設(shè)計如下列圖所示: 圖4.2發(fā)送流程圖4.3接收的設(shè)計 1接收。包括發(fā)件人,發(fā)件時間。這是一個電子系統(tǒng)最根本的功能。2瀏覽到列表,也可看到主題,是按時間先后排序。 接收的設(shè)計如下列圖所示: 圖4.3接收流程圖4.4管理的設(shè)計 1查看容。包括發(fā)的時間,的容和主題,以及發(fā)件人,以到達信息傳遞 2刪除。要刪除,只需先選擇*,再單擊刪除命令就可以

41、刪除。此外還可以批量刪除,這也只需要多個選擇,再單擊刪除就能實現(xiàn)。 管理的設(shè)計如下列圖所示:圖4.4管理圖第5章 系統(tǒng)功能的編碼實現(xiàn)5.1用戶登錄界面的實現(xiàn) 用戶選擇對應(yīng)的效勞器 然后輸入賬號密碼登錄,效勞器的配置會保存到配置文件中。例如 選擇的是qq. 則SMTP地址為:smtp.qq.,POP3地址為:pop.qq.。5.1 登錄界面圖 局部實現(xiàn)的核心代碼:privateboolean saveConfig() String server = (String) typeBo*.getSelectedItem();ConfigBean configBean = new ConfigBean(

42、);configBean.setUserName(userNameTe*t.getTe*t() + server);configBean.setPassWord(passWordTe*t.getTe*t();configBean.setType(server);if (server.equals(qq.) configBean.setSmtpAddress(smtp.qq.);configBean.setPopAddress(pop.qq.); elseif (server.equals(163.) configBean.setSmtpAddress(smtp.163.);configBean

43、.setPopAddress(pop.163.); else configBean.setUserName(userNameTe*t.getTe*t() + .);configBean.setSmtpAddress(smtp.);configBean.setPopAddress(pop.);ReturnType type = PropertiesUtility.saveConfig(configBean);if (type = ReturnType.RIGHT) returntrue;returnfalse;5.2主界面的實現(xiàn) 當(dāng)用戶登錄后,會進入到該界面,可以選擇需要的效勞發(fā),收,效勞器配置

44、Config,點擊左邊的相應(yīng)功能按鈕,右邊會顯示相應(yīng)的界面。圖5.2主界面圖 局部實現(xiàn)的核心代碼:publicvoid setLayout() try loadImage();container = this.getContentPane();container.setLayout(null);container.setBackground(new Color(168, 193, 227);this.setIconImage(titleImage);setLeftPanel();setSendPanel();container.add(controlPanel); catch (E*cepti

45、on e) System.out.println(e.getMessage();5.3 配置界面的實現(xiàn) 點擊主界面上方的config按鈕會彈出改配置框,通過該界面可以查看以及修改賬戶和效勞器地址圖5.3配置界面圖 局部實現(xiàn)代碼:privatevoid addUserName() userNameLabel = new JLabel(UserName:);userNameLabel.setFont(new Font(黑體, Font.BOLD, 14);userNameLabel.setBounds(14, 25, 72, 15);container.add(userNameLabel);use

46、rNameTe*t = new JTe*tField();userNameTe*t.setBounds(92, 20, 180, 25);container.add(userNameTe*t); 5.4 發(fā)送界面的實現(xiàn)填好收件人地址,主題,容,抄送或添加附件,點擊發(fā)送按鈕,即會發(fā)送相應(yīng)的容到對方。點擊重置按鈕所有容會清空。圖5.4發(fā)送界面圖 局部實現(xiàn)的代碼:publicvoid addButton() send = new utton(發(fā) 送);send.setBounds(80, 425, 100, 30);sendPanel.add(send);send.addActionListener

47、(new ActionListener() Overridepublicvoid actionPerformed(ActionEvent e) boolean temp = check_Te*t();if (temp) send_Event(););utton reset = new utton(重 置);reset.setBounds(300, 425, 100, 30);sendPanel.add(reset);reset.addActionListener(new ActionListener() Overridepublicvoid actionPerformed(ActionEven

48、t e) reset_Event(););5.5 接收界面的實現(xiàn) 點擊收取按鈕 就可收取該賬戶的,并按先后時間顯示列表。圖5.5接收的界面圖 局部實現(xiàn)的代碼:publicvoid initTable() defaultTable = new MyTableModel();addColumnName(defaultTable);table = new JTable(defaultTable);setTableAttr();JScrollPane scrollPane = new JScrollPane(table);scrollPane.setBounds(5, 25, 475, 400);re

49、ceivePanel.add(scrollPane);defaultTable.addTableModelListener(new TableModelListener() Overridepublicvoid tableChanged(TableModelEvent e) );table.addMouseListener(new MouseAdapter() Overridepublicvoid mouseClicked(MouseEvent e) mouse_Event(e););第6章 系統(tǒng)實現(xiàn)的功能測試6.1 登錄測試圖6.1登錄測試 選擇好效勞器,然后輸入對應(yīng)的賬號和密碼 然后點擊登

50、錄,則登錄成功然后會進入到如上圖所示的主界面6.2發(fā)送測試 包括發(fā)送文字和附件,以及抄送測試。抄送就是你寫的這封能同時發(fā)給多個人,并且收件人知道你把這封同時發(fā)給了他和抄送欄里寫的地址的人。圖6.2.1發(fā)送文字測試圖圖6.2.2發(fā)送附件測試圖圖6.2.3抄送功能測試圖6.3接收測試 點擊收取,就能到達的收取。圖6.3接收測試圖6.4查看容測試 雙擊要查看的后會顯示出容圖6.4查看容測試圖6.5刪除測試 先選擇單個要刪除的,也可同時選擇多個要刪除的,點擊刪除標(biāo)記按鈕,就能刪除,并由相關(guān)提示,提醒刪除成功,顯示出刪除后的最新列表。 圖6.5.1 刪除單個測試圖圖6.5.2刪除多個測試圖 下列圖是刪除

51、成功的提醒圖6.5.2 刪除成功提醒圖圖6.5.3 刪除后的新列表圖第7章 總結(jié)在本次畢業(yè)設(shè)計開發(fā)過程中,我遇到了許許多多的困難,系統(tǒng)雖然根本完成,但是也仍存在一些缺乏,在這里只是簡要表達一些主要的困難和缺乏之處。在開發(fā)系統(tǒng)的過程中,中文亂碼也是一個比擬棘手的問題,因為亂碼可能會在的標(biāo)題,附件以及正文等諸多地方出現(xiàn),但是沒有*一種方法能夠解決全部的亂碼問題,因而解決亂碼問題也是系統(tǒng)開發(fā)的重點難點之一。經(jīng)過一番上網(wǎng)查找和請教教師,終于找出導(dǎo)致亂碼可能出現(xiàn)的原因,通過網(wǎng)上和教師給予的擬采用的解決途徑,終于使亂碼問題得到解決。此外,在系統(tǒng)的開發(fā)中如何處理各種類型的信息成為了開發(fā)過程中的又一個重點與難

52、點,事實上,Java Mail底層在接收處理MIME數(shù)據(jù)方面依賴與JAF,JAF提供了對MIME數(shù)據(jù)進展處理的部件,它通常用于發(fā)送附件以及實現(xiàn)對MIME數(shù)據(jù)的常用操作。在開發(fā)過程中要編寫的東西很多。并且由于自己剛接觸,很多都不熟悉,所以出現(xiàn)問題解決速度很慢,對功能的實現(xiàn)方法也比擬少。本次畢業(yè)設(shè)計在很多地方未能考慮周全以至于系統(tǒng)存在著很多缺乏之處,這些缺乏主要是由于時間缺乏造成的,這就需要在以后系統(tǒng)維護過程中逐步發(fā)現(xiàn),并不斷進展升級,都有待進一步改善。通過本次課程設(shè)計,對java mail也有一些感悟,感覺它真是一個神奇的東西,里面富含則多的類,給人們帶來了極大的方便。一個人編寫代碼真的是很容易

53、出現(xiàn)一些可能看不到的小問題,從古至今人們確實從自己身上找問題比擬難,所以說請教朋友和教師,注重合作更有利于工程的開發(fā)還值得一提的,實踐確實是學(xué)習(xí)一樣新技術(shù)最快的方法。理論固然要看,但是需要理論結(jié)合實踐,在實踐操作中深化對理論的理解,這樣才掌握得快。參考文獻1美埃史爾.Java編程思想第四版.機械工業(yè).20072 語言程序設(shè)計根底篇.機械工業(yè),20063 金銘,林曉宇,寧正元面向?qū)ο蟪绦蛟O(shè)計Java:交通大學(xué),20054 朱福喜著Java 工程設(shè)計與開發(fā)例M:電子工業(yè),20055(美) Nathaniel T. Schutta, Ryan Asleson著.Aja*與Java高級程序設(shè)計.郵電,

54、20076 OReilly & Associates,Inc Java Cookbookin the United States or Canada7 Oreilly,Java Servlet Programming,American:Sernni Yey8 印雯,Java語言與面向?qū)ο蟪绦蛟O(shè)計.:清華大學(xué)出版,2002年. 9 畢廣吉.Java程序設(shè)計實例教程M. :冶金工業(yè),2007年10桂珠,麗,愛國 Java面向?qū)ο蟪绦蛟O(shè)計第2版 郵電大學(xué)11騰紅,細明.信息系統(tǒng)分析與設(shè)計M. :科學(xué),2003年致 在教師和同學(xué)的支持與幫助下,我順利地完成了本次畢業(yè)設(shè)計。通過這段時間的畢業(yè)設(shè)計,本人受

55、益非淺,對電子系統(tǒng)有了更深刻的理解,在此期間,我認(rèn)識到自己的缺乏之處并爭取獨立完成畢業(yè)設(shè)計,收獲頗多,學(xué)到了以前很多沒有學(xué)到的知識,同時也穩(wěn)固了以前所學(xué)過的知識。這次的畢業(yè)設(shè)計是在鄧澤林教師的悉心指導(dǎo)下完成的,鄧教師在整個畢業(yè)設(shè)計期間一直特別認(rèn)真負責(zé),經(jīng)常主動聯(lián)系我們,詢問我們的進度,幫助我們查找資料,在修改設(shè)計報告期間總是耐心的為我們查看報告的容和格式,不厭其煩的指導(dǎo)我們完善設(shè)計報告,到達最終的要求。在我個人設(shè)計的整個過程中,也給予我很多意見和建議,幫助我解決了很多問題,使我真正了解了如何從整體上分析、設(shè)計該系統(tǒng),鄧教師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和認(rèn)真負責(zé)給我留下了深刻的印象,在此衷心的對鄧教師說聲您。

56、這次畢業(yè)設(shè)計也讓我獲益匪淺,讓我明白應(yīng)該以一種什么樣的心態(tài)去面對一個新的知識領(lǐng)域,應(yīng)該怎樣協(xié)調(diào)理論和具體實踐之間的關(guān)系?;貞洿髮W(xué)學(xué)習(xí)期間的日日夜夜,自己為有時機潛心研究,靜心思考,并實現(xiàn)了系統(tǒng)的根本功能而感到非常的欣慰。同時,我要向關(guān)心與支持我的教師和同學(xué)們表示真誠的感!他們在系統(tǒng)開發(fā)期間給予我熱情的幫助和鼓勵,提出了許多珍貴的意見,使我拓寬了視野,豐富了思路,獲得了許多解決問題的行之有效的方法。感在設(shè)計中被我引用或參考的論著的作者。最后,再一次感在設(shè)計過程中幫助和鼓勵我的所有人。在以后的學(xué)習(xí)和生活中我將更加努力,使自己獨立工作的能力得到進一步的提高。附錄:局部源程序代碼package .be

57、s.mail.assist;import java.io.*;import java.te*t.*;import java.util.*;import java*.mail.*;import java*.ernet.*;/* * 有一封就需要建立一個ReciveMail對象 */public class ReceiveOneMail private MimeMessage mimeMessage = null;private String saveAttachPath = ; / 附件下載后的存放目錄private StringBuffer bodyte*t = new StringBuffe

58、r();/ 存放容private String dateformat = yy-MM-dd HH:mm; / 默認(rèn)的日前顯示格式public ReceiveOneMail(MimeMessage mimeMessage) this.mimeMessage = mimeMessage;public void setMimeMessage(MimeMessage mimeMessage) this.mimeMessage = mimeMessage;/* * 獲得發(fā)件人的地址和 */public String getFrom() throws E*ception InternetAddress a

59、ddress = (InternetAddress) mimeMessage.getFrom();String from = address0.getAddress();if (from = null)from = ;String personal = address0.getPersonal();if (personal = null)personal = ;String fromaddr = personal + ;return fromaddr;/* * 獲得的收件人,抄送,和密送的地址和,根據(jù)所傳遞的參數(shù)的不同 to收件人 cc抄送人地址 bcc密送人地址 */public Strin

60、g getMailAddress(String type) throws E*ception String mailaddr = ;String addtype = type.toUpperCase();InternetAddress address = null;if (addtype.equals(TO) | addtype.equals(CC)| addtype.equals(BCC) if (addtype.equals(TO) address = (InternetAddress) mimeMessage.getRecipients(Message.RecipientType.TO)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論