影音先锋男人资源在线观看,精品国产日韩亚洲一区91,中文字幕日韩国产,2018av男人天堂,青青伊人精品,久久久久久久综合日本亚洲,国产日韩欧美一区二区三区在线

基于JAVA GUI的電子郵件客戶端軟件的設(shè)計(jì)與實(shí)現(xiàn)

上傳人:仙*** 文檔編號(hào):28631373 上傳時(shí)間:2021-09-04 格式:DOC 頁(yè)數(shù):42 大小:1.05MB
收藏 版權(quán)申訴 舉報(bào) 下載
基于JAVA GUI的電子郵件客戶端軟件的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
第1頁(yè) / 共42頁(yè)
基于JAVA GUI的電子郵件客戶端軟件的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
第2頁(yè) / 共42頁(yè)
基于JAVA GUI的電子郵件客戶端軟件的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
第3頁(yè) / 共42頁(yè)

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《基于JAVA GUI的電子郵件客戶端軟件的設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于JAVA GUI的電子郵件客戶端軟件的設(shè)計(jì)與實(shí)現(xiàn)(42頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、利用Java GUI和java mail實(shí)現(xiàn)的email客戶端 2008屆 分類號(hào):TP311 單位代碼:10452 學(xué)士學(xué)位畢業(yè)設(shè)計(jì)(論文) E M A I L客 戶 端 ( Java GUI ) 姓 名 于 立 興 學(xué) 號(hào) 200412130206 年 級(jí) 2004級(jí) 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)  系(院) 信 息 學(xué) 院  

2、 指導(dǎo)教師 張 雪 飛      THE MANAGEMENT SYSTEM OF VEHICLES BASED ON VISUALFOXPRO by Y u L i x i n g Supervisor: Zhang Xuefei April 2008 誠(chéng) 信 聲 明 本人呈交給臨沂師范學(xué)院的這篇畢業(yè)論文,除了所注參考文獻(xiàn)和世所公認(rèn)的文獻(xiàn)外,全部是本人在指導(dǎo)老師指導(dǎo)下的設(shè)計(jì)成果。 學(xué)生簽名:于立興 日 期:20

3、080426 經(jīng)檢查該畢業(yè)設(shè)計(jì)(論文)為獨(dú)立完成,不存在抄襲現(xiàn)象。 指導(dǎo)老師簽名: 日 期: 摘 要 本系統(tǒng)是用 java 語(yǔ)言實(shí)現(xiàn)的一個(gè) Email客戶端,主要用到 java GUI 圖形界面設(shè)計(jì)和 java mail 工具包, 它適用于所有用戶,無(wú)管理員設(shè)置,可以實(shí)現(xiàn)網(wǎng)絡(luò)郵箱的郵件發(fā)送和郵件收取的基本功能,還具有通訊錄的存儲(chǔ)功能,針對(duì)用戶的需求,本Email客戶端具有以下兩大模塊: 1.基本設(shè)置模塊; 此模

4、塊主要包括用戶設(shè)置和郵箱設(shè)置兩大內(nèi)容: 1.1 用戶設(shè)置:主要設(shè)置用戶的一些基本信息,如用戶名,用戶密碼等設(shè)置 1.2 郵箱設(shè)置:主要設(shè)置郵箱服務(wù)器,SMTP,POP3等 2. Email功能模塊; 此模塊根據(jù)大眾用戶的需求劃分了以下三個(gè)部分: 2.1收取郵件功能; 2.2發(fā)送郵件功能; 2.3通訊錄功能; 該系統(tǒng)的開發(fā)過(guò)程為: 1.Email客戶端的需求分析; 2.Email客戶端的系統(tǒng)分析; 3.Email客戶端的功能模塊劃分劃分; 4.Email客戶端的數(shù)據(jù)庫(kù)設(shè)計(jì); 5.Email客戶端的界面設(shè)計(jì); 6.Email客戶端的功能模塊設(shè)計(jì)及代碼實(shí)現(xiàn) 關(guān)鍵字:ja

5、va,java GUI,java mail Abstract 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 the function of sending and accept

6、ing 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 1. The basic settings Two parts are followed: 1.1 Maintenance System Administrators basic information; 1.2 Studen

7、t response functions; 2. Email functions Three function will be available 2.1 Sending mails 2.2 Receiving mails 2.3 Address book The system development process : 1. Email client needs analysis; 2. Email client system analysis; 3. Email client function modules partition; 4. Email clien

8、t design; 5. Email client interface design; 6. Email client functional design and code modules to achieve Key word:java , java GUI ,java mail 目 錄 42 前 言 7 第1章 系統(tǒng)概述及系統(tǒng)分析 8 1.1系統(tǒng)概述 8 1.1.1基本設(shè)置模塊 8 1.1.2 Email功能模塊 8 1.2 需求分析 9 1.3 可行性分析 9 1.3.1技術(shù)可行性分析 9

9、1.3.2環(huán)境可行性分析 9 1.3.3經(jīng)濟(jì)可行性分析 9 第2章 系統(tǒng)開發(fā)基本介紹 10 2.1 選題背景與目的 10 2 .2 系統(tǒng)開發(fā)工具 10 2 .3 系統(tǒng)開發(fā)環(huán)境 10 2 .4開發(fā)技術(shù)概述 11 2 .4.1 J2EE概述 11 2 .4.2 Java GUI 11 2 .4.3 Java mail 12 第3章 系統(tǒng)總體設(shè)計(jì) 13 3 .1 系統(tǒng)功能模塊劃分 13 3 .2系統(tǒng)具體功能模塊基本介紹 14 3 .2.1 發(fā)件箱 14 3 .2.2 收件箱 14 3 .2.3 通訊錄 15 第4章 系統(tǒng)詳細(xì)設(shè)計(jì)及系統(tǒng)實(shí)現(xiàn) 16 4 .1 章節(jié)內(nèi)容總

10、體介紹 16 4 .2各模塊功能詳細(xì)設(shè)計(jì) 16 4 .2.1 發(fā)送郵件功能的實(shí)現(xiàn) 16 4 .2.1.1 發(fā)送普通郵件功能 17 4 .2.1.2 郵件附件的功能實(shí)現(xiàn) 22 4 .2.2 收取郵件功能的實(shí)現(xiàn) 23 4 .2.3 通訊錄功能的實(shí)現(xiàn) 30 4 .2.4其他功能 32 4 .2.4.1 其他界面實(shí)現(xiàn)與通訊錄的連接功能 32 4 .2.4.2 郵件未存儲(chǔ)對(duì)用戶提示功能 32 4 .2.4.3 復(fù)制、刪除郵件功能 34 4 .2.4.4 用戶信息設(shè)置功能 35 結(jié)束語(yǔ) 38 謝 辭 39 參考文獻(xiàn) 40 前 言 郵件系統(tǒng)是一套單獨(dú)的系統(tǒng),要有自己的

11、服務(wù)器,在郵件系統(tǒng)中可以設(shè)多個(gè)域,每個(gè)域中可以設(shè)多個(gè)用戶,比如說(shuō)我買了anymacro或快客的郵件系統(tǒng),可以進(jìn)行多項(xiàng)設(shè)置.它的數(shù)據(jù)是放在自己的服務(wù)器上. 隨著信息技術(shù)的提高,網(wǎng)絡(luò)的普及于發(fā)展,越來(lái)越多的網(wǎng)絡(luò)工具隨之產(chǎn)生出來(lái),網(wǎng)絡(luò)郵箱就是其中之一,它可以通過(guò)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)人們之間的通信,可以給人們的工作帶來(lái)極大的方便,同時(shí)也縮短了人與人之間的距離,使人們?cè)谕ㄐ派闲枰ㄙM(fèi)的時(shí)間更短。 該Email客戶端不僅僅具有網(wǎng)絡(luò)郵箱的功能,它可以讓用戶綁定多個(gè)郵箱,可以說(shuō)是多個(gè)網(wǎng)絡(luò)郵箱的公共接口,不進(jìn)方便了人們的工作,還做到了有效利用網(wǎng)絡(luò)的信息資源,極大的提高人們的工作效率,減少了很多的工作量。因此它應(yīng)該是能

12、夠得到用戶歡迎的一個(gè)系統(tǒng)。 第1章 系統(tǒng)概述及系統(tǒng)分析 1.1系統(tǒng)概述 隨著信息技術(shù)的提高,網(wǎng)絡(luò)的普及于發(fā)展,越來(lái)越多的網(wǎng)絡(luò)工具隨之產(chǎn)生出來(lái),網(wǎng)絡(luò)郵箱就是其中之一,它可以通過(guò)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)人們之間的通信,可以給人們的工作帶來(lái)極大的方便,同時(shí)也縮短了人與人之間的距離,使人們?cè)谕ㄐ派闲枰ㄙM(fèi)的時(shí)間更短。該Email客戶端不僅僅具有網(wǎng)絡(luò)郵箱的功能,它可以讓用戶綁定多個(gè)郵箱,可以說(shuō)是多個(gè)網(wǎng)絡(luò)郵箱的公共接口,不進(jìn)方便了人們的工作,還做到了有效利用網(wǎng)絡(luò)的信息資源,極大的提高人們的工作效率,減少了很多的工作量。該系統(tǒng)的功能模塊主要由以下部

13、分組成: 1.1.1基本設(shè)置模塊 該模塊可以完成此用戶設(shè)置和郵箱設(shè)置兩大內(nèi)容,其中用戶設(shè)置可以完成用戶的一些基本信息的設(shè)置,包括用戶名、用戶密碼、聯(lián)系方式、郵政編碼、通訊地址、郵箱地址,并可以對(duì)其進(jìn)行存儲(chǔ)、瀏覽、查看、刪除、修改、打印等操作。郵箱設(shè)置可以完成對(duì)所使用郵箱的郵箱服務(wù)器、SMTP、POP3的一些設(shè)置,也可以對(duì)這些設(shè)置進(jìn)行存儲(chǔ)、瀏覽、查看、刪除、修改等操作。 1.1.2 Email功能模塊 該模塊可以完成網(wǎng)絡(luò)郵箱的收取郵件、發(fā)送郵件、保存郵件的功能,并可以對(duì)這些郵件進(jìn)行存儲(chǔ)、轉(zhuǎn)發(fā)、群發(fā)、瀏覽、刪除、修改、打印等操作。此模塊還具有通訊錄的功能,可以存儲(chǔ)其他網(wǎng)絡(luò)郵箱用戶的用戶名和

14、郵箱地址進(jìn)行存儲(chǔ)、修改等功能。 1.2 需求分析 Email客戶端的設(shè)計(jì)目的是要為了實(shí)現(xiàn)網(wǎng)絡(luò)郵箱的郵件發(fā)送和收取的以些功能。為使用郵箱的用戶提供便利。系統(tǒng)所面對(duì)的用戶可以是任何普通用戶,系統(tǒng)對(duì)于一個(gè)用戶只允許以一種身份登錄。用戶登錄后可以對(duì)系統(tǒng)進(jìn)行管理,其主要操作是維護(hù)個(gè)人的基本信息,對(duì)其信息進(jìn)行修改、存儲(chǔ)等操作。 將系統(tǒng)需求加以總結(jié),得出系統(tǒng)需求如下: l 系統(tǒng)可以運(yùn)行任何操作系統(tǒng)平臺(tái)上,并具有友好的用戶界面。 l 系統(tǒng)用戶類型為:任何普通用戶。 1.3 可行性分析 1.3.1技術(shù)可行性分析 Java很有雄心的宣言--"writeonce,runanywhere"許諾:一

15、個(gè)具有下拉菜單,命令按鈕,滾動(dòng)條以及其他常見的GUI控件的應(yīng)用程序?qū)⒛軌蛟诟鞣N操作系統(tǒng)上運(yùn)行而不必重新編譯成針對(duì)某一平臺(tái)的二進(jìn)制代碼,包括MicrosoftWindows,Sun’sownSolaris,Apple’sMacOS以及Linux。 1.3.2環(huán)境可行性分析 Java很有雄心的宣言--"writeonce,runanywhere"許諾:一個(gè)具有下拉菜單,命令按鈕,滾動(dòng)條以及其他常見的GUI控件的應(yīng)用程序?qū)⒛軌蛟诟鞣N操作系統(tǒng)上運(yùn)行而不必重新編譯成針對(duì)某一平臺(tái)的二進(jìn)制代碼,包括MicrosoftWindows,Sun’sownSolaris,Apple’sMacOS以及Linux。

16、也就是說(shuō)本系統(tǒng)可以跨平臺(tái)使用. 1.3.3經(jīng)濟(jì)可行性分析 開發(fā)此系統(tǒng)所用軟件可在網(wǎng)絡(luò)上下載使用。 第2章 系統(tǒng)開發(fā)基本介紹 2.1 選題背景與目的 隨著信息技術(shù)的提高,網(wǎng)絡(luò)的普及于發(fā)展,越來(lái)越多的網(wǎng)絡(luò)工具隨之產(chǎn)生出來(lái),網(wǎng)絡(luò)郵箱就是其中之一,它可以通過(guò)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)人們之間的通信,可以給人們的工作帶來(lái)極大的方便,同時(shí)也縮短了人與人之間的距離,使人們?cè)谕ㄐ派闲枰ㄙM(fèi)的時(shí)間更短。該Email客戶端不僅僅具有網(wǎng)絡(luò)郵箱的功能,它可以讓用戶綁定多個(gè)郵箱,可以說(shuō)是多個(gè)網(wǎng)絡(luò)郵箱的公共接口,不進(jìn)方便了人們的工作,還做到了有效利用網(wǎng)絡(luò)的信息資源,極大的

17、提高人們的工作效率,減少了很多的工作量。正是因?yàn)樵撓到y(tǒng)所具有的這些優(yōu)點(diǎn)才開發(fā)了此系統(tǒng)。 2 .2 系統(tǒng)開發(fā)工具 本系統(tǒng)在開發(fā)過(guò)程中使用java GUI和java中java mail工具包實(shí)現(xiàn)了email的收發(fā)和一些基本的管理功能。 2 .3 系統(tǒng)開發(fā)環(huán)境 在軟件環(huán)境方面,系統(tǒng)的開發(fā)環(huán)境如下: 操作系統(tǒng):S use Linux; 開發(fā)平臺(tái):java; 2 .4開發(fā)技術(shù)概述 2 .4.1 J2EE概述 J2EE是美國(guó)Sun公司剛剛推出的一種全新概念的模型,與傳統(tǒng)的互聯(lián)網(wǎng)應(yīng)用程序模型相比有著不可比擬的優(yōu)勢(shì)。 目前,Java 2平臺(tái)有3個(gè)版本,它們是適用于小型設(shè)

18、備和智能卡的Java 2平臺(tái)Micro版(Java 2 Platform Micro Edition,J2ME)、適用于桌面系統(tǒng)的Java 2平臺(tái)標(biāo)準(zhǔn)版(Java 2 Platform Standard Edition,J2SE)、適用于創(chuàng)建服務(wù)器應(yīng)用程序和服務(wù)的Java 2平臺(tái)企業(yè)版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一種利用Java 2平臺(tái)來(lái)簡(jiǎn)化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問(wèn)題的體系結(jié)構(gòu)。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺(tái)或Java 2平臺(tái)的標(biāo)準(zhǔn)版,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),例如"編寫一次、隨處運(yùn)行"的特

19、性、方便存取數(shù)據(jù)庫(kù)的JDBC(Java DataBase Connectivity)應(yīng)用程序接口(API, Application Program Interface)技術(shù)以及能夠在Internet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,同時(shí)還提供了對(duì) EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技術(shù)的全面支持。其最終目的就是成為一個(gè)能夠使企業(yè)開發(fā)者大幅縮短投放市場(chǎng)時(shí)間的體系結(jié)構(gòu)。 2 .4.2 Java GUI 當(dāng)Java在1995年的春天第一次發(fā)布的時(shí)候,它包含了一個(gè)叫AWT(AbstractWi

20、ndowingToolkit)的庫(kù),用來(lái)構(gòu)建圖形用戶界面應(yīng)用程序。Java很有雄心的宣言--"writeonce,runanywhere"許諾:一個(gè)具有下拉菜單,命令按鈕,滾動(dòng)條以及其他常見的GUI控件的應(yīng)用程序?qū)⒛軌蛟诟鞣N操作系統(tǒng)上運(yùn)行而不必重新編譯成針對(duì)某一平臺(tái)的二進(jìn)制代碼,包括MicrosoftWindows,Sun’sownSolaris,Apple’sMacOS以及Linux。 為了方便用Java構(gòu)建圖形用戶界面,Sun最初提供了一個(gè)在所有平臺(tái)下具有的獨(dú)特Java外觀的圖形界面庫(kù)。Sun在applet技術(shù)策略方面的首要伙伴Netscape提出applets應(yīng)該維持和運(yùn)行時(shí)平臺(tái)一樣

21、的外觀。他們希望applets在某一平臺(tái)下在顯示和行為上能夠像其他應(yīng)用程序一樣。 為了實(shí)現(xiàn)Netscape的"本地外觀"的目標(biāo),在JDK的第一個(gè)發(fā)布版中包含了AWT這個(gè)庫(kù)。AWT的缺省實(shí)現(xiàn)使用了"對(duì)等"機(jī)制,即每一個(gè)JavaGUI窗口部件都在底層的窗口系統(tǒng)中有一個(gè)對(duì)應(yīng)的組件。 例如,每一個(gè)java.awt.Button對(duì)象將在底層窗口系統(tǒng)中創(chuàng)建一個(gè)唯一對(duì)應(yīng)的button。當(dāng)用戶點(diǎn)擊那個(gè)按鈕的時(shí)候,事件將從本地實(shí)現(xiàn)庫(kù)傳送到Java虛擬機(jī)里,并且最終傳送到與java.awt.Button對(duì)象相關(guān)聯(lián)的邏輯。對(duì)等系統(tǒng)的實(shí)現(xiàn)以及Java組件與對(duì)等組件之間的交流的實(shí)現(xiàn)都隱藏在底層JVM實(shí)現(xiàn)中,Java

22、語(yǔ)言級(jí)的代碼仍然跨平臺(tái)。 于1997年JavaOne大會(huì)上提出并在1998年5月發(fā)布的JFC(JavaFoundationClasses)包含了一個(gè)新的使用Java窗口開發(fā)包。這個(gè)新的GUI組件叫做Swing,感覺(jué)到它是對(duì)AWT的升級(jí),并且看起來(lái)對(duì)Java占據(jù)計(jì)算機(jī)世界很有幫助。 盡管"Swing"僅僅是這個(gè)新組件的指代名稱,它一直持續(xù)使用到今天??赡苁且?yàn)檫@個(gè)名稱太貼切了,Swing嘗試著以以下幾種方式改變公認(rèn)的觀點(diǎn):AWT依賴對(duì)等架構(gòu),用Java代碼包裝本地窗口部件,Swing卻根本不使用本地代碼和本地窗口部件AWT把繪制屏幕交給本地窗口部件,Swing自己的組件繪制自己,因?yàn)镾win

23、g不依賴本地窗口部件,它可以拋棄AWT的最小公分母的方法并在每個(gè)平臺(tái)下實(shí)現(xiàn)每個(gè)窗口部件,從而創(chuàng)建一個(gè)比AWT更強(qiáng)大的開發(fā)工具包 從最開始Java就提供了構(gòu)建跨平臺(tái)的窗口GUI應(yīng)用程序庫(kù),從AWT,Swing到現(xiàn)在的SWT和JFace。最初的工具包能力微弱,但是后來(lái)提供的工具包認(rèn)識(shí)到之前工具包的缺點(diǎn)并取得了巨大的進(jìn)步。SWT和JFace不僅使Java成為一個(gè)構(gòu)建桌面應(yīng)用程序的可行的選擇,也使之成為一個(gè)具有優(yōu)勢(shì)的開發(fā)平臺(tái)。盡管過(guò)去對(duì)得到輕便和強(qiáng)大的Java系統(tǒng)的嘗試必然意味著接受它在GUI方面的缺點(diǎn),如今這個(gè)不足已經(jīng)不存在了,Java終于可以統(tǒng)領(lǐng)它在桌面計(jì)算應(yīng)用方面的位置了。 2 .4.3 J

24、ava mail 想將郵件工具結(jié)合到您獨(dú)立于平臺(tái)的 Java 解決方案中嗎?再?zèng)]有比 JavaMail API 更合適的了,它提供了個(gè)獨(dú)立于協(xié)議的模塊,能用于 IMAP、POP、SMTP、MIME 和其它涉及因特網(wǎng)的消息傳遞協(xié)議?,F(xiàn)在,有了 JavaBeans Activation Framework (JAF)的支持,您的應(yīng)用程序經(jīng)由 JavaMail API 就能啟用郵件功能啦。 第3章 系統(tǒng)總體設(shè)計(jì) 3 .1 系統(tǒng)功能模塊劃分 模塊分析是描述系統(tǒng)需求的一個(gè)過(guò)程,需要將需求分析中的感性描述進(jìn)行抽象,提

25、取出要實(shí)現(xiàn)的功能,這是整個(gè)系統(tǒng)開發(fā)的一個(gè)關(guān)鍵過(guò)程。 模塊分析的第一步,是描述Email客戶端的功能,以此確定系統(tǒng)的功能需求。本Email 客戶端對(duì)任何一個(gè)用戶都是普通用戶,無(wú)管理員設(shè)置,對(duì)每一個(gè)用戶都具有普通郵箱所具有的收取、發(fā)送郵件的功能,因此根據(jù)用戶操作需求,將系統(tǒng)劃分為如下功能,并對(duì)其模塊的劃分和功能進(jìn)行描述.整個(gè)系統(tǒng)的模塊結(jié)構(gòu)如圖3.1所示,此圖將Email客戶端劃分為三大模塊,這些模塊又是由若干個(gè)子模塊構(gòu)成的,形成一個(gè)結(jié)構(gòu)緊湊功能明確完整,子模塊的劃分見3.2 系統(tǒng)具體功能模塊的基本介紹。 Email客戶端 收件箱 發(fā)件箱 通訊錄

26、 圖3.1 3 .2系統(tǒng)具體功能模塊基本介紹 本部分主要介紹Email客戶端的一些基本功能,主要描述了收件箱、發(fā)件箱、和通訊錄所具有的功能,詳細(xì)設(shè)計(jì)見第4章內(nèi)容。 3 .2.1 發(fā)件箱 發(fā)件箱可以通過(guò)用戶設(shè)置發(fā)送用戶所需要的郵件信息,本頁(yè)面可以實(shí)現(xiàn)查看已保存郵件信息、重發(fā)已發(fā)郵件、轉(zhuǎn)發(fā)所收郵件、郵件標(biāo)記、編輯郵件、新建郵件、刪除郵件和打印郵件、發(fā)送,抄送、密送、發(fā)送附件、存儲(chǔ)郵件、未存儲(chǔ)提示等功能,具體功能圖如圖3.2.1 發(fā)件箱 發(fā)送已存郵件 查看保存郵件 新建郵件 重發(fā)郵件 打印郵件 刪除郵件 存儲(chǔ)郵件 編輯郵件 圖3.2

27、.1 3 .2.2 收件箱 收件箱可以通過(guò)用戶設(shè)置收取用戶所需要的郵件信息,本頁(yè)面可以實(shí)現(xiàn)查看所收取的郵件信息、轉(zhuǎn)發(fā)郵件、群發(fā)郵件、郵件標(biāo)記(標(biāo)記已讀和未讀)、編輯和存儲(chǔ)郵件、刪除郵件和打印郵件等功能,具體功能圖如圖3.2.2 收件箱 查看郵件 轉(zhuǎn)發(fā)郵件 群 轉(zhuǎn)發(fā)郵件 郵件標(biāo)記 打印郵件 刪除郵件 存儲(chǔ)郵件 編輯郵件 圖3.2.2 3 .2.3 通訊錄 通訊錄可以存儲(chǔ)用戶的好友信息,可以方便用戶完成對(duì)郵件信息的發(fā)送,尤其是轉(zhuǎn)發(fā)和群組發(fā)送功能,通訊錄的存在在很大程度上方便了使用系統(tǒng)的用戶。本通訊錄可以實(shí)現(xiàn)查看好友、增加好友、刪

28、除好友、編輯好友信息、刪除好友信息等功能,本系統(tǒng)還可以建立多個(gè)通訊錄,每個(gè)通訊錄都可以對(duì)所存用戶進(jìn)行分組,以便方便郵件的發(fā)送,存儲(chǔ)通訊錄的文件還可以轉(zhuǎn)存,即修改當(dāng)前通訊錄的存放位置,其基本功能圖如圖3.2.3 通訊錄 編輯通訊錄文件 增加新通訊錄 編輯好友信息 查看好友 增加好有 刪除好友 刪除好友 刪除通訊錄 圖3.2.3 第4章 系統(tǒng)詳細(xì)設(shè)計(jì)及系統(tǒng)實(shí)現(xiàn) 4 .1 章節(jié)內(nèi)容總體介紹 系統(tǒng)分析完成后,進(jìn)入系統(tǒng)的設(shè)計(jì)階段這是整個(gè)系統(tǒng)實(shí)現(xiàn)過(guò)程中非常重要的一個(gè)

29、階段。本章節(jié)描述了系統(tǒng)設(shè)計(jì)的詳細(xì)過(guò)程和內(nèi)容及實(shí)現(xiàn)過(guò)程。 4 .2各模塊功能詳細(xì)設(shè)計(jì) 4 .2.1 發(fā)送郵件功能的實(shí)現(xiàn) 4 .2.1.1 發(fā)送普通郵件功能 實(shí)現(xiàn)此功能需要引入java mail 工具包中的以下包 import javax.mail.*; import javax.mail.internet.*; 構(gòu)造sendMail類的主要代碼如下 public class sendMail { private String SMTP,mailFrom,mailTo,mailCC,mailTitle,mailBody,mailEncode; private

30、 String userName,userPass; private Object[] attachFileList; private boolean isAuthentic = false; public sendMail(){ //初始化參數(shù)代碼段 this.SMTP = ""; this.mailFrom =""; this.mailTo = ""; this.mailCC = ""; this.mailTitle = ""; this.mailBody = "";

31、 this.mailEncode = "BIG5"; } //為用戶提供參數(shù)設(shè)置接口 //在本系統(tǒng)中通過(guò)以下方法實(shí)現(xiàn)對(duì)用戶寫入的信息加以傳遞 public void setFrom(String from){this.mailFrom = from;} public void setTo(String to){this.mailTo = to;} public void setCC(String cc){this.mailCC = cc;} public void setBody(String body){this.mailBody = body;} publ

32、ic void setTitle(String title){this.mailTitle = title;} public void setSMTP(String smtp){this.SMTP = smtp;} public void setUserName(String userName){this.userName = userName;} public void setPassword(String pass){this.userPass = pass;} public void setAttachFile(Object[] fileListAry){ this.a

33、ttachFileList = fileListAry; } //設(shè)置文字編碼代碼如下 public void setEncode(String encode){this.mailEncode = encode; public int send(boolean hasSMTPAuth){ this.isAuthentic = hasSMTPAuth;//檢查參數(shù)是否安全 if(!checkParameters(isAuthentic)){ return 1; }else{ P

34、roperties prop = new Properties();//設(shè)定SMTP Server prop.put("mail.smtp.host",this.SMTP); Session mailConn = Session.getDefaultInstance(prop,null); Message msg = new MimeMessage(mailConn); try{ msg.setHeader("Content-Transfer-Enco

35、ding",this.mailEncode); reEncode(); //設(shè)置郵件的地址和郵件的編碼 msg.setFrom(new InternetAddress(this.mailFrom)); //Set reciever e-mail address and nickname msg.setRecipient(Message.RecipientType.TO, new InternetAddress(this.mailTo))

36、; if(this.mailCC.trim().length()!=0){ msg.setRecipient(Message.RecipientType.CC, new InternetAddress(this.mailCC)); } //設(shè)定信件標(biāo)題 if(this.mailTitle.trim().length()==0){ msg.setSubject("[無(wú)標(biāo)題信件]"); }e

37、lse{ msg.setSubject(this.mailTitle); } Multipart mp = new MimeMultipart(); MimeBodyPart mbpBody = new MimeBodyPart(); mbpBody.setContent(this.mailBody+ this.mailEncode); MimeBodyPart mbpFile; for(int i=0;i

38、{ String fullPath = this.toBIG5(attachFileList[i].toString()); mbpFile = new MimeBodyPart(); FileDataSource fds = new FileDataSource(fullPath); mbpFile.setDataHandler(new DataHandler(fds)); mbpFile.setFileName(fds.getName()); mp.addBodyPart(mbpFile); }

39、 mp.addBodyPart(mbpBody); //將內(nèi)容加入 msg.setContent(mp); if(isAuthentic){ //送信 prop.put("mail.smtp.auth",isAuthentic); Transport trans = mailConn.getTransport("smtp"); try{ trans.connect(this.SMTP,this.userName,this.userPass); trans.send

40、Message(msg,msg.getAllRecipients()); return 0; }catch(Exception ex){ ex.printStackTrace(); return 2; }finally{ trans.close(); } }else{ try{

41、 Transport.send(msg); return 0; }catch(SendFailedException ex){ System.out.println(ex.toString()); return 3; } } }catch(Exception ex){

42、 ex.printStackTrace(); return 4; } } } private boolean checkParameters(boolean hasSMTPAuth){ if(SMTP.trim().length()==0 || mailFrom.trim().length()==0 || mailTo.trim().length()==0) return false; else

43、 if(hasSMTPAuth){ if(this.userName.trim().length()==0) return false; else return true; }else{ return true; } } private void reEncode(){ if(this.mailEncode.toUp

44、perCase()=="BIG5"){ this.mailFrom = toBIG5(mailFrom); this.mailTo = toBIG5(mailTo); this.mailTitle = toBIG5(mailTitle); this.mailBody = toBIG5(mailBody); }else if(this.mailEncode.toUpperCase()=="UTF8"){ this.mailFrom = toUTF8(

45、mailFrom); this.mailTo = toUTF8(mailTo); this.mailTitle = toUTF8(mailTitle); this.mailBody = toUTF8(mailBody); } } private String toUTF8(String str){ try { str = MimeUtility.encodeText(str,"UTF-8", "B"); return

46、str; } catch (Exception ex){ return str; } } } 圖4.2.1.1 新建郵件 要發(fā)送郵件之需要使用已經(jīng)建好的sendMail類即可,功能代碼如下: sendMail mail=new sendmail(); mail.setMailTo(****); mail.setMailFrom(****); mailsend(); 4 .2.1.2 郵件附件的功能實(shí)現(xiàn) 此功能實(shí)現(xiàn)代碼如下: public class AttachExampl

47、e { public static void main (String args[]) throws Exception { String host = args[0]; String from = args[1]; String to = args[2]; String fileAttachment = args[3]; // 獲得系統(tǒng)參數(shù) Properties props = System.getProperties(); //設(shè)置郵件的服務(wù)器 props.put("mail.

48、smtp.host", host); // 獲得Session Session session = Session.getInstance(props, null); MimeMessage message = new MimeMessage(session); // Define message message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));

49、 message.setSubject("Hello JavaMail Attachment"); MimeBodyPart messageBodyPart =new MimeBodyPart();// create the message part messageBodyPart.setText("Hi");//fill message Multipart multipart = new MimeMultipart(); multipart.addBodyPart(messageBodyPart); // Part two i

50、s attachment messageBodyPart = new MimeBodyPart(); DataSource source = new FileDataSource(fileAttachment); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(fileAttachment); multipart.addBodyPart(messageBodyPart); // 將多個(gè)附件加

51、入信件中 message.setContent(multipart); // 發(fā)送帶附件的郵件,此功能代碼結(jié)束 Transport.send( message ); } 4 .2.2 收取郵件功能的實(shí)現(xiàn) 郵件的收取可以使用java Mail API的方法,主要的操作過(guò)程為:獲取javax.mail.Session實(shí)例,并進(jìn)而獲得javax.mail.Store實(shí)例。利用javax.mail.Store實(shí)例獲得缺省收件箱(INBOX)javax.mail.Folder實(shí)例。使用javax.mail.Folder對(duì)象提取新郵件,存儲(chǔ)為jav

52、ax.mail.Message對(duì)象數(shù)組。創(chuàng)建javax.mail.FetchProfile以(潛在地)優(yōu)化對(duì)特定郵件組成成分的提取。這里的javax.mail.FetchProfile類提供郵件協(xié)議提供者可選參數(shù),其目的是更有效地實(shí)現(xiàn)郵件組成成分的預(yù)提取 此功能的主要代碼如下: String pers = null; String addr = null; if(a instanceof InternetAddress &&((pers=((InternetAddress)a).getPersonal())!=null)) addr=pers+" "+"<"+((In

53、ternetAddress)a).getAddress()+">"; else addr = a.toString(); return addr; Session mailsession=Session.getInstance(System.getProperties(),null); mailsession.setDebug(false); Store store=mailsession.getStore(protocol);//protocol為連接協(xié)議,IMAP或是POP store.connect(mailhost,-1,user,passwd);

54、//mailhost主機(jī),user為用戶名,passwd為密碼 Folder folder = store.getFolder("INBOX"); try { folder.open(Folder.READ_WRITE); } catch (MessagingException ex) { folder.open(Folder.READ_ONLY); } Message message[]=folder.getMessages(); FetchProfile fp=new FetchProfile(); fp.add(FetchProfil

55、e.Item.ENVELOPE); fp.add(FetchProfile.Item.FLAGS); fp.add("X-Mailer"); folder.fetch(message,fp); int id=0,j=0; for(int i=0;i

56、ag.SEEN,true); out.println(“主題:”+message[j].getSubject()); String from=new String(); Address[] fr=message[j].getFrom(); if(fr!=null) { boolean tf=true; for(int i=0;i

57、 (message[j].isMimeType("text/plain")) //就可直接讀出了。 out.println((String)o+" "); else if(message[j].isMimeType("multipart/*")) { 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

58、i=0;i { ch=msg.charAt(i); if(ch==\n)buf.append("
"); else buf.append(ch); } out.println(buf.toString()); } else out.println("現(xiàn)在還無(wú)法顯示:"+message[j].getContentType()); folder.close(true); store.close(); String pers = null; String addr = null; i

59、f(a instanceof InternetAddress &&((pers=((InternetAddress)a).getPersonal())!=null)) addr=pers+" "+"<"+((InternetAddress)a).getAddress()+">"; else addr = a.toString(); return addr; Session mailsession=Session.getInstance(System.getProperties(),null); mailsession.setDebug(false); Store store=ma

60、ilsession.getStore(protocol);//protocol為連接協(xié)議,IMAP或是POP store.connect(mailhost,-1,user,passwd);//mailhost主機(jī),user為用戶名,passwd為密碼 Folder folder = store.getFolder("INBOX"); try { folder.open(Folder.READ_WRITE); } catch (MessagingException ex) { folder.open(Folder.READ_ONLY); } Message m

61、essage[]=folder.getMessages(); FetchProfile fp=new FetchProfile(); fp.add(FetchProfile.Item.ENVELOPE); fp.add(FetchProfile.Item.FLAGS); fp.add("X-Mailer"); folder.fetch(message,fp); int id=0,j=0; for(int i=0;i

62、eter("id").charAt(i)-48); for(j=0;j

63、); } out.println(“from”+from+); Object o=message[j].getContent(); if (message[j].isMimeType("text/plain")) //就可直接讀出了。 out.println((String)o+" "); else if(message[j].isMimeType("multipart/*")) { Multipart mp=(Multipart)o; Part part=mp.getBodyPart(0); String msg=(String)part.getContent();

64、StringBuffer buf=new StringBuffer(msg.length()+6); char ch= ; for(int i=0;i { ch=msg.charAt(i); if(ch==\n)buf.append("
"); else buf.append(ch); } out.println(buf.toString()); } else out.println("現(xiàn)在還無(wú)法顯示:"+message[j].getContentType()); folder.close(tr

65、ue); store.close(); 在Folder對(duì)象中可以用getMessageCount()和getUnreadMessageCount()方法來(lái)取得總共有多少封信和共有多少封信未讀。 但是如果我們需要在我們的java項(xiàng)目中增加對(duì)Hotmail郵箱(此郵箱有一個(gè)限制就是它并不提供POP3或者SMTP服務(wù),也就是說(shuō)一般的郵件客戶端工具無(wú)法使用這個(gè)郵箱)的支持,那往往會(huì)不知從什么地方開始入手,因?yàn)镾UN公司提供的java mail本身并不提供對(duì)除了POP3/IMAP以及SMTP外其他協(xié)議的支持。 如何解決此問(wèn)題呢? 但事實(shí)上,Java mail只是定義了一組平臺(tái)無(wú)

66、關(guān)、獨(dú)立于通訊協(xié)議的郵件程序框架,或者說(shuō)是接口,它是作為Java的可選包存在的。因此可以這樣說(shuō):Java Mail并不關(guān)心所使用的協(xié)議,不管是POP3、SMTP、IMAP當(dāng)然還有Hotmail用的HTTP協(xié)議。對(duì)于Java Mail的客戶端而言也是這樣的,下圖就是一個(gè)最簡(jiǎn)單的Java Mail結(jié)構(gòu)圖,通過(guò)Transport進(jìn)行郵件的發(fā)送,通過(guò)Store實(shí)現(xiàn)對(duì)郵件的收取,而不同協(xié)議的實(shí)現(xiàn),Java Mail里的概念叫做Provider,只需要根據(jù)Java Mail定義的接口實(shí)現(xiàn)自己的Provider即可。   為了實(shí)現(xiàn)通過(guò)Java Mail訪問(wèn)Hotmail郵箱,我們就需要架起Java Mail接口與Hotmail服務(wù)所提供的訪問(wèn)接口之間的橋梁。在這之前我們必須首先了解Hotmail所使用的接口協(xié)議。   Hotmail通過(guò)地址 h

展開閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!