2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  學(xué)士學(xué)位畢業(yè)設(shè)計(論文)</p><p>  E M A I L客 戶 端 ( Java GUI )</p><p>  姓 名 </p><p>  學(xué) 號 </p><p>  年 級 </p><p>

2、  專 業(yè) 計算機科學(xué)與技術(shù) </p><p>  系(院) 信 息 學(xué) 院   </p><p>  指導(dǎo)教師      </p><p><b>  摘 要</b></p><p>  本系統(tǒng)是用 java 語言實現(xiàn)的一個 Email客戶端,主要用到 java GUI 圖形界面設(shè)計和

3、java mail 工具包, 它適用于所有用戶,無管理員設(shè)置,可以實現(xiàn)網(wǎng)絡(luò)郵箱的郵件發(fā)送和郵件收取的基本功能,還具有通訊錄的存儲功能,針對用戶的需求,本Email客戶端具有以下兩大模塊:</p><p><b>  1.基本設(shè)置模塊;</b></p><p>  此模塊主要包括用戶設(shè)置和郵箱設(shè)置兩大內(nèi)容:</p><p>  1.1 用戶設(shè)置:

4、主要設(shè)置用戶的一些基本信息,如用戶名,用戶密碼等設(shè)置</p><p>  1.2 郵箱設(shè)置:主要設(shè)置郵箱服務(wù)器,SMTP,POP3等</p><p>  2.Email功能模塊;</p><p>  此模塊根據(jù)大眾用戶的需求劃分了以下三個部分:</p><p>  2.1收取郵件功能;</p><p>  2.2發(fā)送

5、郵件功能;</p><p><b>  2.3通訊錄功能;</b></p><p>  該系統(tǒng)的開發(fā)過程為:</p><p>  1.Email客戶端的需求分析;</p><p>  2.Email客戶端的系統(tǒng)分析;</p><p>  3.Email客戶端的功能模塊劃分劃分;</p>

6、<p>  4.Email客戶端的數(shù)據(jù)庫設(shè)計;</p><p>  5.Email客戶端的界面設(shè)計;</p><p>  6.Email客戶端的功能模塊設(shè)計及代碼實現(xiàn)</p><p>  關(guān)鍵字:java,java GUI,java mail</p><p><b>  Abstract</b></p

7、><p>  This email client system is developed in java language using java GUI and java mail tools .It can be used by any users who want to use it . The system is not including manager settings and it can finish

8、the function of sending and accepting mails in web mail system, it can store user information a function like a address book in the web. The systems need to achieve the overall function to run two parts, as follows</

9、p><p>  1. The basic settings</p><p>  Two parts are followed:</p><p>  1.1 Maintenance System Administrators basic information; </p><p>  1.2 Student response functions;

10、</p><p>  2. Email functions</p><p>  Three function will be available</p><p>  2.1 Sending mails</p><p>  2.2 Receiving mails</p><p>  2.3 Address book<

11、;/p><p>  The system development process : </p><p>  1. Email client needs analysis; </p><p>  2. Email client system analysis; </p><p>  3. Email client function modules

12、partition; </p><p>  4. Email client design; </p><p>  5. Email client interface design; </p><p>  6. Email client functional design and code modules to achieve </p><p>

13、;  Key word:java , java GUI ,java mail</p><p><b>  目 錄</b></p><p><b>  前 言7</b></p><p>  第1章 系統(tǒng)概述及系統(tǒng)分析8</p><p><b>  1.1系統(tǒng)概述8</b>

14、;</p><p>  1.1.1基本設(shè)置模塊8</p><p>  1.1.2 Email功能模塊8</p><p>  1.2 需求分析9</p><p>  1.3 可行性分析9</p><p>  1.3.1技術(shù)可行性分析9</p><p>  1.3.2環(huán)境可行性分析9&l

15、t;/p><p>  1.3.3經(jīng)濟可行性分析9</p><p>  第2章 系統(tǒng)開發(fā)基本介紹10</p><p>  2.1 選題背景與目的10</p><p>  2 .2 系統(tǒng)開發(fā)工具10</p><p>  2 .3 系統(tǒng)開發(fā)環(huán)境10</p><p>  2 .4開發(fā)技術(shù)概述11

16、</p><p>  2 .4.1 J2EE概述11</p><p>  2 .4.2 Java GUI11</p><p>  2 .4.3 Java mail12</p><p>  第3章 系統(tǒng)總體設(shè)計13</p><p>  3 .1 系統(tǒng)功能模塊劃分13</p><p>  

17、3 .2系統(tǒng)具體功能模塊基本介紹14</p><p>  3 .2.1 發(fā)件箱14</p><p>  3 .2.2 收件箱14</p><p>  3 .2.3 通訊錄15</p><p>  第4章 系統(tǒng)詳細設(shè)計及系統(tǒng)實現(xiàn)16</p><p>  4 .1 章節(jié)內(nèi)容總體介紹16</p>&

18、lt;p>  4 .2各模塊功能詳細設(shè)計16</p><p>  4 .2.1 發(fā)送郵件功能的實現(xiàn)16</p><p>  4 .2.1.1 發(fā)送普通郵件功能17</p><p>  4 .2.1.2 郵件附件的功能實現(xiàn)22</p><p>  4 .2.2 收取郵件功能的實現(xiàn)23</p><p>  

19、4 .2.3 通訊錄功能的實現(xiàn)30</p><p>  4 .2.4其他功能32</p><p>  4 .2.4.1 其他界面實現(xiàn)與通訊錄的連接功能32</p><p>  4 .2.4.2 郵件未存儲對用戶提示功能32</p><p>  4 .2.4.3 復(fù)制、刪除郵件功能34</p><p>  4

20、.2.4.4 用戶信息設(shè)置功能35</p><p><b>  結(jié)束語38</b></p><p><b>  謝 辭39</b></p><p><b>  參考文獻40</b></p><p><b>  前 言</b></p>

21、<p>  郵件系統(tǒng)是一套單獨的系統(tǒng),要有自己的服務(wù)器,在郵件系統(tǒng)中可以設(shè)多個域,每個域中可以設(shè)多個用戶,比如說我買了anymacro或快客的郵件系統(tǒng),可以進行多項設(shè)置.它的數(shù)據(jù)是放在自己的服務(wù)器上.</p><p>  隨著信息技術(shù)的提高,網(wǎng)絡(luò)的普及于發(fā)展,越來越多的網(wǎng)絡(luò)工具隨之產(chǎn)生出來,網(wǎng)絡(luò)郵箱就是其中之一,它可以通過網(wǎng)絡(luò)來實現(xiàn)人們之間的通信,可以給人們的工作帶來極大的方便,同時也縮短了人與人之

22、間的距離,使人們在通信上需要花費的時間更短。</p><p>  該Email客戶端不僅僅具有網(wǎng)絡(luò)郵箱的功能,它可以讓用戶綁定多個郵箱,可以說是多個網(wǎng)絡(luò)郵箱的公共接口,不進方便了人們的工作,還做到了有效利用網(wǎng)絡(luò)的信息資源,極大的提高人們的工作效率,減少了很多的工作量。因此它應(yīng)該是能夠得到用戶歡迎的一個系統(tǒng)。</p><p>  第1章 系統(tǒng)概述及系統(tǒng)分析</p><p&

23、gt;<b>  1.1系統(tǒng)概述</b></p><p>  隨著信息技術(shù)的提高,網(wǎng)絡(luò)的普及于發(fā)展,越來越多的網(wǎng)絡(luò)工具隨之產(chǎn)生出來,網(wǎng)絡(luò)郵箱就是其中之一,它可以通過網(wǎng)絡(luò)來實現(xiàn)人們之間的通信,可以給人們的工作帶來極大的方便,同時也縮短了人與人之間的距離,使人們在通信上需要花費的時間更短。該Email客戶端不僅僅具有網(wǎng)絡(luò)郵箱的功能,它可以讓用戶綁定多個郵箱,可以說是多個網(wǎng)絡(luò)郵箱的公共接口,不進方

24、便了人們的工作,還做到了有效利用網(wǎng)絡(luò)的信息資源,極大的提高人們的工作效率,減少了很多的工作量。該系統(tǒng)的功能模塊主要由以下部分組成:</p><p>  1.1.1基本設(shè)置模塊</p><p>  該模塊可以完成此用戶設(shè)置和郵箱設(shè)置兩大內(nèi)容,其中用戶設(shè)置可以完成用戶的一些基本信息的設(shè)置,包括用戶名、用戶密碼、聯(lián)系方式、郵政編碼、通訊地址、郵箱地址,并可以對其進行存儲、瀏覽、查看、刪除、修改、

25、打印等操作。郵箱設(shè)置可以完成對所使用郵箱的郵箱服務(wù)器、SMTP、POP3的一些設(shè)置,也可以對這些設(shè)置進行存儲、瀏覽、查看、刪除、修改等操作。</p><p>  1.1.2 Email功能模塊</p><p>  該模塊可以完成網(wǎng)絡(luò)郵箱的收取郵件、發(fā)送郵件、保存郵件的功能,并可以對這些郵件進行存儲、轉(zhuǎn)發(fā)、群發(fā)、瀏覽、刪除、修改、打印等操作。此模塊還具有通訊錄的功能,可以存儲其他網(wǎng)絡(luò)郵箱用戶

26、的用戶名和郵箱地址進行存儲、修改等功能。</p><p><b>  1.2 需求分析</b></p><p>  Email客戶端的設(shè)計目的是要為了實現(xiàn)網(wǎng)絡(luò)郵箱的郵件發(fā)送和收取的以些功能。為使用郵箱的用戶提供便利。系統(tǒng)所面對的用戶可以是任何普通用戶,系統(tǒng)對于一個用戶只允許以一種身份登錄。用戶登錄后可以對系統(tǒng)進行管理,其主要操作是維護個人的基本信息,對其信息進行修改、

27、存儲等操作。</p><p>  將系統(tǒng)需求加以總結(jié),得出系統(tǒng)需求如下:</p><p>  系統(tǒng)可以運行任何操作系統(tǒng)平臺上,并具有友好的用戶界面。</p><p>  系統(tǒng)用戶類型為:任何普通用戶。</p><p><b>  1.3 可行性分析</b></p><p>  1.3.1技術(shù)可行性

28、分析</p><p>  Java很有雄心的宣言--"write once, run anywhere"許諾:一個具有下拉菜單,命令按鈕,滾動條以及其他常見的GUI控件的應(yīng)用程序?qū)⒛軌蛟诟鞣N操作系統(tǒng)上運行而不必重新編譯成針對某一平臺的二進制代碼,包括Microsoft Windows, Sun’s own Solaris,&

29、#160;Apple’s Mac OS以及Linux。</p><p>  1.3.2環(huán)境可行性分析</p><p>  Java很有雄心的宣言--"write once, run anywhere"許諾:一個具有下拉菜單,命令按鈕,滾動條以及其他常見的GUI控件的應(yīng)用程序?qū)⒛軌蛟诟鞣N操作系統(tǒng)上運行而不必重新編譯成針對某

30、一平臺的二進制代碼,包括Microsoft Windows, Sun’s own Solaris, Apple’s Mac OS以及Linux。也就是說本系統(tǒng)可以跨平臺使用.</p><p>  1.3.3經(jīng)濟可行性分析</p><p>  開發(fā)此系統(tǒng)所用軟件可在網(wǎng)絡(luò)上下載使用。</p><p>

31、  第2章 系統(tǒng)開發(fā)基本介紹</p><p>  2.1 選題背景與目的</p><p>  隨著信息技術(shù)的提高,網(wǎng)絡(luò)的普及于發(fā)展,越來越多的網(wǎng)絡(luò)工具隨之產(chǎn)生出來,網(wǎng)絡(luò)郵箱就是其中之一,它可以通過網(wǎng)絡(luò)來實現(xiàn)人們之間的通信,可以給人們的工作帶來極大的方便,同時也縮短了人與人之間的距離,使人們在通信上需要花費的時間更短。該Email客戶端不僅僅具有網(wǎng)絡(luò)郵箱的功能,它可以讓用戶綁定多個郵箱,可以

32、說是多個網(wǎng)絡(luò)郵箱的公共接口,不進方便了人們的工作,還做到了有效利用網(wǎng)絡(luò)的信息資源,極大的提高人們的工作效率,減少了很多的工作量。正是因為該系統(tǒng)所具有的這些優(yōu)點才開發(fā)了此系統(tǒng)。</p><p>  2 .2 系統(tǒng)開發(fā)工具</p><p>  本系統(tǒng)在開發(fā)過程中使用java GUI和java中java mail工具包實現(xiàn)了email的收發(fā)和一些基本的管理功能。</p><p

33、>  2 .3 系統(tǒng)開發(fā)環(huán)境</p><p>  在軟件環(huán)境方面,系統(tǒng)的開發(fā)環(huán)境如下:</p><p>  操作系統(tǒng):S use Linux;</p><p>  開發(fā)平臺:java;</p><p>  2 .4開發(fā)技術(shù)概述</p><p>  2 .4.1 J2EE概述</p><p>

34、;  J2EE是美國Sun公司剛剛推出的一種全新概念的模型,與傳統(tǒng)的互聯(lián)網(wǎng)應(yīng)用程序模型相比有著不可比擬的優(yōu)勢。</p><p>  目前,Java 2平臺有3個版本,它們是適用于小型設(shè)備和智能卡的Java 2平臺Micro版(Java 2 Platform Micro Edition,J2ME)、適用于桌面系統(tǒng)的Java 2平臺標(biāo)準(zhǔn)版(Java 2 Platform Standard Edition,J2SE)、

35、適用于創(chuàng)建服務(wù)器應(yīng)用程序和服務(wù)的Java 2平臺企業(yè)版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一種利用Java 2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺或Java 2平臺的標(biāo)準(zhǔn)版,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點,例如"編寫一次、隨處運行"的特性、方便存取數(shù)據(jù)庫的JDBC(Java DataBa

36、se Connectivity)應(yīng)用程序接口(API, Application Program Interface)技術(shù)以及能夠在Internet應(yīng)用中保護數(shù)據(jù)的安全模式等等,同時還提供了對 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java</p><p>  2 .4.2 Java GUI</p><p>  當(dāng)Java在1995年

37、的春天第一次發(fā)布的時候,它包含了一個叫AWT(Abstract Windowing Toolkit)的庫,用來構(gòu)建圖形用戶界面應(yīng)用程序。Java很有雄心的宣言--"write once, run anywhere"許諾:一個具有下拉菜單,命令按鈕,滾動條以及其他常見的GUI控件的應(yīng)用程序?qū)⒛軌蛟诟鞣N操作系統(tǒng)上運行而不必重新編譯成針對某一平臺的二進制代碼,包括Micro

38、soft Windows, Sun’s own Solaris, Apple’s Mac OS以及Linux。</p><p>  為了方便用Java構(gòu)建圖形用戶界面,Sun最初提供了一個在所有平臺下具有的獨特Java外觀的圖形界面庫。Sun在applet技術(shù)策略方面的首要伙伴Netscape提出applets應(yīng)該維持和運行時平臺一樣的外觀。他

39、們希望applets在某一平臺下在顯示和行為上能夠像其他應(yīng)用程序一樣。</p><p>  為了實現(xiàn)Netscape的"本地外觀"的目標(biāo),在JDK的第一個發(fā)布版中包含了AWT這個庫。AWT的缺省實現(xiàn)使用了"對等"機制,即每一個Java GUI窗口部件都在底層的窗口系統(tǒng)中有一個對應(yīng)的組件。</p><p>  例如,每一個java.awt.B

40、utton對象將在底層窗口系統(tǒng)中創(chuàng)建一個唯一對應(yīng)的button。當(dāng)用戶點擊那個按鈕的時候,事件將從本地實現(xiàn)庫傳送到Java虛擬機里,并且最終傳送到與java.awt.Button對象相關(guān)聯(lián)的邏輯。對等系統(tǒng)的實現(xiàn)以及Java組件與對等組件之間的交流的實現(xiàn)都隱藏在底層JVM實現(xiàn)中,Java語言級的代碼仍然跨平臺。</p><p>  于1997年JavaOne大會上提出并在1998年5月發(fā)布的JFC(Java

41、0;Foundation Classes)包含了一個新的使用Java窗口開發(fā)包。這個新的GUI組件叫做Swing,感覺到它是對AWT的升級,并且看起來對Java占據(jù)計算機世界很有幫助。</p><p>  盡管"Swing"僅僅是這個新組件的指代名稱,它一直持續(xù)使用到今天??赡苁且驗檫@個名稱太貼切了,Swing嘗試著以以下幾種方式改變公認的觀點:AWT依賴對等架構(gòu),用Java代碼包裝

42、本地窗口部件,Swing卻根本不使用本地代碼和本地窗口部件AWT把繪制屏幕交給本地窗口部件,Swing自己的組件繪制自己,因為Swing不依賴本地窗口部件,它可以拋棄AWT的最小公分母的方法并在每個平臺下實現(xiàn)每個窗口部件,從而創(chuàng)建一個比AWT更強大的開發(fā)工具包</p><p>  從最開始Java就提供了構(gòu)建跨平臺的窗口GUI應(yīng)用程序庫,從AWT,Swing到現(xiàn)在的SWT和JFace。最初的工具包能力微弱,但是后

43、來提供的工具包認識到之前工具包的缺點并取得了巨大的進步。SWT和JFace不僅使Java成為一個構(gòu)建桌面應(yīng)用程序的可行的選擇,也使之成為一個具有優(yōu)勢的開發(fā)平臺。盡管過去對得到輕便和強大的Java系統(tǒng)的嘗試必然意味著接受它在GUI方面的缺點,如今這個不足已經(jīng)不存在了,Java終于可以統(tǒng)領(lǐng)它在桌面計算應(yīng)用方面的位置了。</p><p>  2 .4.3 Java mail</p><p>  

44、想將郵件工具結(jié)合到您獨立于平臺的 Java 解決方案中嗎?再沒有比 JavaMail API 更合適的了,它提供了個獨立于協(xié)議的模塊,能用于 IMAP、POP、SMTP、MIME 和其它涉及因特網(wǎng)的消息傳遞協(xié)議?,F(xiàn)在,有了 JavaBeans Activation Framework (JAF)的支持,您的應(yīng)用程序經(jīng)由 JavaMail API 就能啟用郵件功能啦。</p><p>  第3章 系統(tǒng)總體設(shè)計<

45、;/p><p>  3 .1 系統(tǒng)功能模塊劃分</p><p>  模塊分析是描述系統(tǒng)需求的一個過程,需要將需求分析中的感性描述進行抽象,提取出要實現(xiàn)的功能,這是整個系統(tǒng)開發(fā)的一個關(guān)鍵過程。</p><p>  模塊分析的第一步,是描述Email客戶端的功能,以此確定系統(tǒng)的功能需求。本Email 客戶端對任何一個用戶都是普通用戶,無管理員設(shè)置,對每一個用戶都具有普通郵箱

46、所具有的收取、發(fā)送郵件的功能,因此根據(jù)用戶操作需求,將系統(tǒng)劃分為如下功能,并對其模塊的劃分和功能進行描述.整個系統(tǒng)的模塊結(jié)構(gòu)如圖3.1所示,此圖將Email客戶端劃分為三大模塊,這些模塊又是由若干個子模塊構(gòu)成的,形成一個結(jié)構(gòu)緊湊功能明確完整,子模塊的劃分見3.2 系統(tǒng)具體功能模塊的基本介紹。</p><p><b>  圖3.1</b></p><p>  3 .2系

47、統(tǒng)具體功能模塊基本介紹</p><p>  本部分主要介紹Email客戶端的一些基本功能,主要描述了收件箱、發(fā)件箱、和通訊錄所具有的功能,詳細設(shè)計見第4章內(nèi)容。</p><p>  3 .2.1 發(fā)件箱</p><p>  發(fā)件箱可以通過用戶設(shè)置發(fā)送用戶所需要的郵件信息,本頁面可以實現(xiàn)查看已保存郵件信息、重發(fā)已發(fā)郵件、轉(zhuǎn)發(fā)所收郵件、郵件標(biāo)記、編輯郵件、新建郵件、刪除

48、郵件和打印郵件、發(fā)送,抄送、密送、發(fā)送附件、存儲郵件、未存儲提示等功能,具體功能圖如圖3.2.1</p><p><b>  圖3.2.1</b></p><p>  3 .2.2 收件箱</p><p>  收件箱可以通過用戶設(shè)置收取用戶所需要的郵件信息,本頁面可以實現(xiàn)查看所收取的郵件信息、轉(zhuǎn)發(fā)郵件、群發(fā)郵件、郵件標(biāo)記(標(biāo)記已讀和未讀)、編輯

49、和存儲郵件、刪除郵件和打印郵件等功能,具體功能圖如圖3.2.2</p><p><b>  圖3.2.2</b></p><p>  3 .2.3 通訊錄</p><p>  通訊錄可以存儲用戶的好友信息,可以方便用戶完成對郵件信息的發(fā)送,尤其是轉(zhuǎn)發(fā)和群組發(fā)送功能,通訊錄的存在在很大程度上方便了使用系統(tǒng)的用戶。本通訊錄可以實現(xiàn)查看好友、增加好友

50、、刪除好友、編輯好友信息、刪除好友信息等功能,本系統(tǒng)還可以建立多個通訊錄,每個通訊錄都可以對所存用戶進行分組,以便方便郵件的發(fā)送,存儲通訊錄的文件還可以轉(zhuǎn)存,即修改當(dāng)前通訊錄的存放位置,其基本功能圖如圖3.2.3</p><p><b>  圖3.2.3</b></p><p>  第4章 系統(tǒng)詳細設(shè)計及系統(tǒng)實現(xiàn)</p><p>  4 .1

51、章節(jié)內(nèi)容總體介紹</p><p>  系統(tǒng)分析完成后,進入系統(tǒng)的設(shè)計階段這是整個系統(tǒng)實現(xiàn)過程中非常重要的一個階段。本章節(jié)描述了系統(tǒng)設(shè)計的詳細過程和內(nèi)容及實現(xiàn)過程。</p><p>  4 .2各模塊功能詳細設(shè)計</p><p>  4 .2.1 發(fā)送郵件功能的實現(xiàn)</p><p>  4 .2.1.1 發(fā)送普通郵件功能</p>

52、<p>  實現(xiàn)此功能需要引入java mail 工具包中的以下包</p><p>  import javax.mail.*;</p><p>  import javax.mail.internet.*;</p><p>  構(gòu)造sendMail類的主要代碼如下</p><p>  public class sendMail {

53、</p><p>  private String SMTP,mailFrom,mailTo,mailCC,mailTitle,mailBody,mailEncode;</p><p>  private String userName,userPass;</p><p>  private Object[] attachFileList;</p>&

54、lt;p>  private boolean isAuthentic = false;</p><p>  public sendMail(){</p><p>  //初始化參數(shù)代碼段</p><p>  this.SMTP = "";</p><p>  this.mailFrom ="";&

55、lt;/p><p>  this.mailTo = "";</p><p>  this.mailCC = "";</p><p>  this.mailTitle = "";</p><p>  this.mailBody = "";</p><

56、p>  this.mailEncode = "BIG5";</p><p><b>  }</b></p><p>  //為用戶提供參數(shù)設(shè)置接口</p><p>  //在本系統(tǒng)中通過以下方法實現(xiàn)對用戶寫入的信息加以傳遞</p><p>  public void setFrom(String

57、 from){this.mailFrom = from;}</p><p>  public void setTo(String to){this.mailTo = to;}</p><p>  public void setCC(String cc){this.mailCC = cc;}</p><p>  public void setBody(String b

58、ody){this.mailBody = body;}</p><p>  public void setTitle(String title){this.mailTitle = title;}</p><p>  public void setSMTP(String smtp){this.SMTP = smtp;}</p><p>  public void se

59、tUserName(String userName){this.userName = userName;}</p><p>  public void setPassword(String pass){this.userPass = pass;}</p><p>  public void setAttachFile(Object[] fileListAry){</p>&l

60、t;p>  this.attachFileList = fileListAry;</p><p><b>  }</b></p><p>  //設(shè)置文字編碼代碼如下</p><p>  public void setEncode(String encode){this.mailEncode = encode;</p>&l

61、t;p>  public int send(boolean hasSMTPAuth){</p><p>  this.isAuthentic = hasSMTPAuth;//檢查參數(shù)是否安全</p><p>  if(!checkParameters(isAuthentic)){</p><p><b>  return 1;</b>&l

62、t;/p><p><b>  }else{</b></p><p>  Properties prop = new Properties();//設(shè)定SMTP Server</p><p>  prop.put("mail.smtp.host",this.SMTP);</p><p>  Session

63、mailConn = Session.getDefaultInstance(prop,null);</p><p>  Message msg = new MimeMessage(mailConn);</p><p>  try{ </p><p>  msg.setHeader("Content-Transfer-En

64、coding",this.mailEncode);</p><p>  reEncode();</p><p>  //設(shè)置郵件的地址和郵件的編碼</p><p>  msg.setFrom(new InternetAddress(this.mailFrom));</p><p>  //Set reciever e-mail ad

65、dress and nickname</p><p>  msg.setRecipient(Message.RecipientType.TO, </p><p>  new InternetAddress(this.mailTo)); </p><p>  if(this.mailCC.trim().length()!=0){</p><p&g

66、t;  msg.setRecipient(Message.RecipientType.CC,</p><p>  new InternetAddress(this.mailCC));</p><p><b>  }</b></p><p><b>  //設(shè)定信件標(biāo)題</b></p><p>  i

67、f(this.mailTitle.trim().length()==0){ </p><p>  msg.setSubject("[無標(biāo)題信件]");</p><p><b>  }else{</b></p><p>  msg.setSubject(this.mailTitle);</p><p>

68、<b>  }</b></p><p>  Multipart mp = new MimeMultipart();</p><p>  MimeBodyPart mbpBody = new MimeBodyPart();</p><p>  mbpBody.setContent(this.mailBody+ this.mailEncode);&

69、lt;/p><p>  MimeBodyPart mbpFile;</p><p>  for(int i=0;i<attachFileList.length;i++){</p><p>  String fullPath = this.toBIG5(attachFileList[i].toString());</p><p>  mbpF

70、ile = new MimeBodyPart();</p><p>  FileDataSource fds = new FileDataSource(fullPath);</p><p>  mbpFile.setDataHandler(new DataHandler(fds));</p><p>  mbpFile.setFileName(fds.getName

71、());</p><p>  mp.addBodyPart(mbpFile);</p><p><b>  }</b></p><p>  mp.addBodyPart(mbpBody); //將內(nèi)容加入</p><p>  msg.setContent(mp);</p><p>  if(isA

72、uthentic){ //送信</p><p>  prop.put("mail.smtp.auth",isAuthentic);</p><p>  Transport trans = mailConn.getTransport("smtp");</p><p><b>  try{</b></p

73、><p>  trans.connect(this.SMTP,this.userName,this.userPass);</p><p>  trans.sendMessage(msg,msg.getAllRecipients());</p><p><b>  return 0;</b></p><p>  }catch(

74、Exception ex){</p><p>  ex.printStackTrace();</p><p><b>  return 2;</b></p><p><b>  }finally{</b></p><p>  trans.close();</p><p>&l

75、t;b>  }</b></p><p><b>  }else{</b></p><p><b>  try{</b></p><p>  Transport.send(msg);</p><p><b>  return 0;</b></p>

76、<p>  }catch(SendFailedException ex){</p><p>  System.out.println(ex.toString());</p><p><b>  return 3;</b></p><p><b>  }</b></p><p><b&

77、gt;  }</b></p><p>  }catch(Exception ex){</p><p>  ex.printStackTrace();</p><p><b>  return 4;</b></p><p><b>  }</b></p><p>&

78、lt;b>  }</b></p><p><b>  }</b></p><p>  private boolean checkParameters(boolean hasSMTPAuth){</p><p>  if(SMTP.trim().length()==0 || mailFrom.trim().length()==0

79、 </p><p>  || mailTo.trim().length()==0)</p><p>  return false;</p><p><b>  else</b></p><p>  if(hasSMTPAuth){</p><p>  if(this.userName.trim()

80、.length()==0)</p><p>  return false;</p><p><b>  else</b></p><p>  return true;</p><p><b>  }else{</b></p><p>  return true;</p&

81、gt;<p><b>  }</b></p><p><b>  }</b></p><p>  private void reEncode(){</p><p>  if(this.mailEncode.toUpperCase()=="BIG5"){</p><p&g

82、t;  this.mailFrom = toBIG5(mailFrom);</p><p>  this.mailTo = toBIG5(mailTo);</p><p>  this.mailTitle = toBIG5(mailTitle);</p><p>  this.mailBody = toBIG5(mailBody);</p><p

83、>  }else if(this.mailEncode.toUpperCase()=="UTF8"){</p><p>  this.mailFrom = toUTF8(mailFrom);</p><p>  this.mailTo = toUTF8(mailTo);</p><p>  this.mailTitle = toUTF8(m

84、ailTitle);</p><p>  this.mailBody = toUTF8(mailBody);</p><p><b>  }</b></p><p><b>  }</b></p><p>  private String toUTF8(String str){</p>

85、<p><b>  try {</b></p><p>  str = MimeUtility.encodeText(str,"UTF-8", "B");</p><p>  return str;</p><p>  } catch (Exception ex){</p>&l

86、t;p>  return str;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  圖4.2.1.1 新建郵件</p><p>  要發(fā)送郵件之需要使用已經(jīng)

87、建好的sendMail類即可,功能代碼如下:</p><p>  sendMail mail=new sendmail();</p><p>  mail.setMailTo(****);</p><p>  mail.setMailFrom(****);</p><p>  mailsend();</p><p> 

88、 4 .2.1.2 郵件附件的功能實現(xiàn)</p><p>  此功能實現(xiàn)代碼如下:</p><p>  public class AttachExample {</p><p>  public static void main (String args[]) </p><p>  throws Exception {</p>&

89、lt;p>  String host = args[0];</p><p>  String from = args[1];</p><p>  String to = args[2];</p><p>  String fileAttachment = args[3];</p><p><b>  // 獲得系統(tǒng)參數(shù)<

90、/b></p><p>  Properties props = System.getProperties();</p><p>  //設(shè)置郵件的服務(wù)器</p><p>  props.put("mail.smtp.host", host); </p><p>  // 獲得Session</p>&

91、lt;p>  Session session = Session.getInstance(props, null);</p><p>  MimeMessage message = new MimeMessage(session); // Define message</p><p>  message.setFrom(new InternetAddress(from));</

92、p><p>  message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));</p><p>  message.setSubject("Hello JavaMail Attachment");</p><p>  MimeBodyPart messageBodyPar

93、t =new MimeBodyPart();// create the message part</p><p>  messageBodyPart.setText("Hi");//fill message</p><p>  Multipart multipart = new MimeMultipart(); multipart.addBodyPart(me

94、ssageBodyPart);</p><p>  // Part two is attachment messageBodyPart = new MimeBodyPart();</p><p>  DataSource source = new FileDataSource(fileAttachment);</p><p>  messageBodyP

95、art.setDataHandler(new DataHandler(source));</p><p>  messageBodyPart.setFileName(fileAttachment);</p><p>  multipart.addBodyPart(messageBodyPart);</p><p>  // 將多個附件加入信件中</p>

96、<p>  message.setContent(multipart);</p><p>  // 發(fā)送帶附件的郵件,此功能代碼結(jié)束</p><p>  Transport.send( message );</p><p><b>  }</b></p><p>  4 .2.2 收取郵件功能的實現(xiàn)</

97、p><p>  郵件的收取可以使用java Mail API的方法,主要的操作過程為:獲取javax.mail.Session實例,并進而獲得javax.mail.Store實例。利用javax.mail.Store實例獲得缺省收件箱(INBOX)javax.mail.Folder實例。使用javax.mail.Folder對象提取新郵件,存儲為javax.mail.Message對象數(shù)組。創(chuàng)建javax.mail.

98、FetchProfile以(潛在地)優(yōu)化對特定郵件組成成分的提取。這里的javax.mail.FetchProfile類提供郵件協(xié)議提供者可選參數(shù),其目的是更有效地實現(xiàn)郵件組成成分的預(yù)提取</p><p>  此功能的主要代碼如下:</p><p>  String pers = null;</p><p>  String addr = null;</p&g

99、t;<p>  if(a instanceof InternetAddress &&((pers=((InternetAddress)a).getPersonal())!=null))</p><p>  addr=pers+" "+"<"+((InternetAddress)a).getAddress()+">"

100、;;</p><p><b>  else</b></p><p>  addr = a.toString();</p><p>  return addr;</p><p>  Session mailsession=Session.getInstance(System.getProperties(),null);&l

101、t;/p><p>  mailsession.setDebug(false);</p><p>  Store store=mailsession.getStore(protocol);//protocol為連接協(xié)議,IMAP或是POP</p><p>  store.connect(mailhost,-1,user,passwd);//mailhost主機,user為

102、用戶名,passwd為密碼</p><p>  Folder folder = store.getFolder("INBOX");</p><p><b>  try </b></p><p><b>  { </b></p><p>  folder.open(Folder.R

103、EAD_WRITE);</p><p>  } catch (MessagingException ex) </p><p><b>  {</b></p><p>  folder.open(Folder.READ_ONLY);</p><p><b>  }</b></p><

104、;p>  Message message[]=folder.getMessages();</p><p>  FetchProfile fp=new FetchProfile();</p><p>  fp.add(FetchProfile.Item.ENVELOPE);</p><p>  fp.add(FetchProfile.Item.FLAGS);&l

105、t;/p><p>  fp.add("X-Mailer");</p><p>  folder.fetch(message,fp);</p><p>  int id=0,j=0;</p><p>  for(int i=0;i<request.getParameter("id").length();

106、i++)//假設(shè)要閱讀第ID個郵件。</p><p>  id=id*10+(request.getParameter("id").charAt(i)-48);</p><p>  for(j=0;j<id;j++);</p><p>  message[j].setFlag(Flags.Flag.SEEN,true);</p>

107、<p>  out.println(“主題:”+message[j].getSubject());</p><p>  String from=new String();Address[] fr=message[j].getFrom();if(fr!=null){ boolean tf=true;</p><p>  for(int i=0;i<fr.lengt

108、h;i++)</p><p>  from=from+getDisplayAddress(fr);</p><p><b>  }</b></p><p>  out.println(“from”+from+);</p><p>  Object o=message[j].getContent();</p>

109、<p>  if (message[j].isMimeType("text/plain")) //就可直接讀出了。</p><p>  out.println((String)o+" ");</p><p>  else if(message[j].isMimeType("multipart/*"))</p>

110、;<p>  { Multipart mp=(Multipart)o;Part part=mp.getBodyPart(0);String msg=(String)part.getContent();StringBuffer buf=new StringBuffer(msg.length()+6);char ch=' ';for(int i=0;i<msg.length();i++)//若遇

111、到換行就轉(zhuǎn)為<br></p><p>  { ch=msg.charAt(i);if(ch=='\n')buf.append("<br>");else buf.append(ch);}out.println(buf.toString());</p><p><b>  }</b></p>

112、<p><b>  else</b></p><p>  out.println("現(xiàn)在還無法顯示:"+message[j].getContentType());</p><p>  folder.close(true);</p><p>  store.close();</p><p>

113、  String pers = null;</p><p>  String addr = null;</p><p>  if(a instanceof InternetAddress &&((pers=((InternetAddress)a).getPersonal())!=null))</p><p>  addr=pers+" &q

114、uot;+"<"+((InternetAddress)a).getAddress()+">";</p><p><b>  else</b></p><p>  addr = a.toString();</p><p>  return addr;</p><p>  

115、Session mailsession=Session.getInstance(System.getProperties(),null);</p><p>  mailsession.setDebug(false);</p><p>  Store store=mailsession.getStore(protocol);//protocol為連接協(xié)議,IMAP或是POP</p>

116、;<p>  store.connect(mailhost,-1,user,passwd);//mailhost主機,user為用戶名,passwd為密碼</p><p>  Folder folder = store.getFolder("INBOX");</p><p><b>  try </b></p><

117、p><b>  { </b></p><p>  folder.open(Folder.READ_WRITE);</p><p>  } catch (MessagingException ex) </p><p><b>  {</b></p><p>  folder.open(Folde

118、r.READ_ONLY);</p><p><b>  }</b></p><p>  Message message[]=folder.getMessages();</p><p>  FetchProfile fp=new FetchProfile();</p><p>  fp.add(FetchProfile.I

119、tem.ENVELOPE);</p><p>  fp.add(FetchProfile.Item.FLAGS);</p><p>  fp.add("X-Mailer");</p><p>  folder.fetch(message,fp);</p><p>  int id=0,j=0;</p><

120、;p>  for(int i=0;i<request.getParameter("id").length();i++)//假設(shè)要閱讀第ID個郵件。</p><p>  id=id*10+(request.getParameter("id").charAt(i)-48);</p><p>  for(j=0;j<id;j++);<

121、;/p><p>  message[j].setFlag(Flags.Flag.SEEN,true);</p><p>  out.println(“主題:”+message[j].getSubject());</p><p>  String from=new String();Address[] fr=message[j].getFrom();if(fr!=nu

122、ll){ boolean tf=true;</p><p>  for(int i=0;i<fr.length;i++)</p><p>  from=from+getDisplayAddress(fr);</p><p><b>  }</b></p><p>  out.println(“from”+fro

123、m+);</p><p>  Object o=message[j].getContent();</p><p>  if (message[j].isMimeType("text/plain")) //就可直接讀出了。</p><p>  out.println((String)o+" ");</p><

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論