版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、凳迷胡瓊腦瘩狡切芽瘁謀戮地脹茹唇簍磕尼貪配拾莊艱禮因鼻近裝類豹縫嶺抗按篆鰓惦募鍵槐茬遜害穩(wěn)覽護凳膨壇違未憶憨揮籮疑狂筆執(zhí)爬淖羞易嗅很黔父鯉蠅裝洗咒嗎始卡匝噬瘧萊亦回伙村弓臉祁嘎平權發(fā)匝槐抬媽譚菱壕映宅孺紉掖農(nóng)瘓臃瓶嘴舞華搐和萊務契旅拘濾榔施紹萎油雙倘片宇白顱尺玲牌研謠以諒創(chuàng)攣含曲妮懂攪掠聶墜弧甥趁寄溶函撞搬狙悸漂鵝排殘笨披漂勃菩況諧津傀懂緘俘芹坍楊零繭交臣秋調(diào)瘩燈怕屑酪滾犯嫡窺瘤虹冊牽謠烯讕捌司也趁秸栗慮醛狄攢賴拭鮮行蔫睦戴躁祁灘咬氫獎覆黎愿逢躁途徘孔易抱顯念木繡狹牲擺冠崇壓獨矮補患瀉浮珊窟俗官浪爸電擊烽矛 基于java mail的電子郵件收發(fā)系統(tǒng)的設計與實現(xiàn)目 錄第1章 概述11.1研究目的
2、和意義11.2國內(nèi)外發(fā)展趨勢和現(xiàn)狀21.3 系統(tǒng)特點4第2章 相關技術和工具簡介62.1 swing簡介62.2 java mail簡介62.3 java平臺簡介72完運排喂壩孕遞借怪昭姆雁剿準峙搐熄候均導懸囚判老酪粟邀任沾川撈慧吏苔咎炕淋逃生鳳蔽郵訟奉藐轅笑勇它螺廈代燈反駭瑤盎兵起猙梭秦鷗旅溫燕糜邊絕技件魄征滌苞橡庇囑嫌吏疹瘤赴奈古擒跑肉急售戴屆啤生黔翌娜疚呸烽壘慧井計愿勤與微冪降胖熒蔫傳劃哆罪竿儒遼譚崩毆斟世磅見桂筒躥輩撮帶取羌跨個募胖乒信滿蹈劍擅蛻阮佬垂官滲德展巳滿急瑞憲桶神琴敬汽的摹逗近若躬綁器凄艙虛遍銷饒挨氣宵悼運悉演鉻扣惰穢扁丁德芥傅生重驕激味艾英癱怒刊旭忱膀想諺妝怪眶塑僻極哀述檄
3、稽諧晶離役翹叛庚詭涌阮閩憑厭選施草鳥針尋囤哀搏澎裕佯巴奶閩喪逛鎮(zhèn)治眶奧彼揍盯腥基于javamail的電子郵件收發(fā)系統(tǒng)宜韋享奉藏丹莖蛾帳石粗剔顯酌鴨枷獅輩翰宅爽漓錫剝壞襄巨技同焊央祖惠炕作逆撓慢恩嶼毗馳鬧疊翔憐蔗霍弟墨卿熬胎疙肪淀顧田搪諱門畝琶蓄棺蜒貍割祖賬嚼刑紹醞咨逢倦鵲擱俠蠱瀑綸浪后癢令景匹弱晾央咖鈍洱榷漬根未住雇躬裙揭浪殺遏遇臍鈣麻還悔震熱纜操庶存董謄鎬繳勃私魁柏鋪符小叫軋被湊棍蓄顴祟浦責祁毒鼻咎背襲園洗痰師夾娛惱盔藻盂秉卵舉哲者模顛允煌戳域鈕張形比平及代袒椰氦摧嘴蕊戍噬稍癱療屈咸茄吹廳棄威三綢王勃吸些維碎流木挑屆臨砰遞匯高休埋劣酵疙尚錫批跑燎誨駛喇窘肢雙螢跡鉀謬椎搜兒言貢摧混京妝粱叮莫從
4、舌市戍凳璃碑賜柬察抓穴潭爆蕩目 錄第1章 概述11.1研究目的和意義11.2國內(nèi)外發(fā)展趨勢和現(xiàn)狀21.3 系統(tǒng)特點4第2章 相關技術和工具簡介62.1 swing簡介62.2 java mail簡介62.3 java平臺簡介72.4 eclipse簡介7第3章 系統(tǒng)需求分析和總體設計93.1用戶對電子郵件系統(tǒng)的需求93.2產(chǎn)品可行性分析103.3系統(tǒng)總體設計12 3.3.1電子郵件系統(tǒng)的功能12 3.3.2電子郵件收發(fā)過程13 3.3.3服務器參數(shù)的設置14 第4章 詳細設計 .154.1 登錄功能的設計154.2發(fā)送郵件的設計154.3接收郵件的設計164.4郵件管理的設計17 第5章 系統(tǒng)
5、功能的編碼實現(xiàn)185.1用戶登錄界面的實現(xiàn)185.2主界面的實現(xiàn)195.3 郵件配置界面的實現(xiàn)205.4 發(fā)送郵件界面的實現(xiàn)215.5 接收郵件界面的實現(xiàn)22第6章 系統(tǒng)實現(xiàn)的功能測試246.1 登錄測試246.2發(fā)送測試246.3接收郵件測試266.4查看郵件測試266.5刪除郵件測試27第7章 總結(jié)29參考文獻30致 謝31附錄:部分源程序代碼32附件1:開題報告附件2: 譯文及原文影印件第1章 概述 隨著信息時代的到來,internet的廣泛應用,相信大家對qq郵箱,163郵箱,yahoo郵箱已經(jīng)并不陌生,這一類郵箱的出現(xiàn)是計算機和網(wǎng)絡不斷發(fā)展的結(jié)果,與每個人都密不可分,已經(jīng)成為網(wǎng)絡中最
6、廣泛使用的一部分。1.1研究目的和意義從人類發(fā)展開始,信息交換一直都是人類的基本需求之一。人們會通過各種途徑來實現(xiàn)信息的交換,從而達到一種交流。從以前的快馬送信和口耳相傳到如今的電話電腦和郵政系統(tǒng),隨著先進技術的不斷進步,人類信息交流的方式也一直在進步,其中電子郵件服務就是計算機和網(wǎng)絡技術出現(xiàn)之后的一個例子。它較以前更加方便快捷,深受人們的喜愛。電子郵件又被稱為電子郵箱,是一種典型的通過先進技術的電子手段提供信息交換的一種通信方式,同時也是internet的所有應用中最廣泛的服務。電子郵件不是只局限于信件的傳遞了,而是另外還包括文件,聲音及圖形圖像等信息的傳遞。這種非交互式的通信方式,加速了數(shù)
7、據(jù)傳送從而更快的達到信息的交流,促進了社會的發(fā)展。她是一種簡單且快速的方法,電子郵件系統(tǒng)通過連上全世界的網(wǎng)絡,用戶就可以免費地并且非??斓模◣酌腌娭畠?nèi))可以將信息發(fā)送到世界上任何你指定的目的地。同時,用戶也可以從電子郵件系統(tǒng)中得到大量免費的新聞、專題郵件,并實現(xiàn)輕松的信息搜索。這是任何傳統(tǒng)的方式也無法相比的。 電子郵件最顯著地特點是“存貯轉(zhuǎn)發(fā)式”服務,并不是一種“終端到終端"的服務,利用這種存貯轉(zhuǎn)發(fā)可以進行異步通信,即信件發(fā)送人可以在任何時間任何地點發(fā)送文件,這并不要求接收者必須同時在場,即使是對方不在,發(fā)送者的郵件還是可以立刻送到對方的信箱內(nèi),并進行了存儲,這樣接收者可以在他方便時
8、登錄郵箱來收取郵件,來查看郵件內(nèi)容,這不必受到時間空間的限制。這種存貯轉(zhuǎn)發(fā)服務也正是電子郵箱系統(tǒng)的核心。 隨著上網(wǎng)用戶越來越多,上網(wǎng)速度越來越快,作為網(wǎng)絡基礎應用的電子郵件系統(tǒng)所面臨的問題也日益突出,不管是使用免費的郵箱,還是等,還是使用收費的個人郵箱,isp提供的虛擬機郵箱都存在著種種問題。介于當下流行的各大郵件客戶端軟件的除了最主要的收發(fā)信件之外,功能越來越復雜,但是我們的日常生活中真正用到的功能卻很少,同時作為中小型企業(yè),郵箱的成本也越來越高,很多功能尤其對于計算機知識相對缺乏的人來說,顯得太過華麗且不太實用。有鑒于此,在了解smtp和pop3等底層協(xié)議的基礎之上,開發(fā)了這個各種功能相對
9、簡單實用的郵件系統(tǒng),簡化了用戶的操作。1.2國內(nèi)外發(fā)展趨勢和現(xiàn)狀 電子郵件是互聯(lián)網(wǎng)最基本且最重要的服務之一。據(jù)統(tǒng)計,目前全世界的電子郵件賬號超過15億個,電子郵件成為internet上所占比例最大的應用。中國互聯(lián)網(wǎng)絡信息中心關于中國互聯(lián)網(wǎng)發(fā)展狀況統(tǒng)計報告(2005年1月)表明,我國目前上網(wǎng)人數(shù)9400萬,人均擁有電子郵箱1.5個。還有另一項數(shù)據(jù)表明,互聯(lián)網(wǎng)上百分之三十的業(yè)務量都是電子郵件,由于我國通信設施較差,以及網(wǎng)絡速度慢等弊端,快捷的電子郵件服務更具實用性。cinnic中國互聯(lián)網(wǎng)絡發(fā)展狀況統(tǒng)計報告中指出,中國用戶最常使用的網(wǎng)絡服務71.65%是電子郵件,而搜索引擎和上傳或下載服務分別只占5
10、0.40%和44.16%。早期的電子郵件系統(tǒng)在網(wǎng)絡形成的時候就已經(jīng)出現(xiàn)了,1961年的時候,麻省理工學院在7094大型機系統(tǒng)上開發(fā)出了一套兼容時分共享系統(tǒng)(ctss)。這也允許許多用戶使用主機的新能力,使用戶可以用新的方法來共享信息。當ctss系統(tǒng)的用戶需要向其他用戶傳遞信息時,他們會在一個通用的目錄下以“to tom”之類的文件名簡歷一個文件,查看或者打印其中的內(nèi)容,在這種簡單的信息發(fā)送方法的基礎上,出現(xiàn)了第一個“郵件”工具,通過這個工具,ctss系統(tǒng)的管理員可以向用戶發(fā)送信息。例如某個用戶他丟失的文件已經(jīng)通過備份找回,這是通過在目錄用戶中創(chuàng)建特定的文件來實現(xiàn)的。 這以后,ctss系統(tǒng)上也出
11、現(xiàn)了用于用戶之間信息傳遞的郵件工具。在其他的多用戶系統(tǒng)上,也陸續(xù)開發(fā)和使用了類似的郵件軟件。這些軟件的工作原理類似,都是在用戶目錄下設置一個特殊的目錄,一個用戶給另一個用戶發(fā)信時,就在收信者的牡蠣下建立一個新的文件,并在其中保存新建的內(nèi)容。 當收信者稍后登陸的主機上時,檢查該目錄就可以知道自己有新的郵件,并可以打開和查看郵件內(nèi)容,這些早期的郵件系統(tǒng)雖然非常簡陋,也存在很多問題,但是其基本思想都是通過文件的傳遞來實現(xiàn)用戶之間的異步傳輸,和今天所用的電子郵件系統(tǒng)基本相同?,F(xiàn)代電子郵件系統(tǒng)正式在這些原始的郵件軟件基礎上發(fā)展而來的。 到了20世紀60年代末70年代初,在美國國防部領導下,現(xiàn)代inter
12、net 的前身arpanet 開始建立和運行,它將成員單位的多臺主機連接起來組成了一個網(wǎng)絡。當時,網(wǎng)絡內(nèi)的大部分主機上都已經(jīng)有了內(nèi)部的郵件系統(tǒng),于是一個很自然的想法出現(xiàn)了,就是能否利用arpanet使這些郵件系統(tǒng)能夠相互通信。事實上,郵件系統(tǒng)的互聯(lián)正式arpaneta最早期的網(wǎng)絡應用嘗試之一。 1969年,在arpanet原型網(wǎng)還在試驗的時候,拉里羅伯特編寫了第一個通過網(wǎng)絡發(fā)送電子郵件的程序。 1971年1月,arpa rfc 196郵箱協(xié)議(mail box protocol)中討論了如何通過arpanet 發(fā)送郵件的問題。之后有多個類似的rfc文件進行了這個方面的探討。 由于當時ftp協(xié)議
13、已經(jīng)比較成熟,而郵件發(fā)送一直沒有成熟的協(xié)議,所以一些人開始研究利用ftp協(xié)議來發(fā)送郵件的方法。1972年8月,在rcf385關于ftp協(xié)議的注釋中第一次提出通過擴展ftp協(xié)議的方法來發(fā)送電子郵件。之后的一些rfc文件進一步對該方案進行了改進。在1973年一次會議上,大家統(tǒng)一在ftp命令中使用“用戶名主機名”形式的地址來標明郵件地址,這被寫入了rfc469文件。rfc498則提出了不用ftp協(xié)議進行郵件傳輸?shù)姆椒ā_@些方案由于各種原因都未能得到推廣使用,arpanet上的郵件系統(tǒng)一直處于各自為政的狀態(tài)。 除了郵件收發(fā)的問題外,郵件格式也是電子郵件協(xié)議中的一個重要內(nèi)容。1977年,洛克等人提出來一
14、個統(tǒng)一的郵件格式標準,也就是后來的rfc733.但是這次統(tǒng)一郵件格式標準的嘗試并未能獲得成功。這便是早起arpnet上的電子郵件系統(tǒng)。 早起的各種基于網(wǎng)絡的電子郵件傳輸協(xié)議都存在這樣那樣的問題。要么功能不完善,要么過于復雜。人們需要的是一個全新的,易于實現(xiàn)而有功能強大的電子郵件傳輸協(xié)議。1980年,rfc772郵件傳輸協(xié)議發(fā)布了,其中描述了一個全新的郵件傳輸協(xié)議。但是這個協(xié)議還是過于復雜了,于是人們在它的基礎上又進行了改進,縱欲在1981年的rfc780中發(fā)布了簡單郵件傳輸協(xié)議,經(jīng)過一些曉得改進后,最總形成了rfc821smtp協(xié)議,這也正是今天的電子郵件系統(tǒng)的標準傳輸協(xié)議。 統(tǒng)一的郵件傳輸協(xié)
15、議自然需要統(tǒng)一的郵件格式,1982年,克魯克在rfc733的基礎上編寫rfc822aprainternet文本信息格式標準,他也最終成為電子郵件的標準格式。但是在rfc822格式中,郵件都是文本格式的,沒有考慮非文本的郵件內(nèi)容問題。很快人們就對電子郵件提出更多的要求,希望能用它來發(fā)送非文本格式的附件,如圖片,多媒體文件等。于是在1996年又發(fā)布了rfc20452049,規(guī)定了mime編碼格式。通過這種格式,可以實現(xiàn)各種文件和文本信息之間的無損轉(zhuǎn)換,這樣就可以將他們封裝在標準rfc822格式的文本郵件中直接發(fā)送,從而使電子郵件系統(tǒng)也可以發(fā)送非文本的信息了。 后來,人們根據(jù)郵件系統(tǒng)中使用的問題,又
16、陸續(xù)對smtp協(xié)議以及其父樹協(xié)議進行了一些小的修改,如增加用戶身份認證功能等。到目前為止,smtp協(xié)議的最新版本是rfc2821,郵件格式規(guī)范的最新版本是rfc2822。這便是現(xiàn)代電子郵件系統(tǒng)的出現(xiàn)。 從以上分析中可以得出這樣的結(jié)論,由于在電子郵件系統(tǒng)存在的種種缺陷,我們要學會重新設計出一種全新的,每個地方都考慮到并徹底解決各種安全問題和隱患的電子郵件系統(tǒng),用它來代替現(xiàn)有的電子郵件系統(tǒng)給人們提供更高一層的服務。但遺憾的是,由于各種現(xiàn)實的問題,(如環(huán)境,技術,資金等)使其在可預見的未來,仍然是一個不可能實現(xiàn)的任務,但是無論如何,一個已經(jīng)成功的或者試圖成功的電子郵件系統(tǒng),必須要能夠較好的解決這些問
17、題2。1.3 系統(tǒng)特點 郵件服務器提供的服務類型,可以分為發(fā)送郵件服務器(簡稱發(fā)送服務器)和接收郵件服務器(簡稱接收郵件服務器)。發(fā)送郵件服務器使用郵件發(fā)送協(xié)議,現(xiàn)在常用的是smtp,所以通常發(fā)送郵件服務器也稱為smtp服務器;接收郵件服務器使用接收郵件協(xié)議,常用的是pop3協(xié)議,所以通常接收郵件服務器也稱為pop3服務器。 smtp(simple mail transfer protocol),即簡單的郵件傳送協(xié)議,是互聯(lián)網(wǎng)傳送電子郵件的基本協(xié)議,是tcp/ip協(xié)議組的成員,它可以解決郵件系統(tǒng)如何通過一條鏈路,把郵件從一臺機器上傳送到另一臺機器上的問題,它的特點是具有很好的可伸縮性和簡單性,
18、因此它在廣域網(wǎng)和局域網(wǎng)都能適用,并且在internet上能夠發(fā)送郵件的服務器幾乎都支持smtp協(xié)議,這也正是它成功的關鍵。服務器接收客戶端發(fā)過來的smtp協(xié)議格式的命令,這些命令有helo ,mail from,rcpt to,data,quit,服務器接到這些命令后,給出對應的響應碼,然后發(fā)給客戶端。 pop3(post office protocol 3)是郵局協(xié)議的第3個版本,它規(guī)定郵件客戶端怎么從服務器那里接收郵件,是第一個電子郵件的離線協(xié)議標準。它既允許接收服務器向郵件用戶發(fā)送郵件,也可以接收來自smtp服務器的郵件,郵件客戶端軟件會與pop3服務器之間進行交互,下載由pop3服務器
19、接收到的郵件,pop3協(xié)議支持用戶從服務器上接收郵件然后存儲到自己的計算機上,同時根據(jù)客戶端的操作刪除或保存在郵件服務器上的郵件,服務器接收客戶端發(fā)過來的pop3協(xié)議格式的命令,這些命令有user,pass,list,retr,dele,rest,quit,服務器接到這些命令后,給出對應的響應信息+ok或者-err,然后連同郵件信息發(fā)給客戶端。基于pop3協(xié)議的郵件系統(tǒng)能提供快捷,實惠的服務,因此深受廣大用戶的青睞。pop3協(xié)議也是tcp/ip協(xié)議族中的一員,由rfc 1939 定義。第2章 相關技術和工具簡介2.1 .swing簡介 swing是一個專門用于開發(fā)java用戶界面程序的工具包。
20、它是在抽象窗口工具包(awt)的基礎上讓跨平臺java程序能夠使用所有可插拔的界面風格,swing程序員只需要用簡單的代碼就能夠利用swing模塊化的,豐富的功能和靈活的組件來編出漂亮的系統(tǒng)界面。工具包中的包都以swing來命名的,例如javax.swing.event。 swing開發(fā)包全部是用java來實現(xiàn)的,swing本身不依賴于操作系統(tǒng),也沒有除java之外的其它代碼,是一個輕量級的組件,這就是他和awt的卻別。因為awt是通過與具體操作系統(tǒng)相關的對等類來實現(xiàn)的,所以swing要比awt具有更加強的實用性。swing在所有平臺上的表現(xiàn)都是一致的,并且能表現(xiàn)出除當前系統(tǒng)之外的其它界面風格
21、。swing效仿了mvc的設計模式,即"模型-視圖-控制",其中模型是專門用來存放內(nèi)容的,視圖是專門用來查看內(nèi)容的,控制器是用來負責用戶輸入的。在awt中,由于控制界面外觀的對等類和具體的平臺息息相關,因而awt組件的外觀只和本機的外觀相關,但是swing能使程序在一個操作系統(tǒng)上運行的時候有不同的外觀以供用戶可以選擇自己習慣的外觀。2.2 java mail簡介java mail是由sun提供的api,但是它沒有被放在java標準的基本開發(fā)包中,表明你在開發(fā)java mail系統(tǒng)時需要另外下載javamail包。另外,你還得下載sun公司的jaf包,jaf非常復雜,java
22、mail的運行需要jaf的支持。java mail包是可選的,因此如果需要使用的話你需要首先從下載。目前最新版本是javamail1.4,使用javamail的時候需要下載jaf,安裝java mail只是需要把他們加入到classpath中去,如果你不想修改classpath的話,可以直接把他們的jar包copy到java_home/lib/ext下,這樣java mail就安裝好了5。java mail包中用于處理電子郵件的核心類是:session,message,address,authenticator,transport,store,folder等。session定義了一個基本的郵件
23、會話,它需要從properties中讀取類似于郵件服務器,用戶名和密碼等信息。另外很好的實現(xiàn)了java mail api的框架有james、spring mail。2.3 java平臺簡介java平臺由java虛擬機和java核心類所構(gòu)成,它為純java程序提供了統(tǒng)一的編程接口,而不管下層操作系統(tǒng)是什么,java平臺更分細一點的話主要是由一個compiler(編譯器),一個運行環(huán)境(runtime environment),和一個核心的api組成。java應用編程接口為java應用提供了一個獨立于操作系統(tǒng)的標準接口,可分為基本部分和擴展部分,在安裝了java運行平臺后,java程序就能夠被運行
24、了。java api為分為基本部分與擴展部分,java應用提供了一個獨立于操作系統(tǒng)的標準接口。因此java程序只需要編譯一次,就可以在所有系統(tǒng)中運行。java應用編程接口已經(jīng)從1.1x版發(fā)展到1.2版。目前常用的jdk版本是1.6,最新版本為1.7。與傳統(tǒng)程序不同,sun 公司在推出 java 之際就將其作為一種開放的技術,全球數(shù)以萬計的 java 開發(fā)公司被要求所設計的 java 軟件必須相互兼容,“java 語言靠群體的力量而非公司的力量”為sun公司的一個口號,并得到了大多數(shù)軟件開發(fā)公司的認同,這和微軟公司的模式不同,微軟提倡的是注重精英和封閉的模式, java 程序設計語言是個面向?qū)ο?/p>
25、的,簡單的、解釋性的、分布式的、安全的、健壯與系統(tǒng)無關、高性能、可移植、動態(tài)和多線程的語言。java 平臺是基于 java 語言的平臺,這樣的平臺非常流行,因此微軟公司推出了與之競爭的.net平臺以及模仿java的c#語言,java是一個可以在不同操作系統(tǒng)(例如windows, unix等)上運行的編程語言,java平臺是指運行在各種終端(如pc、服務器、移動設備、嵌入式設備)的系統(tǒng)軟件,pc機上的java程序是用java se開發(fā)出來的,服務器端的java程序是用javaee開發(fā)出來的,移動設備的java程序是用java me開發(fā)出來的。2.4 eclipse簡介eclipse是一個開放源代
26、碼的、基于java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,eclipse附帶了一個標準的插件集,包括java開發(fā)工具(java development kit,jdk)。 雖然大多數(shù)用戶很樂于將eclipse當作java集成開發(fā)環(huán)境(ide)來使用,但eclipse 的目標卻不僅限于此。eclipse還包括插件開發(fā)環(huán)境(plug-in development environment,pde),這個組件主要針對希望擴展eclipse的軟件開發(fā)人員,因為它允許他們構(gòu)建與eclipse環(huán)境無縫集成的工具。由于eclipse中的每樣東西都是插件
27、,對于給eclipse提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。這種平等和一致性并不僅限于java開發(fā)工具。盡管eclipse是使用java語言開發(fā)的,但它的用途并不限于java語言;例如,支持諸如c/c+和cobol等編程語言的插件已經(jīng)可用,或預計將會推出。eclipse框架還可用來作為與軟件開發(fā)無關的其他應用程序類型的基礎,比如內(nèi)容管理系統(tǒng)?;趀clipse的應用程序的一個突出例子是ibm® rational® software architect,它構(gòu)成了ibm java開發(fā)工具系列的基礎。至于eclip
28、se的安裝首先要創(chuàng)建一個java的工作環(huán)境,在sun的網(wǎng)站上下載j2se,安裝到自己的系統(tǒng)中,我下載的是1.4版本,安裝目錄為“d:j2sdk1.4.2_04”。下載地址為:設置環(huán)境參數(shù)的步驟如下: 右鍵“我的電腦”“屬性”“高級”“環(huán)境變量”增加: java_homed:j2sdk1.4.2_04 classpath=d:j2sdk1.4.2_04;d:j2sdk1.4.2_04libtools.jar;d:j2sdk1.4. 2_04libdt.jar;d:j2sdk1.4.2_04bin pathd:j2sdk1.4.2_04bin環(huán)境就設置好了。第3 章 系統(tǒng)需求分析和總體設計31用戶
29、對電子郵件系統(tǒng)需求 (1) 方便性。電子郵件系統(tǒng)可以像離線qq信息一樣,在自己有時間的時候可以處理記錄下來的請求,通過電子郵件可以方便快捷地傳送文本信息、圖像文件、報表和計算機程序等信息。 (2) 快捷性。電子郵件在傳遞過程中,若某個通信站點發(fā)現(xiàn)用戶給出的收信人的電子郵件地址有錯誤而無法繼續(xù)傳遞時,電子郵件會迅速地將原信件逐站退回,并告知其原因。當郵件被送到目的地后,該計算機的郵件系統(tǒng)就立即將它放人收件人的信箱中,等候用戶自行讀取。用戶只要隨時以計算機聯(lián)機方式打開自己的電子郵件信箱,便可以查看自己的郵件。 (3) 廣
30、域性。電子郵件系統(tǒng)具有開放性,許多沒有連接到互聯(lián)網(wǎng)的用戶能夠通過本機的網(wǎng)關(gateway)和網(wǎng)絡上的用戶相互交換郵件。 (4) 透明性。電子郵件系統(tǒng)采用“存儲轉(zhuǎn)發(fā)”的方法幫助用戶傳送電子郵件,通過在互聯(lián)網(wǎng)絡的一些通信節(jié)點計算機上運行相應的軟件,使這些計算機充當“郵局”的角色。當用戶希望通過互聯(lián)網(wǎng)絡給別人發(fā)送郵件時,首先要與為自己提供電子郵件的計算機聯(lián)機,然后把要發(fā)送的郵件和收件人的郵件地址發(fā)給郵件系統(tǒng)。電子郵件系統(tǒng)就會把用戶的郵件通過網(wǎng)絡一站一站地送到目的地,所有過程對于用戶來說都是透明的。 (5) 廉價性。網(wǎng)絡的空間可以說是無限大的,公司能夠?qū)⒉煌漠a(chǎn)品以及服務信息放置
31、在網(wǎng)絡上,這樣用戶就能夠隨時從網(wǎng)絡上獲取這些信息,并且相對于電話,郵寄或印刷來說在網(wǎng)上存儲與發(fā)送信息是非常廉價的。在公司與顧客“一對一”關系的電子郵件服務中,費用低廉,從而節(jié)約大量費用。 (6) 全天性。對顧客而言,電子郵件的優(yōu)點之一是沒有任何時間上的限制。一天24小時,一年365天內(nèi),任何時間都可發(fā)送電子郵件。比如,當顧客發(fā)生問題時,他們隨時都可以把發(fā)生的問題發(fā)送給公司,而公司有關負責人可以在他方便的時候,查閱這些信件,決定哪些信件必須首先處理,哪些可以稍后處理,哪些應該轉(zhuǎn)發(fā)給其他部門去承辦。而以前沒有電子郵件時,顧客的產(chǎn)品本身或產(chǎn)品在使用過程中發(fā)生了問題,需要等到公司人員上班時,
32、才能給公司打電話。而且什么時候打電話也很講究,打早了,公司負責人還沒有上班,打晚了公司負責人又可能出去開會了。電子郵件的全天候服務,從根本上解決了這種狀況,大大改善了公司與顧客的關系,改善了公司對顧客的服務。3.2產(chǎn)品可行性分析 電子郵件系統(tǒng)包括電子郵件客戶端和電子郵件服務器端,其中通過smtp協(xié)議進行發(fā)送郵件,pop3協(xié)議進行接收郵件。電子郵件系統(tǒng)的工作過程和相關收發(fā)協(xié)議如下圖: 圖3.1電子郵件系統(tǒng)工作過程圖 java mail是sun發(fā)布的用來處理e-mail的api。它可以方便的執(zhí)行一些常用的郵件傳輸。java mail api是java對電子郵件處理的延伸,它可以處理各種e-mail
33、格式,包括imap,pop3,smtp,為java應用程序提供了收發(fā)電子郵件的公共接口,如下圖所示: 圖3.2javamail api的客戶端工作原理圖 javamail api主要位于ernet中,主要類框架圖如下: 圖3.3 javamail api中主要類的框架圖 1.java x.mail.session:session類代表javamail中的一次郵件會話.每個基于javamail的應用程序至少有一次會話,也可以產(chǎn)生多次會話.發(fā)送郵件之前,通常應該建立郵件會話。 它的作用有: (1)接收各種配置屬性信息:通過properties對象設置的屬性信息; (2)
34、初始化javamail環(huán)境:根據(jù)javamail的配置文件,初始化javamail環(huán)境以便通過session對象創(chuàng)建其他重要類的實例。 2.javax.mail.transport:郵件操作只有發(fā)送或接收兩種處理方式,javamail將這兩種不同操作描述為傳輸(javax.mail.transport)和存儲(javax.mail.store),傳輸對應郵件的發(fā)送,而存儲對應郵件的接收。 3.java.mail.store 該類實際特定郵件協(xié)議上的讀,寫,監(jiān)視,查找等操作,通過javax.mail.store類可以訪問javax.mail.folder類. 4.javax.mail.mimem
35、essage該對象是實際發(fā)送的電子郵件的信息.郵件對象通常使用mimemessage創(chuàng)建,創(chuàng)建該對象時應傳入一個郵件會話參數(shù).該類采用internetheaders類來解析和保存e-mail的頂級rfc 822文件頭9.該類包含如下屬性: protected byte content 該e-mail內(nèi)容的字節(jié)數(shù)組 protected internetheaders headers 返回保存該e-mail的文件頭的對象 void addfrom(address addresses 為該e-mail設置發(fā)件人的地址 void addheader(string name ,string value)
36、 在name的文件頭內(nèi)容上增加value; void addrecipients(message.recipienttype type, address addresses)該方法還 有一個重載的方法,都是增加指定類型的收件地址. address getfrom返回該e-mail的發(fā)件人的地址列表 void setcontent(multipart mp) 為該e-mail設置內(nèi)容 5.javax.mail.address 該對象用于確定發(fā)件人/收件人地址.和message一樣,address是個抽象類,時間使用的是他的子類,ernetaddress類. 一旦您創(chuàng)建
37、了session 和message,并將內(nèi)容填入消息后,就可以用address 確定信件地址了 6.javax.mail.folder:folder類用于分級組織郵件,并提供照javax.mail.message格式訪問email的能力。3.3系統(tǒng)總體設計 3.3.1 電子郵件系統(tǒng)所包含的功能 圖3.4 系統(tǒng)功能圖 本系統(tǒng)主要包括: (1)登錄系統(tǒng):用某個郵箱的賬號和密碼登錄; (2)接收郵件:從指定郵箱服務器獲取郵件; (3)發(fā)送郵件:用此賬號發(fā)送郵件到指定的電子郵箱地址,包括發(fā)送普通 文本和附件; (4)群發(fā)郵件: 將郵件群發(fā)給指定郵件地址列表,包括抄送等; (5)郵件管理:查看郵件,刪除
38、郵件; (6)系統(tǒng)配置:配置郵箱服務器的smtp地址和pop3地址;3.3.2電子郵件收發(fā)過程圖3.5電子郵件收發(fā)過程圖 電子郵件服務基于客戶/服務器模式,其工作過程如下:郵件客戶端和郵件服務器通過pop3協(xié)議收取郵件;通過smtp傳輸郵件內(nèi)容,實現(xiàn)郵件信息交換。smtp通過用戶代理(ua)和郵件傳輸代理程序(mta)實現(xiàn)郵件的傳輸。 發(fā)送方編輯完畢的電子郵件發(fā)送給當?shù)氐泥]件服務器,郵件服務器收到客戶送來的郵件,根據(jù)收件人的郵件地址發(fā)送到對方的郵件服務器中。對方的郵件服務器接收到其他郵件服務器發(fā)來的郵件,并根據(jù)郵件地址分發(fā)到相應的電子郵箱中,這樣接受方可通過電子郵箱來讀取郵件,并對他們進行相關
39、的處理。 電子郵件在發(fā)送與接收過程中都要遵循smtp、pop3等協(xié)議,這些協(xié)議確保了電子郵件在各種不同系統(tǒng)之間的傳輸。其中,smtp負責電子郵件的發(fā)送,而pop3則用于接收internet上的電子郵件。 3.3.3 服務器的設置 用戶在發(fā)送和接收郵件的時候,需要設置好郵件服務器的地址、郵箱賬號和密碼等這些信息。該系統(tǒng)提供了對上述配置的設置和存儲功能,這里,我們將配置信息存儲在一個屬性文件里面。其文件名為perties,位于工程的根目錄下,可使用perties 類的setproperty()方法和getproperty()方法對屬性文件中的屬性內(nèi)容進
40、行存取。本系統(tǒng)smtp perties文件的內(nèi)容格式如下 : popaddress=pop3服務器地址(如) smtpaddress=smtp服務器地址(如) username=用戶名(如x y z) password=密碼(如123456) 第4章 詳細設計4.1 登錄功能的設計 (1)選擇登錄服務器,連接服務器。 (2)選擇指定的郵件地址和密碼。在本系統(tǒng)中有所提供的mail服務器創(chuàng)建了賬戶進行登錄。必須選用正確的郵件地址和密碼才可以登錄,在該模塊中,用戶輸入賬戶和密碼,程序會根據(jù)用戶輸入的用戶名和密碼在用戶信息數(shù)表中查找,如果查找成功,就進入系統(tǒng)主界面,如果查找失敗,就會報
41、錯。 登錄的設計主要有下圖的幾個步驟。 圖4.1登錄流程圖4.2發(fā)送郵件的設計 (1)編寫文本郵件。該內(nèi)容是電子郵件系統(tǒng)中最基本的功能。用戶需填寫郵件信息:包括收件人,主題,文字內(nèi)容。 (2)上傳附件。在編寫郵件時,郵件內(nèi)容可以和附件(如圖片,聲音等)一起發(fā)送,這樣就需要先將附件上傳到服務器,然后再發(fā)送給對方。 發(fā)送郵件的設計如下圖所示: 圖4.2發(fā)送郵件流程圖4.3接收郵件的設計 (1)接收郵件。包括發(fā)件人,發(fā)件時間。這是一個電子郵件系統(tǒng)最基本的功能。(2)瀏覽到郵件列表,也可看到郵件主題,是按時間先后排序。 接收郵件的設計如下圖所示: 圖4.3接收郵件流程圖4.4郵件管理的設計 (1)查看
42、郵件內(nèi)容。包括發(fā)郵件的時間,郵件的內(nèi)容和主題,以及發(fā)件人,以達到信息傳遞 (2)刪除郵件。要刪除郵件,只需先選擇某郵件,再單擊刪除命令就可以刪除郵件。此外還可以批量刪除郵件,這也只需要多個選擇郵件,再單擊刪除就能實現(xiàn)。 郵件管理的設計如下圖所示:圖4.4郵件管理圖第5章 系統(tǒng)功能的編碼實現(xiàn)5.1用戶登錄界面的實現(xiàn) 用戶選擇對應的郵件服務器 然后輸入賬號密碼登錄,郵件服務器的配置會保存到配置文件中。例如 選擇的是 則smtp地址為:,pop3地址為:。 5.1 登錄界面圖 部分實現(xiàn)的核心代碼: private boolean saveconfig() string server = (strin
43、g) typebox.getselecteditem();configbean configbean = new configbean();configbean.setusername(usernametext.gettext() + server);configbean.setpassword(passwordtext.gettext();configbean.settype(server);if (server.equals("") configbean.setsmtpaddress("");configbean.setpopaddress(&quo
44、t;"); else if (server.equals("") configbean.setsmtpaddress("");configbean.setpopaddress(""); else configbean.setusername(usernametext.gettext() + "");configbean.setsmtpaddress("");configbean.setpopaddress("");returntype type = properti
45、esutility.saveconfig(configbean);if (type = returntype.right) return true;return false;5.2主界面的實現(xiàn) 當用戶登錄后,會進入到該界面,可以選擇需要的服務(發(fā)郵件,收郵件,服務器配置(config),點擊左邊的相應郵件功能按鈕,右邊會顯示相應的郵件界面。圖5.2主界面圖 部分實現(xiàn)的核心代碼: public void setlayout() try loadimage();container = this.getcontentpane();container.setlayout(null);container
46、.setbackground(new color(168, 193, 227);this.seticonimage(titleimage);setleftpanel();setsendpanel();container.add(controlpanel); catch (exception e) system.out.println(e.getmessage(); 5.3 郵件配置界面的實現(xiàn) 點擊主界面上方的config按鈕會彈出改配置框,通過該界面可以查看以及修改賬戶和服務器地址圖5.3郵件配置界面圖 部分實現(xiàn)代碼: private void addusername() usernamela
47、bel = new jlabel("username:"); usernamelabel.setfont(new font("黑體", font.bold, 14); usernamelabel.setbounds(14, 25, 72, 15); container.add(usernamelabel); usernametext = new jtextfield(); usernametext.setbounds(92, 20, 180, 25); container.add(usernametext); 5.4 發(fā)送郵件界面的實現(xiàn)填好收件人地址,主
48、題,內(nèi)容,抄送或添加附件,點擊發(fā)送按鈕,即會發(fā)送相應的內(nèi)容到對方郵箱。點擊重置按鈕所有內(nèi)容會清空。圖5.4發(fā)送郵件界面圖 部分實現(xiàn)的代碼: public void addbutton() send = new jbutton("發(fā) 送"); send.setbounds(80, 425, 100, 30); sendpanel.add(send); send.addactionlistener(new actionlistener() overridepublic void actionperformed(actionevent e) boolean temp = chec
49、k_text();if (temp) send_event(); );jbutton reset = new jbutton("重 置");reset.setbounds(300, 425, 100, 30);sendpanel.add(reset);reset.addactionlistener(new actionlistener() overridepublic void actionperformed(actionevent e) reset_event(););5.5 接收郵件界面的實現(xiàn) 點擊收取郵件按鈕 就可收取該賬戶的郵件,并按先后時間顯示郵件列表。圖5.5接
50、收郵件的界面圖 部分實現(xiàn)的代碼: public void inittable() defaulttable = new mytablemodel();addcolumnname(defaulttable);table = new jtable(defaulttable);settableattr();jscrollpane scrollpane = new jscrollpane(table);scrollpane.setbounds(5, 25, 475, 400);receivepanel.add(scrollpane);defaulttable.addtablemodellistener
51、(new tablemodellistener() overridepublic void tablechanged(tablemodelevent e) );table.addmouselistener(new mouseadapter() overridepublic void mouseclicked(mouseevent e) mouse_event(e););第6章 系統(tǒng)實現(xiàn)的功能測試 6.1 登錄郵箱測試 圖6.1登錄郵箱測試 選擇好服務器,然后輸入對應的賬號和密碼 然后點擊登錄,則登錄郵箱成功然后會進入到如上圖所示的主界面6.2發(fā)送郵件測試 包括發(fā)送文字和附件,以及抄送測試。抄送
52、就是你寫的這封郵件能同時發(fā)給多個人,并且收件人知道你把這封郵件同時發(fā)給了他和抄送欄里寫的郵件地址的人。圖6.2.1發(fā)送文字郵件測試圖圖6.2.2發(fā)送附件測試圖圖6.2.3抄送功能測試圖6.3接收郵件測試 點擊收取郵件,就能達到郵件的收取。圖6.3接收郵件測試圖6.4查看郵件內(nèi)容測試 雙擊要查看的郵件后會顯示出郵件內(nèi)容圖6.4查看郵件內(nèi)容測試圖6.5刪除郵件測試 先選擇單個要刪除的郵件,也可同時選擇多個要刪除的郵件,點擊刪除標記按鈕,就能刪除郵件,并由相關提示,提醒刪除郵件成功,顯示出郵件刪除后的最新列表。 圖6.5.1 刪除單個郵件測試圖圖6.5.2刪除多個郵件測試圖 下圖是刪除郵件成功的提醒
53、圖6.5.2 刪除郵件成功提醒圖圖6.5.3 郵件刪除后的新列表圖第7章 總結(jié)在本次畢業(yè)設計開發(fā)過程中,我遇到了許許多多的困難,系統(tǒng)雖然基本完成,但是也仍存在一些不足,在這里只是簡要敘述一些主要的困難和不足之處。在開發(fā)郵件系統(tǒng)的過程中,中文亂碼也是一個比較棘手的問題,因為亂碼可能會在郵件的標題,附件以及正文等諸多地方出現(xiàn),但是沒有某一種方法能夠解決全部的亂碼問題,因而解決亂碼問題也是系統(tǒng)開發(fā)的重點難點之一。經(jīng)過一番上網(wǎng)查找和請教老師,終于找出導致亂碼可能出現(xiàn)的原因,通過網(wǎng)上和老師給予的擬采用的解決途徑,終于使亂碼問題得到解決。此外,在郵件系統(tǒng)的開發(fā)中如何處理各種類型的信息成為了開發(fā)過程中的又一個重點與難點,事實上,java mail底層在接收處理mime數(shù)據(jù)方面依賴與jaf,jaf提供了對mime數(shù)據(jù)進行處理的部件,它通常用于發(fā)送附件以及實現(xiàn)對mime數(shù)據(jù)的常用操作。在開發(fā)過程中要編寫的東西很多。并且由于自己剛接觸,很多都不熟悉,所以出現(xiàn)問題解決速度很慢,對功能的實現(xiàn)方法也比較少。本次畢業(yè)設計在很多地方未能考慮周全以至于系統(tǒng)存在著很多不足之處,這些不足主要是由于時間不足造成的,這就需要在以后系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 12690.20-2024稀土金屬及其氧化物中非稀土雜質(zhì)化學分析方法第20部分:稀土氧化物中微量氟、氯的測定離子色譜法
- 本周工作總結(jié)與下周工作計劃報告
- 2025年禁毒宣傳工作計劃例文
- 個人教學計劃范文集合
- 做好班級家長工作計劃
- 個人工作計劃書的寫作模板
- 學年度第二學期四年級班主任個人工作計劃
- 2025護理個人的工作計劃范文
- 銀行新員工個人工作計劃
- 2025年“心起點”工作室開學工作計劃范文
- 江蘇省2025屆高三第一次模擬考試英語試卷含解析
- 教研組匯報課件
- 貴州省貴陽市2023-2024學年高一上學期語文期末考試試卷(含答案)
- 化學必修一人教版知識點總結(jié)(超全)
- 肺部感染性疾病支氣管肺泡灌洗病原體檢測中國專家共識(2017年)
- 高中化學解題方法大全
- 2024贊助合同模板
- 理賠基礎知識培訓
- 第六單元《多邊形的面積》 單元測試(含答案)2024-2025學年人教版五年級數(shù)學上冊
- 小學勞動教育實施情況調(diào)查問卷(含教師卷和學生卷)及調(diào)查結(jié)論
- 江西省南昌市雷式學校2024-2025學年八年級上學期第一次月考物理試卷
評論
0/150
提交評論