歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

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

  • 資源ID:30468519       資源大小:1.05MB        全文頁數(shù):42頁
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

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

利用Java GUI和java mail實現(xiàn)的email客戶端2008屆 分類號:TP311 單位代碼:10452 學士學位畢業(yè)設計(論文)E M A I L客 戶 端 ( Java GUI )姓 名 于 立 興 學 號 200412130206 年 級 2004級 專 業(yè) 計算機科學與技術系(院) 信 息 學 院 指導教師 張 雪 飛 THE MANAGEMENT SYSTEM OF VEHICLES BASED ON VISUALFOXPRObyY u L i x i n gSupervisor: Zhang XuefeiApril 2008誠 信 聲 明本人呈交給臨沂師范學院的這篇畢業(yè)論文,除了所注參考文獻和世所公認的文獻外,全部是本人在指導老師指導下的設計成果。 學生簽名:于立興日 期:20080426經(jīng)檢查該畢業(yè)設計(論文)為獨立完成,不存在抄襲現(xiàn)象。 指導老師簽名:日 期:摘 要本系統(tǒng)是用 java 語言實現(xiàn)的一個 Email客戶端,主要用到 java GUI 圖形界面設計和 java mail 工具包, 它適用于所有用戶,無管理員設置,可以實現(xiàn)網(wǎng)絡郵箱的郵件發(fā)送和郵件收取的基本功能,還具有通訊錄的存儲功能,針對用戶的需求,本Email客戶端具有以下兩大模塊:1基本設置模塊;此模塊主要包括用戶設置和郵箱設置兩大內容:1.1 用戶設置:主要設置用戶的一些基本信息,如用戶名,用戶密碼等設置1.2 郵箱設置:主要設置郵箱服務器,SMTP,POP3等2.Email功能模塊;此模塊根據(jù)大眾用戶的需求劃分了以下三個部分:2.1收取郵件功能;2.2發(fā)送郵件功能;2.3通訊錄功能;該系統(tǒng)的開發(fā)過程為:1.Email客戶端的需求分析;2.Email客戶端的系統(tǒng)分析;3.Email客戶端的功能模塊劃分劃分;4.Email客戶端的數(shù)據(jù)庫設計;5.Email客戶端的界面設計;6.Email客戶端的功能模塊設計及代碼實現(xiàn)關鍵字:java,java GUI,java mailAbstractThis 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 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 follows1. The basic settingsTwo parts are followed:1.1 Maintenance System Administrators basic information; 1.2 Student response functions; 2. Email functionsThree function will be available2.1 Sending mails2.2 Receiving mails2.3 Address bookThe system development process : 1. Email client needs analysis; 2. Email client system analysis; 3. Email client function modules partition; 4. Email client 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)分析81.1系統(tǒng)概述81.1.1基本設置模塊81.1.2 Email功能模塊81.2 需求分析91.3 可行性分析91.3.1技術可行性分析91.3.2環(huán)境可行性分析91.3.3經(jīng)濟可行性分析9第2章 系統(tǒng)開發(fā)基本介紹102.1 選題背景與目的102 .2 系統(tǒng)開發(fā)工具102 .3 系統(tǒng)開發(fā)環(huán)境102 .4開發(fā)技術概述112 .4.1 J2EE概述112 .4.2 Java GUI112 .4.3 Java mail12第3章 系統(tǒng)總體設計133 .1 系統(tǒng)功能模塊劃分133 .2系統(tǒng)具體功能模塊基本介紹143 .2.1 發(fā)件箱143 .2.2 收件箱143 .2.3 通訊錄15第4章 系統(tǒng)詳細設計及系統(tǒng)實現(xiàn)164 .1 章節(jié)內容總體介紹164 .2各模塊功能詳細設計164 .2.1 發(fā)送郵件功能的實現(xiàn)164 .2.1.1 發(fā)送普通郵件功能174 .2.1.2 郵件附件的功能實現(xiàn)224 .2.2 收取郵件功能的實現(xiàn)234 .2.3 通訊錄功能的實現(xiàn)304 .2.4其他功能324 .2.4.1 其他界面實現(xiàn)與通訊錄的連接功能324 .2.4.2 郵件未存儲對用戶提示功能324 .2.4.3 復制、刪除郵件功能344 .2.4.4 用戶信息設置功能35結束語38謝 辭39參考文獻40前 言郵件系統(tǒng)是一套單獨的系統(tǒng),要有自己的服務器,在郵件系統(tǒng)中可以設多個域,每個域中可以設多個用戶,比如說我買了anymacro或快客的郵件系統(tǒng),可以進行多項設置.它的數(shù)據(jù)是放在自己的服務器上.隨著信息技術的提高,網(wǎng)絡的普及于發(fā)展,越來越多的網(wǎng)絡工具隨之產(chǎn)生出來,網(wǎng)絡郵箱就是其中之一,它可以通過網(wǎng)絡來實現(xiàn)人們之間的通信,可以給人們的工作帶來極大的方便,同時也縮短了人與人之間的距離,使人們在通信上需要花費的時間更短。該Email客戶端不僅僅具有網(wǎng)絡郵箱的功能,它可以讓用戶綁定多個郵箱,可以說是多個網(wǎng)絡郵箱的公共接口,不進方便了人們的工作,還做到了有效利用網(wǎng)絡的信息資源,極大的提高人們的工作效率,減少了很多的工作量。因此它應該是能夠得到用戶歡迎的一個系統(tǒng)。第1章 系統(tǒng)概述及系統(tǒng)分析1.1系統(tǒng)概述隨著信息技術的提高,網(wǎng)絡的普及于發(fā)展,越來越多的網(wǎng)絡工具隨之產(chǎn)生出來,網(wǎng)絡郵箱就是其中之一,它可以通過網(wǎng)絡來實現(xiàn)人們之間的通信,可以給人們的工作帶來極大的方便,同時也縮短了人與人之間的距離,使人們在通信上需要花費的時間更短。該Email客戶端不僅僅具有網(wǎng)絡郵箱的功能,它可以讓用戶綁定多個郵箱,可以說是多個網(wǎng)絡郵箱的公共接口,不進方便了人們的工作,還做到了有效利用網(wǎng)絡的信息資源,極大的提高人們的工作效率,減少了很多的工作量。該系統(tǒng)的功能模塊主要由以下部分組成:1.1.1基本設置模塊該模塊可以完成此用戶設置和郵箱設置兩大內容,其中用戶設置可以完成用戶的一些基本信息的設置,包括用戶名、用戶密碼、聯(lián)系方式、郵政編碼、通訊地址、郵箱地址,并可以對其進行存儲、瀏覽、查看、刪除、修改、打印等操作。郵箱設置可以完成對所使用郵箱的郵箱服務器、SMTP、POP3的一些設置,也可以對這些設置進行存儲、瀏覽、查看、刪除、修改等操作。1.1.2 Email功能模塊該模塊可以完成網(wǎng)絡郵箱的收取郵件、發(fā)送郵件、保存郵件的功能,并可以對這些郵件進行存儲、轉發(fā)、群發(fā)、瀏覽、刪除、修改、打印等操作。此模塊還具有通訊錄的功能,可以存儲其他網(wǎng)絡郵箱用戶的用戶名和郵箱地址進行存儲、修改等功能。1.2 需求分析 Email客戶端的設計目的是要為了實現(xiàn)網(wǎng)絡郵箱的郵件發(fā)送和收取的以些功能。為使用郵箱的用戶提供便利。系統(tǒng)所面對的用戶可以是任何普通用戶,系統(tǒng)對于一個用戶只允許以一種身份登錄。用戶登錄后可以對系統(tǒng)進行管理,其主要操作是維護個人的基本信息,對其信息進行修改、存儲等操作。將系統(tǒng)需求加以總結,得出系統(tǒng)需求如下:l 系統(tǒng)可以運行任何操作系統(tǒng)平臺上,并具有友好的用戶界面。l 系統(tǒng)用戶類型為:任何普通用戶。1.3 可行性分析1.3.1技術可行性分析Java很有雄心的宣言"writeonce,runanywhere"許諾:一個具有下拉菜單,命令按鈕,滾動條以及其他常見的GUI控件的應用程序將能夠在各種操作系統(tǒng)上運行而不必重新編譯成針對某一平臺的二進制代碼,包括MicrosoftWindows,SunsownSolaris,ApplesMacOS以及Linux。1.3.2環(huán)境可行性分析Java很有雄心的宣言"writeonce,runanywhere"許諾:一個具有下拉菜單,命令按鈕,滾動條以及其他常見的GUI控件的應用程序將能夠在各種操作系統(tǒng)上運行而不必重新編譯成針對某一平臺的二進制代碼,包括MicrosoftWindows,SunsownSolaris,ApplesMacOS以及Linux。也就是說本系統(tǒng)可以跨平臺使用.1.3.3經(jīng)濟可行性分析開發(fā)此系統(tǒng)所用軟件可在網(wǎng)絡上下載使用。第2章 系統(tǒng)開發(fā)基本介紹2.1 選題背景與目的隨著信息技術的提高,網(wǎng)絡的普及于發(fā)展,越來越多的網(wǎng)絡工具隨之產(chǎn)生出來,網(wǎng)絡郵箱就是其中之一,它可以通過網(wǎng)絡來實現(xiàn)人們之間的通信,可以給人們的工作帶來極大的方便,同時也縮短了人與人之間的距離,使人們在通信上需要花費的時間更短。該Email客戶端不僅僅具有網(wǎng)絡郵箱的功能,它可以讓用戶綁定多個郵箱,可以說是多個網(wǎng)絡郵箱的公共接口,不進方便了人們的工作,還做到了有效利用網(wǎng)絡的信息資源,極大的提高人們的工作效率,減少了很多的工作量。正是因為該系統(tǒng)所具有的這些優(yōu)點才開發(fā)了此系統(tǒng)。2 .2 系統(tǒng)開發(fā)工具本系統(tǒng)在開發(fā)過程中使用java GUI和java中java mail工具包實現(xiàn)了email的收發(fā)和一些基本的管理功能。2 .3 系統(tǒng)開發(fā)環(huán)境在軟件環(huán)境方面,系統(tǒng)的開發(fā)環(huán)境如下:操作系統(tǒng):S use Linux;開發(fā)平臺:java;2 .4開發(fā)技術概述2 .4.1 J2EE概述J2EE是美國Sun公司剛剛推出的一種全新概念的模型,與傳統(tǒng)的互聯(lián)網(wǎng)應用程序模型相比有著不可比擬的優(yōu)勢。目前,Java 2平臺有3個版本,它們是適用于小型設備和智能卡的Java 2平臺Micro版(Java 2 Platform Micro Edition,J2ME)、適用于桌面系統(tǒng)的Java 2平臺標準版(Java 2 Platform Standard Edition,J2SE)、適用于創(chuàng)建服務器應用程序和服務的Java 2平臺企業(yè)版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一種利用Java 2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關的復雜問題的體系結構。J2EE技術的基礎就是核心Java平臺或Java 2平臺的標準版,J2EE不僅鞏固了標準版中的許多優(yōu)點,例如"編寫一次、隨處運行"的特性、方便存取數(shù)據(jù)庫的JDBC(Java DataBase Connectivity)應用程序接口(API, Application Program Interface)技術以及能夠在Internet應用中保護數(shù)據(jù)的安全模式等等,同時還提供了對 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技術的全面支持。其最終目的就是成為一個能夠使企業(yè)開發(fā)者大幅縮短投放市場時間的體系結構。2 .4.2 Java GUI當Java在1995年的春天第一次發(fā)布的時候,它包含了一個叫AWT(AbstractWindowingToolkit)的庫,用來構建圖形用戶界面應用程序。Java很有雄心的宣言"writeonce,runanywhere"許諾:一個具有下拉菜單,命令按鈕,滾動條以及其他常見的GUI控件的應用程序將能夠在各種操作系統(tǒng)上運行而不必重新編譯成針對某一平臺的二進制代碼,包括MicrosoftWindows,SunsownSolaris,ApplesMacOS以及Linux。為了方便用Java構建圖形用戶界面,Sun最初提供了一個在所有平臺下具有的獨特Java外觀的圖形界面庫。Sun在applet技術策略方面的首要伙伴Netscape提出applets應該維持和運行時平臺一樣的外觀。他們希望applets在某一平臺下在顯示和行為上能夠像其他應用程序一樣。為了實現(xiàn)Netscape的"本地外觀"的目標,在JDK的第一個發(fā)布版中包含了AWT這個庫。AWT的缺省實現(xiàn)使用了"對等"機制,即每一個JavaGUI窗口部件都在底層的窗口系統(tǒng)中有一個對應的組件。例如,每一個java.awt.Button對象將在底層窗口系統(tǒng)中創(chuàng)建一個唯一對應的button。當用戶點擊那個按鈕的時候,事件將從本地實現(xiàn)庫傳送到Java虛擬機里,并且最終傳送到與java.awt.Button對象相關聯(lián)的邏輯。對等系統(tǒng)的實現(xiàn)以及Java組件與對等組件之間的交流的實現(xiàn)都隱藏在底層JVM實現(xiàn)中,Java語言級的代碼仍然跨平臺。于1997年JavaOne大會上提出并在1998年5月發(fā)布的JFC(JavaFoundationClasses)包含了一個新的使用Java窗口開發(fā)包。這個新的GUI組件叫做Swing,感覺到它是對AWT的升級,并且看起來對Java占據(jù)計算機世界很有幫助。盡管"Swing"僅僅是這個新組件的指代名稱,它一直持續(xù)使用到今天??赡苁且驗檫@個名稱太貼切了,Swing嘗試著以以下幾種方式改變公認的觀點:AWT依賴對等架構,用Java代碼包裝本地窗口部件,Swing卻根本不使用本地代碼和本地窗口部件AWT把繪制屏幕交給本地窗口部件,Swing自己的組件繪制自己,因為Swing不依賴本地窗口部件,它可以拋棄AWT的最小公分母的方法并在每個平臺下實現(xiàn)每個窗口部件,從而創(chuàng)建一個比AWT更強大的開發(fā)工具包從最開始Java就提供了構建跨平臺的窗口GUI應用程序庫,從AWT,Swing到現(xiàn)在的SWT和JFace。最初的工具包能力微弱,但是后來提供的工具包認識到之前工具包的缺點并取得了巨大的進步。SWT和JFace不僅使Java成為一個構建桌面應用程序的可行的選擇,也使之成為一個具有優(yōu)勢的開發(fā)平臺。盡管過去對得到輕便和強大的Java系統(tǒng)的嘗試必然意味著接受它在GUI方面的缺點,如今這個不足已經(jīng)不存在了,Java終于可以統(tǒng)領它在桌面計算應用方面的位置了。2 .4.3 Java mail想將郵件工具結合到您獨立于平臺的 Java 解決方案中嗎?再沒有比 JavaMail API 更合適的了,它提供了個獨立于協(xié)議的模塊,能用于 IMAP、POP、SMTP、MIME 和其它涉及因特網(wǎng)的消息傳遞協(xié)議?,F(xiàn)在,有了 JavaBeans Activation Framework (JAF)的支持,您的應用程序經(jīng)由 JavaMail API 就能啟用郵件功能啦。第3章 系統(tǒng)總體設計3 .1 系統(tǒng)功能模塊劃分模塊分析是描述系統(tǒng)需求的一個過程,需要將需求分析中的感性描述進行抽象,提取出要實現(xiàn)的功能,這是整個系統(tǒng)開發(fā)的一個關鍵過程。模塊分析的第一步,是描述Email客戶端的功能,以此確定系統(tǒng)的功能需求。本Email 客戶端對任何一個用戶都是普通用戶,無管理員設置,對每一個用戶都具有普通郵箱所具有的收取、發(fā)送郵件的功能,因此根據(jù)用戶操作需求,將系統(tǒng)劃分為如下功能,并對其模塊的劃分和功能進行描述.整個系統(tǒng)的模塊結構如圖3.1所示,此圖將Email客戶端劃分為三大模塊,這些模塊又是由若干個子模塊構成的,形成一個結構緊湊功能明確完整,子模塊的劃分見3.2 系統(tǒng)具體功能模塊的基本介紹。 Email客戶端收件箱發(fā)件箱通訊錄圖3.13 .2系統(tǒng)具體功能模塊基本介紹本部分主要介紹Email客戶端的一些基本功能,主要描述了收件箱、發(fā)件箱、和通訊錄所具有的功能,詳細設計見第4章內容。3 .2.1 發(fā)件箱發(fā)件箱可以通過用戶設置發(fā)送用戶所需要的郵件信息,本頁面可以實現(xiàn)查看已保存郵件信息、重發(fā)已發(fā)郵件、轉發(fā)所收郵件、郵件標記、編輯郵件、新建郵件、刪除郵件和打印郵件、發(fā)送,抄送、密送、發(fā)送附件、存儲郵件、未存儲提示等功能,具體功能圖如圖3.2.1發(fā)件箱發(fā)送已存郵件查看保存郵件新建郵件重發(fā)郵件打印郵件刪除郵件存儲郵件編輯郵件圖3.2.13 .2.2 收件箱收件箱可以通過用戶設置收取用戶所需要的郵件信息,本頁面可以實現(xiàn)查看所收取的郵件信息、轉發(fā)郵件、群發(fā)郵件、郵件標記(標記已讀和未讀)、編輯和存儲郵件、刪除郵件和打印郵件等功能,具體功能圖如圖3.2.2收件箱查看郵件轉發(fā)郵件群轉發(fā)郵件郵件標記打印郵件刪除郵件存儲郵件編輯郵件圖3.2.23 .2.3 通訊錄通訊錄可以存儲用戶的好友信息,可以方便用戶完成對郵件信息的發(fā)送,尤其是轉發(fā)和群組發(fā)送功能,通訊錄的存在在很大程度上方便了使用系統(tǒng)的用戶。本通訊錄可以實現(xiàn)查看好友、增加好友、刪除好友、編輯好友信息、刪除好友信息等功能,本系統(tǒng)還可以建立多個通訊錄,每個通訊錄都可以對所存用戶進行分組,以便方便郵件的發(fā)送,存儲通訊錄的文件還可以轉存,即修改當前通訊錄的存放位置,其基本功能圖如圖3.2.3通訊錄編輯通訊錄文件增加新通訊錄編輯好友信息查看好友增加好有刪除好友刪除好友刪除通訊錄圖3.2.3第4章 系統(tǒng)詳細設計及系統(tǒng)實現(xiàn)4 .1 章節(jié)內容總體介紹系統(tǒng)分析完成后,進入系統(tǒng)的設計階段這是整個系統(tǒng)實現(xiàn)過程中非常重要的一個階段。本章節(jié)描述了系統(tǒng)設計的詳細過程和內容及實現(xiàn)過程。4 .2各模塊功能詳細設計4 .2.1 發(fā)送郵件功能的實現(xiàn)4 .2.1.1 發(fā)送普通郵件功能實現(xiàn)此功能需要引入java mail 工具包中的以下包import javax.mail.*;import javax.mail.internet.*;構造sendMail類的主要代碼如下public class sendMail private String SMTP,mailFrom,mailTo,mailCC,mailTitle,mailBody,mailEncode;private 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 = "" this.mailEncode = "BIG5"/為用戶提供參數(shù)設置接口/在本系統(tǒng)中通過以下方法實現(xiàn)對用戶寫入的信息加以傳遞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;public 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.attachFileList = fileListAry;/設置文字編碼代碼如下public void setEncode(String encode)this.mailEncode = encode;public int send(boolean hasSMTPAuth) this.isAuthentic = hasSMTPAuth;/檢查參數(shù)是否安全 if(!checkParameters(isAuthentic) return 1; else Properties prop = new Properties();/設定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-Encoding",this.mailEncode); reEncode(); /設置郵件的地址和郵件的編碼 msg.setFrom(new InternetAddress(this.mailFrom); /Set reciever e-mail address and nickname msg.setRecipient(Message.RecipientType.TO, new InternetAddress(this.mailTo); if(this.mailCC.trim().length()!=0) msg.setRecipient(Message.RecipientType.CC, new InternetAddress(this.mailCC); /設定信件標題 if(this.mailTitle.trim().length()=0) msg.setSubject("無標題信件"); else 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<attachFileList.length;i+) String fullPath = this.toBIG5(attachFileListi.toString(); mbpFile = new MimeBodyPart(); FileDataSource fds = new FileDataSource(fullPath); mbpFile.setDataHandler(new DataHandler(fds); mbpFile.setFileName(fds.getName(); mp.addBodyPart(mbpFile); mp.addBodyPart(mbpBody); /將內容加入 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.sendMessage(msg,msg.getAllRecipients(); return 0; catch(Exception ex) ex.printStackTrace(); return 2; finally trans.close(); else try Transport.send(msg); return 0; catch(SendFailedException ex) System.out.println(ex.toString(); return 3; catch(Exception ex) 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 if(hasSMTPAuth) if(this.userName.trim().length()=0) return false; else return true; else return true; private void reEncode() if(this.mailEncode.toUpperCase()="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(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 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 郵件附件的功能實現(xiàn)此功能實現(xiàn)代碼如下:public class AttachExample public static void main (String args) throws Exception String host = args0; String from = args1; String to = args2; String fileAttachment = args3;/ 獲得系統(tǒng)參數(shù) Properties props = System.getProperties();/設置郵件的服務器 props.put("mail.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); 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 is attachment messageBodyPart = new MimeBodyPart(); DataSource source = new FileDataSource(fileAttachment); messageBodyPart.setDataHandler(new DataHandler(source); messageBodyPart.setFileName(fileAttachment); multipart.addBodyPart(messageBodyPart); / 將多個附件加入信件中 message.setContent(multipart); / 發(fā)送帶附件的郵件,此功能代碼結束 Transport.send( message ); 4 .2.2 收取郵件功能的實現(xiàn)郵件的收取可以使用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.FetchProfile以(潛在地)優(yōu)化對特定郵件組成成分的提取。這里的javax.mail.FetchProfile類提供郵件協(xié)議提供者可選參數(shù),其目的是更有效地實現(xiàn)郵件組成成分的預提取此功能的主要代碼如下:String pers = null;String addr = null;if(a instanceof InternetAddress &&(pers=(InternetAddress)a).getPersonal()!=null)addr=pers+" "+"<"+(InternetAddress)a).getAddress()+">"elseaddr = a.toString();return addr;Session mailsession=Session.getInstance(System.getProperties(),null);mailsession.setDebug(false);Store store=mailsession.getStore(protocol);/protocol為連接協(xié)議,IMAP或是POPstore.connect(mailhost,-1,user,passwd);/mailhost主機,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(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<request.getParameter("id").length();i+)/假設要閱讀第ID個郵件。id=id*10+(request.getParameter("id").charAt(i)-48);for(j=0;j<id;j+);messagej.setFlag(Flags.Flag.SEEN,true);out.println(“主題:”+messagej.getSubject();String from=new String();Address fr=messagej.getFrom();if(fr!=null) boolean tf=true;for(int i=0;i<fr.length;i+) from=from+getDisplayAddress(fr);out.println(“from”+from+);Object o=messagej.getContent();if (messagej.isMimeType("text/plain") /就可直接讀出了。out.println(String)o+" ");else if(messagej.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 i=0;i<msg.length();i+)/若遇到換行就轉為<br> ch=msg.charAt(i);if(ch=n)buf.append("<br>");else buf.append(ch);out.println(buf.toString();elseout.println("現(xiàn)在還無法顯示:"+messagej.getContentType();folder.close(true);store.close();String pers = null;String addr = null;if(a instanceof InternetAddress &&(pers=(InternetAddress)a).getPersonal()!=null)addr=pers+" "+"<"+(InternetAddress)a).getAddress()+">"elseaddr = a.toString();return addr;Session mailsession=Session.getInstance(System.getProperties(),null);mailsession.setDebug(false);Store store=mailsession.getStore(protocol);/protocol為連接協(xié)議,IMAP或是POPstore.connect(mailhost,-1,user,passwd);/mailhost主機,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(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<request.getParameter("id").length();i+)/假設要閱讀第ID個郵件。id=id*10+(request.getParameter("id").charAt(i)-48);for(j=0;j<id;j+);messagej.setFlag(Flags.Flag.SEEN,true);out.println(“主題:”+messagej.getSubject();String from=new String();Address fr=messagej.getFrom();if(fr!=null) boolean tf=true;for(int i=0;i<fr.length;i+) from=from+getDisplayAddress(fr);out.println(“from”+from+);Object o=messagej.getContent();if (messagej.isMimeType("text/plain") /就可直接讀出了。out.println(String)o+" ");else if(messagej.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 i=0;i<msg.length();i+)/若遇到換行就轉為<br> ch=msg.charAt(i);if(ch=n)buf.append("<br>");else buf.append(ch);out.println(buf.toString();elseout.println("現(xiàn)在還無法顯示:"+messagej.getContentType();folder.close(true);store.close();在Folder對象中可以用getMessageCount()和getUnreadMessageCount()方法來取得總共有多少封信和共有多少封信未讀。但是如果我們需要在我們的java項目中增加對Hotmail郵箱(此郵箱有一個限制就是它并不提供POP3或者SMTP服務,也就是說一般的郵件客戶端工具無法使用這個郵箱)的支持,那往往會不知從什么地方開始入手,因為SUN公司提供的java mail本身并不提供對除了POP3/IMAP以及SMTP外其他協(xié)議的支持。如何解決此問題呢? 但事實上,Java mail只是定義了一組平臺無關、獨立于通訊協(xié)議的郵件程序框架,或者說是接口,它是作為Java的可選包存在的。因此可以這樣說:Java Mail并不關心所使用的協(xié)議,不管是POP3、SMTP、IMAP當然還有Hotmail用的HTTP協(xié)議。對于Java Mail的客戶端而言也是這樣的,下圖就是一個最簡單的Java Mail結構圖,通過Transport進行郵件的發(fā)送,通過Store實現(xiàn)對郵件的收取,而不同協(xié)議的實現(xiàn),Java Mail里的概念叫做Provider,只需要根據(jù)Java Mail定義的接口實現(xiàn)自己的Provider即可。 為了實現(xiàn)通過Java Mail訪問Hotmail郵箱,我們就需要架起Java Mail接口與Hotmail服務所提供的訪問接口之間的橋梁。在這之前我們必須首先了解Hotmail所使用的接口協(xié)議。Hotmail通過地址 h

注意事項

本文(基于JAVA GUI的電子郵件客戶端軟件的設計與實現(xiàn))為本站會員(仙***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

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

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


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