基于java_mail的電子郵件收發(fā)系統(tǒng)畢業(yè)設(shè)計(jì)_第1頁
已閱讀1頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  第1章 概述1</b></p><p>  1.1研究目的和意義1</p><p>  1.2國內(nèi)外發(fā)展趨勢和現(xiàn)狀2</p><p>  1.3 系統(tǒng)特點(diǎn)4</p><p>  第2章 相

2、關(guān)技術(shù)和工具簡介6</p><p>  2.1 Swing簡介6</p><p>  2.2 Java Mail簡介6</p><p>  2.3 Java平臺(tái)簡介7</p><p>  2.4 Eclipse簡介7</p><p>  第3章 系統(tǒng)需求分析和總體設(shè)計(jì)9</p><p&g

3、t;  3.1用戶對(duì)電子郵件系統(tǒng)的需求9</p><p>  3.2產(chǎn)品可行性分析10</p><p>  3.3系統(tǒng)總體設(shè)計(jì)12</p><p>  3.3.1電子郵件系統(tǒng)的功能12</p><p>  3.3.2電子郵件收發(fā)過程13</p><p>  3.3.3服務(wù)器參數(shù)的設(shè)置14</p>

4、<p>  第4章 詳細(xì)設(shè)計(jì) …………………………………………………………………………………..15</p><p>  4.1 登錄功能的設(shè)計(jì)15</p><p>  4.2發(fā)送郵件的設(shè)計(jì)15</p><p>  4.3接收郵件的設(shè)計(jì)16</p><p>  4.4郵件管理的設(shè)計(jì)17</p><p

5、>  第5章 系統(tǒng)功能的編碼實(shí)現(xiàn)18</p><p>  5.1用戶登錄界面的實(shí)現(xiàn)18</p><p>  5.2主界面的實(shí)現(xiàn)19</p><p>  5.3 郵件配置界面的實(shí)現(xiàn)20</p><p>  5.4 發(fā)送郵件界面的實(shí)現(xiàn)21</p><p>  5.5 接收郵件界面的實(shí)現(xiàn)22</p&g

6、t;<p>  第6章 系統(tǒng)實(shí)現(xiàn)的功能測試24</p><p>  6.1 登錄測試24</p><p>  6.2發(fā)送測試24</p><p>  6.3接收郵件測試26</p><p>  6.4查看郵件測試26</p><p>  6.5刪除郵件測試27</p><p

7、><b>  第7章 總結(jié)29</b></p><p><b>  參考文獻(xiàn)30</b></p><p><b>  致 謝31</b></p><p>  附錄:部分源程序代碼32</p><p><b>  附件1:開題報(bào)告</b>&l

8、t;/p><p>  附件2: 譯文及原文影印件</p><p><b>  第1章 概述</b></p><p>  隨著信息時(shí)代的到來,Internet的廣泛應(yīng)用,相信大家對(duì)qq郵箱,163郵箱,yahoo郵箱已經(jīng)并不陌生,這一類郵箱的出現(xiàn)是計(jì)算機(jī)和網(wǎng)絡(luò)不斷發(fā)展的結(jié)果,與每個(gè)人都密不可分,已經(jīng)成為網(wǎng)絡(luò)中最廣泛使用的一部分。</p>

9、<p>  1.1研究目的和意義</p><p>  從人類發(fā)展開始,信息交換一直都是人類的基本需求之一。人們會(huì)通過各種途徑來實(shí)現(xiàn)信息的交換,從而達(dá)到一種交流。從以前的快馬送信和口耳相傳到如今的電話電腦和郵政系統(tǒng),隨著先進(jìn)技術(shù)的不斷進(jìn)步,人類信息交流的方式也一直在進(jìn)步,其中電子郵件服務(wù)就是計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)出現(xiàn)之后的一個(gè)例子。它較以前更加方便快捷,深受人們的喜愛。</p><p>

10、;  電子郵件又被稱為電子郵箱,是一種典型的通過先進(jìn)技術(shù)的電子手段提供信息交換的一種通信方式,同時(shí)也是Internet的所有應(yīng)用中最廣泛的服務(wù)。電子郵件不是只局限于信件的傳遞了,而是另外還包括文件,聲音及圖形圖像等信息的傳遞。這種非交互式的通信方式,加速了數(shù)據(jù)傳送從而更快的達(dá)到信息的交流,促進(jìn)了社會(huì)的發(fā)展。她是一種簡單且快速的方法,電子郵件系統(tǒng)通過連上全世界的網(wǎng)絡(luò),用戶就可以免費(fèi)地并且非常快的(幾秒鐘之內(nèi))可以將信息發(fā)送到世界上任何你指

11、定的目的地。同時(shí),用戶也可以從電子郵件系統(tǒng)中得到大量免費(fèi)的新聞、專題郵件,并實(shí)現(xiàn)輕松的信息搜索。這是任何傳統(tǒng)的方式也無法相比的。</p><p>  電子郵件最顯著地特點(diǎn)是“存貯轉(zhuǎn)發(fā)式”服務(wù),并不是一種“終端到終端"的服務(wù),利用這種存貯轉(zhuǎn)發(fā)可以進(jìn)行異步通信,即信件發(fā)送人可以在任何時(shí)間任何地點(diǎn)發(fā)送文件,這并不要求接收者必須同時(shí)在場,即使是對(duì)方不在,發(fā)送者的郵件還是可以立刻送到對(duì)方的信箱內(nèi),并進(jìn)行了存儲(chǔ),這

12、樣接收者可以在他方便時(shí)登錄郵箱來收取郵件,來查看郵件內(nèi)容,這不必受到時(shí)間空間的限制。這種存貯轉(zhuǎn)發(fā)服務(wù)也正是電子郵箱系統(tǒng)的核心。</p><p>  隨著上網(wǎng)用戶越來越多,上網(wǎng)速度越來越快,作為網(wǎng)絡(luò)基礎(chǔ)應(yīng)用的電子郵件系統(tǒng)所面臨的問題也日益突出,不管是使用免費(fèi)的郵箱yahoo.com.cn,還是163.com等,還是使用收費(fèi)的個(gè)人郵箱,ISP提供的虛擬機(jī)郵箱都存在著種種問題。介于當(dāng)下流行的各大郵件客戶端軟件的除了最主

13、要的收發(fā)信件之外,功能越來越復(fù)雜,但是我們的日常生活中真正用到的功能卻很少,同時(shí)作為中小型企業(yè),郵箱的成本也越來越高,很多功能尤其對(duì)于計(jì)算機(jī)知識(shí)相對(duì)缺乏的人來說,顯得太過華麗且不太實(shí)用。有鑒于此,在了解smtp和pop3等底層協(xié)議的基礎(chǔ)之上,開發(fā)了這個(gè)各種功能相對(duì)簡單實(shí)用的郵件系統(tǒng),簡化了用戶的操作。</p><p>  1.2國內(nèi)外發(fā)展趨勢和現(xiàn)狀</p><p>  電子郵件是互聯(lián)網(wǎng)最基

14、本且最重要的服務(wù)之一。據(jù)統(tǒng)計(jì),目前全世界的電子郵件賬號(hào)超過15億個(gè),電子郵件成為Internet上所占比例最大的應(yīng)用。中國互聯(lián)網(wǎng)絡(luò)信息中心關(guān)于中國互聯(lián)網(wǎng)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告(2005年1月)表明,我國目前上網(wǎng)人數(shù)9400萬,人均擁有電子郵箱1.5個(gè)。還有另一項(xiàng)數(shù)據(jù)表明,互聯(lián)網(wǎng)上百分之三十的業(yè)務(wù)量都是電子郵件,由于我國通信設(shè)施較差,以及網(wǎng)絡(luò)速度慢等弊端,快捷的電子郵件服務(wù)更具實(shí)用性?!禖INNIC中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》中指出,中國用戶

15、最常使用的網(wǎng)絡(luò)服務(wù)71.65%是電子郵件,而搜索引擎和上傳或下載服務(wù)分別只占50.40%和44.16%。</p><p>  早期的電子郵件系統(tǒng)在網(wǎng)絡(luò)形成的時(shí)候就已經(jīng)出現(xiàn)了,1961年的時(shí)候,麻省理工學(xué)院在7094大型機(jī)系統(tǒng)上開發(fā)出了一套兼容時(shí)分共享系統(tǒng)(CTSS)。這也允許許多用戶使用主機(jī)的新能力,使用戶可以用新的方法來共享信息。當(dāng)CTSS系統(tǒng)的用戶需要向其他用戶傳遞信息時(shí),他們會(huì)在一個(gè)通用的目錄下以“TO T

16、OM”之類的文件名簡歷一個(gè)文件,查看或者打印其中的內(nèi)容,在這種簡單的信息發(fā)送方法的基礎(chǔ)上,出現(xiàn)了第一個(gè)“郵件”工具,通過這個(gè)工具,CTSS系統(tǒng)的管理員可以向用戶發(fā)送信息。例如某個(gè)用戶他丟失的文件已經(jīng)通過備份找回,這是通過在目錄用戶中創(chuàng)建特定的文件來實(shí)現(xiàn)的。</p><p>  這以后,CTSS系統(tǒng)上也出現(xiàn)了用于用戶之間信息傳遞的郵件工具。在其他的多用戶系統(tǒng)上,也陸續(xù)開發(fā)和使用了類似的郵件軟件。這些軟件的工作原理類

17、似,都是在用戶目錄下設(shè)置一個(gè)特殊的目錄,一個(gè)用戶給另一個(gè)用戶發(fā)信時(shí),就在收信者的牡蠣下建立一個(gè)新的文件,并在其中保存新建的內(nèi)容。 當(dāng)收信者稍后登陸的主機(jī)上時(shí),檢查該目錄就可以知道自己有新的郵件,并可以打開和查看郵件內(nèi)容,這些早期的郵件系統(tǒng)雖然非常簡陋,也存在很多問題,但是其基本思想都是通過文件的傳遞來實(shí)現(xiàn)用戶之間的異步傳輸,和今天所用的電子郵件系統(tǒng)基本相同?,F(xiàn)代電子郵件系統(tǒng)正式在這些原始的郵件軟件基礎(chǔ)上發(fā)展而來的。</p>

18、<p>  到了20世紀(jì)60年代末70年代初,在美國國防部領(lǐng)導(dǎo)下,現(xiàn)代INTERNET 的前身—ARPANET 開始建立和運(yùn)行,它將成員單位的多臺(tái)主機(jī)連接起來組成了一個(gè)網(wǎng)絡(luò)。當(dāng)時(shí),網(wǎng)絡(luò)內(nèi)的大部分主機(jī)上都已經(jīng)有了內(nèi)部的郵件系統(tǒng),于是一個(gè)很自然的想法出現(xiàn)了,就是能否利用ARPANET使這些郵件系統(tǒng)能夠相互通信。事實(shí)上,郵件系統(tǒng)的互聯(lián)正式ARPANETA最早期的網(wǎng)絡(luò)應(yīng)用嘗試之一。</p><p>  196

19、9年,在ARPANET原型網(wǎng)還在試驗(yàn)的時(shí)候,拉里羅伯特編寫了第一個(gè)通過網(wǎng)絡(luò)發(fā)送電子郵件的程序。</p><p>  1971年1月,ARPA RFC 196《郵箱協(xié)議(Mail Box Protocol)》中討論了如何通過ARPANET 發(fā)送郵件的問題。之后有多個(gè)類似的RFC文件進(jìn)行了這個(gè)方面的探討。</p><p>  由于當(dāng)時(shí)FTP協(xié)議已經(jīng)比較成熟,而郵件發(fā)送一直沒有成熟的協(xié)議,所以一

20、些人開始研究利用FTP協(xié)議來發(fā)送郵件的方法。1972年8月,在RCF385《關(guān)于FTP協(xié)議的注釋》中第一次提出通過擴(kuò)展FTP協(xié)議的方法來發(fā)送電子郵件。之后的一些RFC文件進(jìn)一步對(duì)該方案進(jìn)行了改進(jìn)。在1973年一次會(huì)議上,大家統(tǒng)一在FTP命令中使用“用戶名@主機(jī)名”形式的地址來標(biāo)明郵件地址,這被寫入了RFC469文件。RFC498則提出了不用FTP協(xié)議進(jìn)行郵件傳輸?shù)姆椒?。這些方案由于各種原因都未能得到推廣使用,ARPANET上的郵件系統(tǒng)一

21、直處于各自為政的狀態(tài)。</p><p>  除了郵件收發(fā)的問題外,郵件格式也是電子郵件協(xié)議中的一個(gè)重要內(nèi)容。1977年,洛克等人提出來一個(gè)統(tǒng)一的郵件格式標(biāo)準(zhǔn),也就是后來的RFC733.但是這次統(tǒng)一郵件格式標(biāo)準(zhǔn)的嘗試并未能獲得成功。這便是早起ARPNET上的電子郵件系統(tǒng)。</p><p>  早起的各種基于網(wǎng)絡(luò)的電子郵件傳輸協(xié)議都存在這樣那樣的問題。要么功能不完善,要么過于復(fù)雜。人們需要的是

22、一個(gè)全新的,易于實(shí)現(xiàn)而有功能強(qiáng)大的電子郵件傳輸協(xié)議。1980年,RFC772《郵件傳輸協(xié)議》發(fā)布了,其中描述了一個(gè)全新的郵件傳輸協(xié)議。但是這個(gè)協(xié)議還是過于復(fù)雜了,于是人們?cè)谒幕A(chǔ)上又進(jìn)行了改進(jìn),縱欲在1981年的RFC780中發(fā)布了簡單郵件傳輸協(xié)議,經(jīng)過一些曉得改進(jìn)后,最總形成了RFC821《SMTP協(xié)議》,這也正是今天的電子郵件系統(tǒng)的標(biāo)準(zhǔn)傳輸協(xié)議。</p><p>  統(tǒng)一的郵件傳輸協(xié)議自然需要統(tǒng)一的郵件格式

23、,1982年,克魯克在RFC733的基礎(chǔ)上編寫RFC822《APRAInternet文本信息格式標(biāo)準(zhǔn)》,他也最終成為電子郵件的標(biāo)準(zhǔn)格式。但是在RFC822格式中,郵件都是文本格式的,沒有考慮非文本的郵件內(nèi)容問題。很快人們就對(duì)電子郵件提出更多的要求,希望能用它來發(fā)送非文本格式的附件,如圖片,多媒體文件等。于是在1996年又發(fā)布了RFC2045—2049,規(guī)定了MIME編碼格式。通過這種格式,可以實(shí)現(xiàn)各種文件和文本信息之間的無損轉(zhuǎn)換,這樣就

24、可以將他們封裝在標(biāo)準(zhǔn)RFC822格式的文本郵件中直接發(fā)送,從而使電子郵件系統(tǒng)也可以發(fā)送非文本的信息了。</p><p>  后來,人們根據(jù)郵件系統(tǒng)中使用的問題,又陸續(xù)對(duì)SMTP協(xié)議以及其父樹協(xié)議進(jìn)行了一些小的修改,如增加用戶身份認(rèn)證功能等。到目前為止,SMTP協(xié)議的最新版本是RFC2821,郵件格式規(guī)范的最新版本是RFC2822。這便是現(xiàn)代電子郵件系統(tǒng)的出現(xiàn)。</p><p>  從以上分

25、析中可以得出這樣的結(jié)論,由于在電子郵件系統(tǒng)存在的種種缺陷,我們要學(xué)會(huì)重新設(shè)計(jì)出一種全新的,每個(gè)地方都考慮到并徹底解決各種安全問題和隱患的電子郵件系統(tǒng),用它來代替現(xiàn)有的電子郵件系統(tǒng)給人們提供更高一層的服務(wù)。但遺憾的是,由于各種現(xiàn)實(shí)的問題,(如環(huán)境,技術(shù),資金等)使其在可預(yù)見的未來,仍然是一個(gè)不可能實(shí)現(xiàn)的任務(wù),但是無論如何,一個(gè)已經(jīng)成功的或者試圖成功的電子郵件系統(tǒng),必須要能夠較好的解決這些問題[2]。</p><p>

26、;<b>  1.3 系統(tǒng)特點(diǎn)</b></p><p>  郵件服務(wù)器提供的服務(wù)類型,可以分為發(fā)送郵件服務(wù)器(簡稱發(fā)送服務(wù)器)和接收郵件服務(wù)器(簡稱接收郵件服務(wù)器)。發(fā)送郵件服務(wù)器使用郵件發(fā)送協(xié)議,現(xiàn)在常用的是SMTP,所以通常發(fā)送郵件服務(wù)器也稱為SMTP服務(wù)器;接收郵件服務(wù)器使用接收郵件協(xié)議,常用的是POP3協(xié)議,所以通常接收郵件服務(wù)器也稱為POP3服務(wù)器。</p><

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

28、協(xié)議格式的命令,這些命令有HELO ,MAIL FROM,RCPT TO,DATA,QUIT,服務(wù)器接到這些命令后,給出對(duì)應(yīng)的響應(yīng)碼,然后發(fā)給客戶端。</p><p>  POP3(Post Office Protocol 3)是郵局協(xié)議的第3個(gè)版本,它規(guī)定郵件客戶端怎么從服務(wù)器那里接收郵件,是第一個(gè)電子郵件的離線協(xié)議標(biāo)準(zhǔn)。它既允許接收服務(wù)器向郵件用戶發(fā)送郵件,也可以接收來自SMTP服務(wù)器的郵件,郵件客戶端軟件會(huì)

29、與POP3服務(wù)器之間進(jìn)行交互,下載由POP3服務(wù)器接收到的郵件,POP3協(xié)議支持用戶從服務(wù)器上接收郵件然后存儲(chǔ)到自己的計(jì)算機(jī)上,同時(shí)根據(jù)客戶端的操作刪除或保存在郵件服務(wù)器上的郵件,服務(wù)器接收客戶端發(fā)過來的POP3協(xié)議格式的命令,這些命令有USER,PASS,LIST,RETR,DELE,REST,QUIT,服務(wù)器接到這些命令后,給出對(duì)應(yīng)的響應(yīng)信息+OK或者-ERR,然后連同郵件信息發(fā)給客戶端?;赑OP3協(xié)議的郵件系統(tǒng)能提供快捷,實(shí)惠的

30、服務(wù),因此深受廣大用戶的青睞。POP3協(xié)議也是TCP/IP協(xié)議族中的一員,由RFC 1939 定義。</p><p>  第2章 相關(guān)技術(shù)和工具簡介</p><p>  2.1 .Swing簡介</p><p>  Swing是一個(gè)專門用于開發(fā)Java用戶界面程序的工具包。它是在抽象窗口工具包(AWT)的基礎(chǔ)上讓跨平臺(tái)JAVA程序能夠使用所有可插拔的界面風(fēng)格,Swi

31、ng程序員只需要用簡單的代碼就能夠利用Swing模塊化的,豐富的功能和靈活的組件來編出漂亮的系統(tǒng)界面。工具包中的包都以swing來命名的,例如javax.swing.event。</p><p>  Swing開發(fā)包全部是用Java來實(shí)現(xiàn)的,Swing本身不依賴于操作系統(tǒng),也沒有除JAVA之外的其它代碼,是一個(gè)輕量級(jí)的組件,這就是他和AWT的卻別。因?yàn)锳WT是通過與具體操作系統(tǒng)相關(guān)的對(duì)等類來實(shí)現(xiàn)的,所以Swing

32、要比AWT具有更加強(qiáng)的實(shí)用性。Swing在所有平臺(tái)上的表現(xiàn)都是一致的,并且能表現(xiàn)出除當(dāng)前系統(tǒng)之外的其它界面風(fēng)格。Swing效仿了MVC的設(shè)計(jì)模式,即"模型-視圖-控制",其中模型是專門用來存放內(nèi)容的,視圖是專門用來查看內(nèi)容的,控制器是用來負(fù)責(zé)用戶輸入的。在AWT中,由于控制界面外觀的對(duì)等類和具體的平臺(tái)息息相關(guān),因而AWT組件的外觀只和本機(jī)的外觀相關(guān),但是Swing能使程序在一個(gè)操作系統(tǒng)上運(yùn)行的時(shí)候有不同的外觀以供用戶

33、可以選擇自己習(xí)慣的外觀。</p><p>  2.2 Java Mail簡介</p><p>  Java Mail是由Sun提供的API,但是它沒有被放在JAVA標(biāo)準(zhǔn)的基本開發(fā)包中,表明你在開發(fā)JAVA MAIL系統(tǒng)時(shí)需要另外下載JAVAMAIL包。另外,你還得下載Sun公司的JAF包,JAF非常復(fù)雜,JAVAMAIL的運(yùn)行需要JAF的支持。</p><p>  

34、Java Mail包是可選的,因此如果需要使用的話你需要首先從java.sun.com下載。目前最新版本是JavaMail1.4,使用JavaMail的時(shí)候需要下載JAF,安裝Java Mail只是需要把他們加入到CLASSPATH中去,如果你不想修改CLASSPATH的話,可以直接把他們的jar包c(diǎn)opy到JAVA_HOME/lib/ext下,這樣Java Mail就安裝好了[5]。Java Mail包中用于處理電子郵件的核心類是:S

35、ession,Message,Address,Authenticator,Transport,Store,Folder等。Session定義了一個(gè)基本的郵件會(huì)話,它需要從Properties中讀取類似于郵件服務(wù)器,用戶名和密碼等信息。另外很好的實(shí)現(xiàn)了Java Mail API的框架有James、Spring Mail。</p><p>  2.3 Java平臺(tái)簡介</p><p>  Ja

36、va平臺(tái)由Java虛擬機(jī)和Java核心類所構(gòu)成,它為純Java程序提供了統(tǒng)一的編程接口,而不管下層操作系統(tǒng)是什么,Java平臺(tái)更分細(xì)一點(diǎn)的話主要是由一個(gè)compiler(編譯器),一個(gè)運(yùn)行環(huán)境(runtime environment),和一個(gè)核心的API組成。Java應(yīng)用編程接口為Java應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分,在安裝了Java運(yùn)行平臺(tái)后,Java程序就能夠被運(yùn)行了。Java API為分為基本部

37、分與擴(kuò)展部分,Java應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口。因此Java程序只需要編譯一次,就可以在所有系統(tǒng)中運(yùn)行。Java應(yīng)用編程接口已經(jīng)從1.1x版發(fā)展到1.2版。目前常用的JDK版本是1.6,最新版本為1.7。與傳統(tǒng)程序不同,Sun 公司在推出 Java 之際就將其作為一種開放的技術(shù),全球數(shù)以萬計(jì)的 Java 開發(fā)公司被要求所設(shè)計(jì)的 Java 軟件必須相互兼容,“Java 語言靠群體的力量而非公司的力量”為Sun公司的一個(gè)口號(hào),

38、并得到了大多數(shù)軟件開發(fā)公司的認(rèn)同,這和微軟公司的模式不同,微軟提倡的是注重精英和封閉的模式, Java 程序設(shè)計(jì)語言</p><p>  Java 平臺(tái)是基于 Java 語言的平臺(tái),這樣的平臺(tái)非常流行,因此微軟公司推出了與之競爭的.NET平臺(tái)以及模仿Java的C#語言,Java是一個(gè)可以在不同操作系統(tǒng)(例如windows, unix等)上運(yùn)行的編程語言,java平臺(tái)是指運(yùn)行在各種終端(如pc、服務(wù)器、移動(dòng)設(shè)備、嵌

39、入式設(shè)備)的系統(tǒng)軟件,PC機(jī)上的java程序是用java SE開發(fā)出來的,服務(wù)器端的java程序是用javaEE開發(fā)出來的,移動(dòng)設(shè)備的java程序是用java ME開發(fā)出來的。</p><p>  2.4 Eclipse簡介</p><p>  Eclipse是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,E

40、clipse附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。 </p><p>  雖然大多數(shù)用戶很樂于將Eclipse當(dāng)作Java集成開發(fā)環(huán)境(IDE)來使用,但Eclipse 的目標(biāo)卻不僅限于此。Eclipse還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展Eclipse的軟件開發(fā)人員,

41、因?yàn)樗试S他們構(gòu)建與Eclipse環(huán)境無縫集成的工具。由于Eclipse中的每樣?xùn)|西都是插件,對(duì)于給Eclipse提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。</p><p>  這種平等和一致性并不僅限于Java開發(fā)工具。盡管Eclipse是使用Java語言開發(fā)的,但它的用途并不限于Java語言;例如,支持諸如C/C++和COBOL等編程語言的插件已經(jīng)可用,或預(yù)計(jì)

42、將會(huì)推出。Eclipse框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。</p><p>  基于Eclipse的應(yīng)用程序的一個(gè)突出例子是IBM&reg; Rational&reg; Software Architect,它構(gòu)成了IBM Java開發(fā)工具系列的基礎(chǔ)。</p><p>  至于Eclipse的安裝首先要?jiǎng)?chuàng)建一個(gè)java的工作環(huán)境,在s

43、un的網(wǎng)站上下載j2se,安裝到自己的系統(tǒng)中,我下載的是1.4版本,安裝目錄為“D:\j2sdk1.4.2_04”。</p><p>  下載地址為:http://java.sun.com/j2se/1.4.2/download.html</p><p>  設(shè)置環(huán)境參數(shù)的步驟如下:</p><p>  右鍵“我的電腦”-“屬性”-“高級(jí)”-“環(huán)境變量”增加:<

44、;/p><p>  java_home=D:\j2sdk1.4.2_04\</p><p>  ClassPath=d:\j2sdk1.4.2_04\;d:\j2sdk1.4.2_04\lib\tools.jar;d:\j2sdk1.4. 2_04\lib\dt.jar;d:\j2sdk1.4.2_04\bin</p><p>  Path=d:\j2sdk

45、1.4.2_04\bin\環(huán)境就設(shè)置好了。</p><p>  第3 章 系統(tǒng)需求分析和總體設(shè)計(jì)</p><p>  3.1用戶對(duì)電子郵件系統(tǒng)需求 </p><p>  (1)  方便性。電子郵件系統(tǒng)可以像離線QQ信息一樣,在自己有時(shí)間的時(shí)候可以處理記錄下來的請(qǐng)求,通過電子郵件可以方便快捷地傳送文本信息、圖像文件、報(bào)表和計(jì)算機(jī)程序等信息。<

46、;/p><p>  (2)  快捷性。電子郵件在傳遞過程中,若某個(gè)通信站點(diǎn)發(fā)現(xiàn)用戶給出的收信人的電子郵件地址有錯(cuò)誤而無法繼續(xù)傳遞時(shí),電子郵件會(huì)迅速地將原信件逐站退回,并告知其原因。當(dāng)郵件被送到目的地后,該計(jì)算機(jī)的郵件系統(tǒng)就立即將它放人收件人的信箱中,等候用戶自行讀取。用戶只要隨時(shí)以計(jì)算機(jī)聯(lián)機(jī)方式打開自己的電子郵件信箱,便可以查看自己的郵件。</p><p>  (3)

47、60;廣域性。電子郵件系統(tǒng)具有開放性,許多沒有連接到互聯(lián)網(wǎng)的用戶能夠通過本機(jī)的網(wǎng)關(guān)(Gateway)和網(wǎng)絡(luò)上的用戶相互交換郵件。</p><p>  (4) 透明性。電子郵件系統(tǒng)采用“存儲(chǔ)轉(zhuǎn)發(fā)”的方法幫助用戶傳送電子郵件,通過在互聯(lián)網(wǎng)絡(luò)的一些通信節(jié)點(diǎn)計(jì)算機(jī)上運(yùn)行相應(yīng)的軟件,使這些計(jì)算機(jī)充當(dāng)“郵局”的角色。當(dāng)用戶希望通過互聯(lián)網(wǎng)絡(luò)給別人發(fā)送郵件時(shí),首先要與為自己提供電子郵件的計(jì)算機(jī)聯(lián)機(jī),然后把要發(fā)送的郵件和

48、收件人的郵件地址發(fā)給郵件系統(tǒng)。電子郵件系統(tǒng)就會(huì)把用戶的郵件通過網(wǎng)絡(luò)一站一站地送到目的地,所有過程對(duì)于用戶來說都是透明的。</p><p>  (5) 廉價(jià)性。網(wǎng)絡(luò)的空間可以說是無限大的,公司能夠?qū)⒉煌漠a(chǎn)品以及服務(wù)信息放置在網(wǎng)絡(luò)上,這樣用戶就能夠隨時(shí)從網(wǎng)絡(luò)上獲取這些信息,并且相對(duì)于電話,郵寄或印刷來說在網(wǎng)上存儲(chǔ)與發(fā)送信息是非常廉價(jià)的。在公司與顧客“一對(duì)一”關(guān)系的電子郵件服務(wù)中,費(fèi)用低廉,從而節(jié)約大量費(fèi)用

49、。</p><p>  (6) 全天性。對(duì)顧客而言,電子郵件的優(yōu)點(diǎn)之一是沒有任何時(shí)間上的限制。一天24小時(shí),一年365天內(nèi),任何時(shí)間都可發(fā)送電子郵件。比如,當(dāng)顧客發(fā)生問題時(shí),他們隨時(shí)都可以把發(fā)生的問題發(fā)送給公司,而公司有關(guān)負(fù)責(zé)人可以在他方便的時(shí)候,查閱這些信件,決定哪些信件必須首先處理,哪些可以稍后處理,哪些應(yīng)該轉(zhuǎn)發(fā)給其他部門去承辦。而以前沒有電子郵件時(shí),顧客的產(chǎn)品本身或產(chǎn)品在使用過程中發(fā)生了問題,需要

50、等到公司人員上班時(shí),才能給公司打電話。而且什么時(shí)候打電話也很講究,打早了,公司負(fù)責(zé)人還沒有上班,打晚了公司負(fù)責(zé)人又可能出去開會(huì)了。電子郵件的全天候服務(wù),從根本上解決了這種狀況,大大改善了公司與顧客的關(guān)系,改善了公司對(duì)顧客的服務(wù)。</p><p>  3.2產(chǎn)品可行性分析</p><p>  電子郵件系統(tǒng)包括電子郵件客戶端和電子郵件服務(wù)器端,其中通過SMTP協(xié)議進(jìn)行發(fā)送郵件,POP3協(xié)議進(jìn)行

51、接收郵件。電子郵件系統(tǒng)的工作過程和相關(guān)收發(fā)協(xié)議如下圖:</p><p>  圖3.1電子郵件系統(tǒng)工作過程圖</p><p>  Java Mail是Sun發(fā)布的用來處理E-mail的API。它可以方便的執(zhí)行一些常用的郵件傳輸。Java Mail API是Java對(duì)電子郵件處理的延伸,它可以處理各種E-mail格式,包括IMAP,POP3,SMTP,為Java應(yīng)用程序提供了收發(fā)電子郵件的公共

52、接口,如下圖所示:</p><p>  圖3.2JavaMail API的客戶端工作原理圖</p><p>  JavaMail API主要位于javax.mail.internet中,主要類框架圖如下:</p><p>  圖3.3 JavaMail API中主要類的框架圖</p><p>  1.java x.mail.Session:

53、Session類代表JavaMail中的一次郵件會(huì)話.每個(gè)基于JavaMail的應(yīng)用程序至少有一次會(huì)話,也可以產(chǎn)生多次會(huì)話.發(fā)送郵件之前,通常應(yīng)該建立郵件會(huì)話。</p><p><b>  它的作用有:</b></p><p> ?。?)接收各種配置屬性信息:通過Properties對(duì)象設(shè)置的屬性信息;</p><p> ?。?)初始化Java

54、Mail環(huán)境:根據(jù)JavaMail的配置文件,初始化JavaMail環(huán)境以便通過Session對(duì)象創(chuàng)建其他重要類的實(shí)例。</p><p>  2.javax.mail.Transport:郵件操作只有發(fā)送或接收兩種處理方式,JavaMail將這兩種不同操作描述為傳輸(javax.mail.Transport)和存儲(chǔ)(javax.mail.Store),傳輸對(duì)應(yīng)郵件的發(fā)送,而存儲(chǔ)對(duì)應(yīng)郵件的接收。</p>

55、<p>  3.java.mail.Store 該類實(shí)際特定郵件協(xié)議上的讀,寫,監(jiān)視,查找等操作,通過javax.mail.Store類可以訪問javax.mail.Folder類.</p><p>  4.javax.mail.MimeMessage該對(duì)象是實(shí)際發(fā)送的電子郵件的信息.郵件對(duì)象通常使用MimeMessage創(chuàng)建,創(chuàng)建該對(duì)象時(shí)應(yīng)傳入一個(gè)郵件會(huì)話參數(shù).該類采用InternetHeader

56、s類來解析和保存e-mail的頂級(jí)RFC 822文件頭[9].該類包含如下屬性:</p><p>  Protected byte[] content 該e-mail內(nèi)容的字節(jié)數(shù)組</p><p>  protected internetHeaders headers 返回保存該e-mail的文件頭的對(duì)象</p><p>  void addFrom(Address

57、[] addresses 為該e-mail設(shè)置發(fā)件人的地址</p><p>  void addHeader(String name ,String value) 在name的文件頭內(nèi)容上增加value;</p><p>  void addRecipients(Message.RecipientType type, Address[] addresses)該方法還 有一個(gè)重載的方法,都是

58、增加指定類型的收件地址.</p><p>  Address[] getFrom返回該e-mail的發(fā)件人的地址列表</p><p>  void setContent(Multipart mp) 為該e-mail設(shè)置內(nèi)容</p><p>  5.javax.mail.Address 該對(duì)象用于確定發(fā)件人/收件人地址..和Message一樣,Address是個(gè)抽象類

59、,時(shí)間使用的是他的子類,javax.mail.internetAddress類. 一旦您創(chuàng)建了Session 和Message,并將內(nèi)容填入消息后,就可以用Address 確定信件地址了</p><p>  6.javax.mail.Folder:Folder類用于分級(jí)組織郵件,并提供照J(rèn)avax.mail.Message格式訪問email的能力。</p><p><b>  

60、3.3系統(tǒng)總體設(shè)計(jì)</b></p><p>  3.3.1 電子郵件系統(tǒng)所包含的功能</p><p>  圖3.4 系統(tǒng)功能圖</p><p><b>  本系統(tǒng)主要包括:</b></p><p>  (1)登錄系統(tǒng):用某個(gè)郵箱的賬號(hào)和密碼登錄; </p><p>  (2)接收郵件

61、:從指定郵箱服務(wù)器獲取郵件; </p><p>  (3)發(fā)送郵件:用此賬號(hào)發(fā)送郵件到指定的電子郵箱地址,包括發(fā)送普通 文本和附件; </p><p>  (4)群發(fā)郵件: 將郵件群發(fā)給指定郵件地址列表,包括抄送等;</p><p>  (5)郵件管理:查看郵件,刪除郵件;</p><p>  (6)系統(tǒng)配置:配置郵箱服務(wù)器的smtp地址和

62、pop3地址;</p><p>  3.3.2電子郵件收發(fā)過程</p><p>  圖3.5電子郵件收發(fā)過程圖</p><p>  電子郵件服務(wù)基于客戶/服務(wù)器模式,其工作過程如下:郵件客戶端和郵件服務(wù)器通過POP3協(xié)議收取郵件;通過SMTP傳輸郵件內(nèi)容,實(shí)現(xiàn)郵件信息交換。SMTP通過用戶代理(UA)和郵件傳輸代理程序(MTA)實(shí)現(xiàn)郵件的傳輸?! ?發(fā)送方編輯完畢

63、的電子郵件發(fā)送給當(dāng)?shù)氐泥]件服務(wù)器,郵件服務(wù)器收到客戶送來的郵件,根據(jù)收件人的郵件地址發(fā)送到對(duì)方的郵件服務(wù)器中。對(duì)方的郵件服務(wù)器接收到其他郵件服務(wù)器發(fā)來的郵件,并根據(jù)郵件地址分發(fā)到相應(yīng)的電子郵箱中,這樣接受方可通過電子郵箱來讀取郵件,并對(duì)他們進(jìn)行相關(guān)的處理。 電子郵件在發(fā)送與接收過程中都要遵循SMTP、POP3等協(xié)議,這些協(xié)議確保了電子郵件在各種不同系統(tǒng)之間的傳輸。其中,SMTP負(fù)責(zé)電子郵件的發(fā)送,而POP3則用于接收Inter

64、net上的電子郵件。</p><p>  3.3.3 服務(wù)器的設(shè)置</p><p>  用戶在發(fā)送和接收郵件的時(shí)候,需要設(shè)置好郵件服務(wù)器的地址、郵箱賬號(hào)和密碼等這些信息。該系統(tǒng)提供了對(duì)上述配置的設(shè)置和存儲(chǔ)功能,這里,我們將配置信息存儲(chǔ)在一個(gè)屬性文件里面。其文件名為config.properties,位于工程的根目錄下,可使用java.uitl。properties 類的setPropert

65、y()方法和getProperty()方法對(duì)屬性文件中的屬性內(nèi)容進(jìn)行存取。本系統(tǒng)smtp pop3.properties文件的內(nèi)容格式如下 :</p><p>  popAddress=pop3服務(wù)器地址(如pop3.qq.com.cn)</p><p>  smtpAddress=smtp服務(wù)器地址(如smtp.qq.com.cn)</p><p>  usern

66、ame=用戶名(如x y z)</p><p>  password=密碼(如123456)</p><p><b>  第4章 詳細(xì)設(shè)計(jì)</b></p><p>  4.1 登錄功能的設(shè)計(jì)</p><p> ?。?)選擇登錄服務(wù)器,連接服務(wù)器。</p><p> ?。?)選擇指定的郵件地址和密碼

67、。在本系統(tǒng)中有所提供的Mail服務(wù)器創(chuàng)建了賬戶進(jìn)行登錄。必須選用正確的郵件地址和密碼才可以登錄,在該模塊中,用戶輸入賬戶和密碼,程序會(huì)根據(jù)用戶輸入的用戶名和密碼在用戶信息數(shù)表中查找,如果查找成功,就進(jìn)入系統(tǒng)主界面,如果查找失敗,就會(huì)報(bào)錯(cuò)。</p><p>  登錄的設(shè)計(jì)主要有下圖的幾個(gè)步驟。</p><p><b>  圖4.1登錄流程圖</b></p>

68、<p>  4.2發(fā)送郵件的設(shè)計(jì)</p><p> ?。?)編寫文本郵件。該內(nèi)容是電子郵件系統(tǒng)中最基本的功能。用戶需填寫郵件信息:包括收件人,主題,文字內(nèi)容。</p><p> ?。?)上傳附件。在編寫郵件時(shí),郵件內(nèi)容可以和附件(如圖片,聲音等)一起發(fā)送,這樣就需要先將附件上傳到服務(wù)器,然后再發(fā)送給對(duì)方。 </p><p>  發(fā)送郵件的設(shè)計(jì)如下圖所示:

69、</p><p>  圖4.2發(fā)送郵件流程圖</p><p>  4.3接收郵件的設(shè)計(jì)</p><p> ?。?)接收郵件。包括發(fā)件人,發(fā)件時(shí)間。這是一個(gè)電子郵件系統(tǒng)最基本的功能。</p><p> ?。?)瀏覽到郵件列表,也可看到郵件主題,是按時(shí)間先后排序。</p><p>  接收郵件的設(shè)計(jì)如下圖所示:</p

70、><p>  圖4.3接收郵件流程圖</p><p>  4.4郵件管理的設(shè)計(jì)</p><p> ?。?)查看郵件內(nèi)容。包括發(fā)郵件的時(shí)間,郵件的內(nèi)容和主題,以及發(fā)件人,以達(dá)到信息傳遞</p><p> ?。?)刪除郵件。要?jiǎng)h除郵件,只需先選擇某郵件,再單擊刪除命令就可以刪除郵件。此外還可以批量刪除郵件,這也只需要多個(gè)選擇郵件,再單擊刪除就能實(shí)現(xiàn)。

71、</p><p>  郵件管理的設(shè)計(jì)如下圖所示:</p><p><b>  圖4.4郵件管理圖</b></p><p>  第5章 系統(tǒng)功能的編碼實(shí)現(xiàn)</p><p>  5.1用戶登錄界面的實(shí)現(xiàn)</p><p>  用戶選擇對(duì)應(yīng)的郵件服務(wù)器 然后輸入賬號(hào)密碼登錄,郵件服務(wù)器的配置會(huì)保存到配置

72、文件中。例如 選擇的是@qq.com 則SMTP地址為:smtp.qq.com,POP3地址為:pop.qq.com。</p><p><b>  5.1 登錄界面圖</b></p><p>  部分實(shí)現(xiàn)的核心代碼:</p><p>  private boolean saveConfig() {</p><p>  S

73、tring server = (String) typeBox.getSelectedItem();</p><p>  ConfigBean configBean = new ConfigBean();</p><p>  configBean.setUserName(userNameText.getText() + server);</p><p>  conf

74、igBean.setPassWord(passWordText.getText());</p><p>  configBean.setType(server);</p><p>  if (server.equals("@qq.com")) {</p><p>  configBean.setSmtpAddress("smtp.qq.

75、com");</p><p>  configBean.setPopAddress("pop.qq.com");</p><p>  } else if (server.equals("@163.com")) {</p><p>  configBean.setSmtpAddress("smtp.163.c

76、om");</p><p>  configBean.setPopAddress("pop.163.com");</p><p><b>  } else {</b></p><p>  configBean.setUserName(userNameText.getText() + "@yahoo.cn&

77、quot;);</p><p>  configBean.setSmtpAddress("smtp.yahoo.com.cn");</p><p>  configBean.setPopAddress("pop.yahoo.com.cn");</p><p><b>  }</b></p>

78、<p>  ReturnType type = PropertiesUtility.saveConfig(configBean);</p><p>  if (type == ReturnType.RIGHT) {</p><p>  return true;</p><p><b>  }</b></p><p&

79、gt;  return false;</p><p><b>  }</b></p><p><b>  5.2主界面的實(shí)現(xiàn)</b></p><p>  當(dāng)用戶登錄后,會(huì)進(jìn)入到該界面,可以選擇需要的服務(wù)(發(fā)郵件,收郵件,服務(wù)器配置(Config)),點(diǎn)擊左邊的相應(yīng)郵件功能按鈕,右邊會(huì)顯示相應(yīng)的郵件界面。</p>

80、<p><b>  圖5.2主界面圖</b></p><p>  部分實(shí)現(xiàn)的核心代碼:</p><p>  public void setLayout() {</p><p><b>  try {</b></p><p>  loadImage();</p><p

81、>  container = this.getContentPane();</p><p>  container.setLayout(null);</p><p>  container.setBackground(new Color(168, 193, 227));</p><p>  this.setIconImage(titleImage);</

82、p><p>  setLeftPanel();</p><p>  setSendPanel();</p><p>  container.add(controlPanel);</p><p>  } catch (Exception e) {</p><p>  System.out.println(e.getMessa

83、ge());</p><p><b>  }</b></p><p><b>  }</b></p><p>  5.3 郵件配置界面的實(shí)現(xiàn)</p><p>  點(diǎn)擊主界面上方的config按鈕會(huì)彈出改配置框,通過該界面可以查看以及修改賬戶和服務(wù)器地址</p><p>  圖

84、5.3郵件配置界面圖</p><p><b>  部分實(shí)現(xiàn)代碼:</b></p><p>  private void addUserName() {</p><p>  userNameLabel = new JLabel("UserName:");</p><p>  userNameLabel.

85、setFont(new Font("黑體", Font.BOLD, 14));</p><p>  userNameLabel.setBounds(14, 25, 72, 15);</p><p>  container.add(userNameLabel);</p><p>  userNameText = new JTextField();&

86、lt;/p><p>  userNameText.setBounds(92, 20, 180, 25);</p><p>  container.add(userNameText);</p><p><b>  }</b></p><p>  5.4 發(fā)送郵件界面的實(shí)現(xiàn)</p><p>  填好收件人

87、地址,主題,內(nèi)容,抄送或添加附件,點(diǎn)擊發(fā)送按鈕,即會(huì)發(fā)送相應(yīng)的內(nèi)容到對(duì)方郵箱。點(diǎn)擊重置按鈕所有內(nèi)容會(huì)清空。</p><p>  圖5.4發(fā)送郵件界面圖</p><p><b>  部分實(shí)現(xiàn)的代碼:</b></p><p>  public void addButton() {</p><p>  send = new J

88、Button("發(fā) 送");</p><p>  send.setBounds(80, 425, 100, 30);</p><p>  sendPanel.add(send);</p><p>  send.addActionListener(new ActionListener() {</p><p><b&

89、gt;  @Override</b></p><p>  public void actionPerformed(ActionEvent e) {</p><p>  boolean temp = check_Text();</p><p>  if (temp) {</p><p>  send_Event();</p&g

90、t;<p><b>  }</b></p><p><b>  }</b></p><p><b>  });</b></p><p>  JButton reset = new JButton("重 置");</p><p>  reset

91、.setBounds(300, 425, 100, 30);</p><p>  sendPanel.add(reset);</p><p>  reset.addActionListener(new ActionListener() {</p><p><b>  @Override</b></p><p>  pub

92、lic void actionPerformed(ActionEvent e) {</p><p>  reset_Event();</p><p><b>  }</b></p><p><b>  });</b></p><p><b>  }</b></p>

93、<p>  5.5 接收郵件界面的實(shí)現(xiàn)</p><p>  點(diǎn)擊收取郵件按鈕 就可收取該賬戶的郵件,并按先后時(shí)間顯示郵件列表。</p><p>  圖5.5接收郵件的界面圖</p><p><b>  部分實(shí)現(xiàn)的代碼:</b></p><p>  public void initTable() {</p

94、><p>  defaultTable = new MyTableModel();</p><p>  addColumnName(defaultTable);</p><p>  table = new JTable(defaultTable);</p><p>  setTableAttr();</p><p>  J

95、ScrollPane scrollPane = new JScrollPane(table);</p><p>  scrollPane.setBounds(5, 25, 475, 400);</p><p>  receivePanel.add(scrollPane);</p><p>  defaultTable.addTableModelListener(ne

96、w TableModelListener() {</p><p><b>  @Override</b></p><p>  public void tableChanged(TableModelEvent e) {</p><p><b>  }</b></p><p><b>  })

97、;</b></p><p>  table.addMouseListener(new MouseAdapter() {</p><p><b>  @Override</b></p><p>  public void mouseClicked(MouseEvent e) {</p><p>  mouse_

98、Event(e);</p><p><b>  }</b></p><p><b>  });</b></p><p><b>  }</b></p><p>  第6章 系統(tǒng)實(shí)現(xiàn)的功能測試</p><p>  6.1 登錄郵箱測試</p>

99、<p>  圖6.1登錄郵箱測試</p><p>  選擇好服務(wù)器,然后輸入對(duì)應(yīng)的賬號(hào)和密碼 然后點(diǎn)擊登錄,則登錄郵箱成功</p><p>  然后會(huì)進(jìn)入到如上圖所示的主界面</p><p><b>  6.2發(fā)送郵件測試</b></p><p>  包括發(fā)送文字和附件,以及抄送測試。抄送就是你寫的這封郵件

100、能同時(shí)發(fā)給多個(gè)人,并且收件人知道你把這封郵件同時(shí)發(fā)給了他和抄送欄里寫的郵件地址的人。</p><p>  圖6.2.1發(fā)送文字郵件測試圖</p><p>  圖6.2.2發(fā)送附件測試圖</p><p>  圖6.2.3抄送功能測試圖</p><p><b>  6.3接收郵件測試</b></p><p

101、>  點(diǎn)擊收取郵件,就能達(dá)到郵件的收取。</p><p>  圖6.3接收郵件測試圖</p><p>  6.4查看郵件內(nèi)容測試</p><p>  雙擊要查看的郵件后會(huì)顯示出郵件內(nèi)容</p><p>  圖6.4查看郵件內(nèi)容測試圖</p><p><b>  6.5刪除郵件測試</b>&l

102、t;/p><p>  先選擇單個(gè)要?jiǎng)h除的郵件,也可同時(shí)選擇多個(gè)要?jiǎng)h除的郵件,點(diǎn)擊刪除標(biāo)記按鈕,就能刪除郵件,并由相關(guān)提示,提醒刪除郵件成功,顯示出郵件刪除后的最新列表。</p><p>  圖6.5.1 刪除單個(gè)郵件測試圖</p><p>  圖6.5.2刪除多個(gè)郵件測試圖</p><p>  下圖是刪除郵件成功的提醒</p>&l

103、t;p>  圖6.5.2 刪除郵件成功提醒圖</p><p>  圖6.5.3 郵件刪除后的新列表圖</p><p><b>  第7章 總結(jié)</b></p><p>  在本次畢業(yè)設(shè)計(jì)開發(fā)過程中,我遇到了許許多多的困難,系統(tǒng)雖然基本完成,但是也仍存在一些不足,在這里只是簡要敘述一些主要的困難和不足之處。</p><p

104、>  在開發(fā)郵件系統(tǒng)的過程中,中文亂碼也是一個(gè)比較棘手的問題,因?yàn)閬y碼可能會(huì)在郵件的標(biāo)題,附件以及正文等諸多地方出現(xiàn),但是沒有某一種方法能夠解決全部的亂碼問題,因而解決亂碼問題也是系統(tǒng)開發(fā)的重點(diǎn)難點(diǎn)之一。經(jīng)過一番上網(wǎng)查找和請(qǐng)教老師,終于找出導(dǎo)致亂碼可能出現(xiàn)的原因,通過網(wǎng)上和老師給予的擬采用的解決途徑,終于使亂碼問題得到解決。此外,在郵件系統(tǒng)的開發(fā)中如何處理各種類型的信息成為了開發(fā)過程中的又一個(gè)重點(diǎn)與難點(diǎn),事實(shí)上,Java Mail

105、底層在接收處理MIME數(shù)據(jù)方面依賴與JAF,JAF提供了對(duì)MIME數(shù)據(jù)進(jìn)行處理的部件,它通常用于發(fā)送附件以及實(shí)現(xiàn)對(duì)MIME數(shù)據(jù)的常用操作。在開發(fā)過程中要編寫的東西很多。并且由于自己剛接觸,很多都不熟悉,所以出現(xiàn)問題解決速度很慢,對(duì)功能的實(shí)現(xiàn)方法也比較少。</p><p>  本次畢業(yè)設(shè)計(jì)在很多地方未能考慮周全以至于系統(tǒng)存在著很多不足之處,這些不足主要是由于時(shí)間不足造成的,這就需要在以后系統(tǒng)維護(hù)過程中逐步發(fā)現(xiàn),并不

106、斷進(jìn)行升級(jí),都有待進(jìn)一步改善。</p><p>  通過本次課程設(shè)計(jì),對(duì)java mail也有一些感悟,感覺它真是一個(gè)神奇的東西,里面富含那么多的類,給人們帶來了極大的方便。一個(gè)人編寫代碼真的是很容易出現(xiàn)一些可能看不到的小問題,從古至今人們確實(shí)從自己身上找問題比較難,所以說請(qǐng)教朋友和老師,注重合作更有利于項(xiàng)目的開發(fā)</p><p>  還值得一提的,實(shí)踐確實(shí)是學(xué)習(xí)一樣新技術(shù)最快的方法。理論

107、固然要看,但是需要理論結(jié)合實(shí)踐,在實(shí)踐操作中深化對(duì)理論的理解,這樣才掌握得快。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1](美)埃史爾.Java編程思想(第四版).機(jī)械工業(yè)出版社.2007</p><p>  [2] Liang,Y.D.Java語言程序設(shè)計(jì)基礎(chǔ)篇.機(jī)械工業(yè)出版社,2006</p>&

108、lt;p>  [3] 李金銘,林曉宇,寧正元.面向?qū)ο蟪绦蛟O(shè)計(jì)——Java.北京:北京交通大學(xué)出版社,2005</p><p>  [4] 朱福喜著.Java 項(xiàng)目設(shè)計(jì)與開發(fā)范例[M].北京:電子工業(yè)出版社,2005</p><p>  [5](美) Nathaniel T. Schutta, Ryan Asleson著.Ajax與Java高級(jí)程序設(shè)計(jì).郵電出版社,2007</

109、p><p>  [6] O'Reilly & Associates,Inc 《Java Cookbook》in the United States or Canada</p><p>  [7] O’reilly,《Java Servlet Programming》,American:Sernni Yey</p><p>  [8] 印雯,Java語言與

110、面向?qū)ο蟪绦蛟O(shè)計(jì).北京:清華大學(xué)出版,2002年. [9] 畢廣吉.Java程序設(shè)計(jì)實(shí)例教程[M]. 北京:冶金工業(yè)出版社,2007年</p><p>  [10]張桂珠,劉麗,陳愛國 Java面向?qū)ο蟪绦蛟O(shè)計(jì)(第2版) 北京郵電大學(xué)出版社</p><p>  [11]劉騰紅,孫細(xì)明.信息系統(tǒng)分析與設(shè)計(jì)[M]. 北京:科學(xué)出版社,2003年</p><p><

111、;b>  致 謝</b></p><p>  在老師和同學(xué)的支持與幫助下,我順利地完成了本次畢業(yè)設(shè)計(jì)。通過這段時(shí)間的畢業(yè)設(shè)計(jì),本人受益非淺,對(duì)電子郵件系統(tǒng)有了更深刻的理解,在此期間,我認(rèn)識(shí)到自己的不足之處并爭取獨(dú)立完成畢業(yè)設(shè)計(jì),收獲頗多,學(xué)到了以前很多沒有學(xué)到的知識(shí),同時(shí)也鞏固了以前所學(xué)過的知識(shí)。</p><p>  這次的畢業(yè)設(shè)計(jì)是在zz老師的悉心指導(dǎo)下完成的,xx老

112、師在整個(gè)畢業(yè)設(shè)計(jì)期間一直特別認(rèn)真負(fù)責(zé),經(jīng)常主動(dòng)聯(lián)系我們,詢問我們的進(jìn)度,幫助我們查找資料,在修改設(shè)計(jì)報(bào)告期間總是耐心的為我們查看報(bào)告的內(nèi)容和格式,不厭其煩的指導(dǎo)我們完善設(shè)計(jì)報(bào)告,達(dá)到最終的要求。在我個(gè)人設(shè)計(jì)的整個(gè)過程中,也給予我很多意見和建議,幫助我解決了很多問題,使我真正了解了如何從整體上分析、設(shè)計(jì)該系統(tǒng),xx老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和認(rèn)真負(fù)責(zé)給我留下了深刻的印象,在此衷心的對(duì)xx老師說聲謝謝您。這次畢業(yè)設(shè)計(jì)也讓我獲益匪淺,讓我明白應(yīng)該以一

113、種什么樣的心態(tài)去面對(duì)一個(gè)新的知識(shí)領(lǐng)域,應(yīng)該怎樣協(xié)調(diào)理論和具體實(shí)踐之間的關(guān)系。</p><p>  回顧大學(xué)學(xué)習(xí)期間的日日夜夜,自己為有機(jī)會(huì)潛心研究,靜心思考,并實(shí)現(xiàn)了郵件系統(tǒng)的基本功能而感到非常的欣慰。同時(shí),我要向關(guān)心與支持我的老師和同學(xué)們表示真誠的感謝!他們?cè)谙到y(tǒng)開發(fā)期間給予我熱情的幫助和鼓勵(lì),提出了許多寶貴的意見,使我拓寬了視野,豐富了思路,獲得了許多解決問題的行之有效的方法。感謝在設(shè)計(jì)中被我引用或參考的論著

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論