![Java程序設(shè)計(jì)課設(shè)說明書-《簡(jiǎn)單郵件客戶端》_第1頁(yè)](http://file4.renrendoc.com/view/2d1dde195b64e9465daa34109ce8f9c0/2d1dde195b64e9465daa34109ce8f9c01.gif)
![Java程序設(shè)計(jì)課設(shè)說明書-《簡(jiǎn)單郵件客戶端》_第2頁(yè)](http://file4.renrendoc.com/view/2d1dde195b64e9465daa34109ce8f9c0/2d1dde195b64e9465daa34109ce8f9c02.gif)
![Java程序設(shè)計(jì)課設(shè)說明書-《簡(jiǎn)單郵件客戶端》_第3頁(yè)](http://file4.renrendoc.com/view/2d1dde195b64e9465daa34109ce8f9c0/2d1dde195b64e9465daa34109ce8f9c03.gif)
![Java程序設(shè)計(jì)課設(shè)說明書-《簡(jiǎn)單郵件客戶端》_第4頁(yè)](http://file4.renrendoc.com/view/2d1dde195b64e9465daa34109ce8f9c0/2d1dde195b64e9465daa34109ce8f9c04.gif)
![Java程序設(shè)計(jì)課設(shè)說明書-《簡(jiǎn)單郵件客戶端》_第5頁(yè)](http://file4.renrendoc.com/view/2d1dde195b64e9465daa34109ce8f9c0/2d1dde195b64e9465daa34109ce8f9c05.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《Java程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告題目:簡(jiǎn)單電子郵件客戶端的設(shè)計(jì)學(xué)院:計(jì)算機(jī)科學(xué)與工程學(xué)院專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)學(xué)生姓名:王渝凱學(xué)號(hào):1000350225指導(dǎo)教師:汪華登2014年6月24日目錄一、設(shè)計(jì)任務(wù)及目標(biāo) 31.1緒言 31.2目標(biāo) 31.3設(shè)計(jì)任務(wù) 31.4需求分析 41.5技術(shù)上可行性分析 4二、總體設(shè)計(jì) 42.1電子郵件的組成 42.2電子郵件地址 52.3功能模塊 52.4電子郵件報(bào)文格式 52.5小結(jié) 6三、詳細(xì)設(shè)計(jì) 63.1SMTP協(xié)議發(fā)送信件 63.2SMTP協(xié)議 63.3相關(guān)代碼實(shí)現(xiàn) 8四、結(jié)論 13五、任務(wù)完成情況 145.1.特色 145.2.不足 14參考文獻(xiàn) 14附錄 14一、設(shè)計(jì)任務(wù)及目標(biāo)1.1緒言互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展引領(lǐng)人類進(jìn)入了網(wǎng)絡(luò)信息時(shí)代,而電子郵件已經(jīng)取代傳統(tǒng)書信成為人們交流和交換信息的重要途徑。越來越多的人在使用它,而且使用它的人數(shù)將會(huì)繼續(xù)增加,同時(shí)根據(jù)生活和交流的需要,同一個(gè)人同時(shí)擁有了多個(gè)郵件,這樣人們?yōu)榱税l(fā)送和接收郵件需要登陸不同的網(wǎng)頁(yè),使得操作繁多浪費(fèi)了很多寶貴的時(shí)間。為了解決這一問題研發(fā)出了電子客戶端軟件,通過本軟件可以完成不同的郵箱賬戶的郵件收發(fā)功能,而不需登陸多個(gè)不同的網(wǎng)頁(yè)。
本系統(tǒng)軟件名為電子郵件客戶端軟件,是基于SMTP和POP3協(xié)議從底層播放器開發(fā)的,實(shí)現(xiàn)了郵件發(fā)送和接收的基本功能,并且能夠附帶郵件附件的發(fā)送和接收。SMTP全稱是簡(jiǎn)單郵件傳輸協(xié)議,是一種提供可靠且有效電子郵件傳輸?shù)膮f(xié)議,它專門用來發(fā)送郵件用的。其中類MailSend實(shí)現(xiàn)了SMTP協(xié)議的解析和實(shí)現(xiàn)郵件內(nèi)容和附件發(fā)送的核心類。POP3是郵局協(xié)議的第3個(gè)版本,它規(guī)定怎樣將個(gè)人計(jì)算機(jī)連接到Internet的郵件服務(wù)器和下載電子郵件的電子協(xié)議,是專門用于接收郵件的。類MailReceive是利用成熟封裝的DLL文件實(shí)現(xiàn)接收郵件內(nèi)容和下載附件的核心類。經(jīng)過測(cè)試,本系統(tǒng)能夠準(zhǔn)確實(shí)現(xiàn)純文本郵件和帶有附件的郵件的發(fā)送,以及郵件的接收和附件的下載。
雖然當(dāng)前流行的各大郵件客戶端軟件比如Foxmail、OutlookExpress等都已實(shí)現(xiàn)郵件收發(fā)功能,但是除了最主要的收發(fā)信件之外,他們功能越來越復(fù)雜,但是人們平常真正用到的功能很少,很多功能尤其對(duì)于那些計(jì)算機(jī)知識(shí)相對(duì)缺乏的人來說,更加顯得太過于華麗而不實(shí)用。有鑒于此,在了解RFC底層協(xié)議的基礎(chǔ)上,開發(fā)了這個(gè)各種功能相對(duì)簡(jiǎn)單實(shí)用的電子郵件客戶端軟件,簡(jiǎn)化了很多不必要的功能,它更容易掌握和使用。1.2目標(biāo)完成一個(gè)電子郵件客戶端軟件,要求能夠收取郵件、發(fā)送郵件、書寫新郵件、具有圖形化界面。能批量發(fā)送郵件。1.3設(shè)計(jì)任務(wù)完成一個(gè)桂林電子科技大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院關(guān)于《Java程序設(shè)計(jì)》簡(jiǎn)單郵件客戶端設(shè)計(jì)的工作。對(duì)桂林電子科技大學(xué)進(jìn)行需求分析,根根需求分析對(duì)簡(jiǎn)單電子郵件的功能進(jìn)行調(diào)整和完善。1.4需求分析本系統(tǒng)是采用java語(yǔ)言來開發(fā)的應(yīng)用程序,實(shí)現(xiàn)簡(jiǎn)單電子郵件的發(fā)送與收取。電子郵件是Inernet上最受歡迎是一種應(yīng)用,電子郵件能夠克服傳統(tǒng)電話應(yīng)用中通信雙方必須在場(chǎng)、一些不必要的電話經(jīng)常打斷正在進(jìn)行的工作等問題。人們通過電子郵件客戶端軟件,把郵件發(fā)往收信人郵箱所在的電子郵件服務(wù)器,收信人子打開計(jì)算機(jī)上網(wǎng)時(shí),通過郵件代理就會(huì)看到自己郵箱中的郵件。同時(shí)也可以克服普通的電話通信不能傳送文件等數(shù)據(jù)的缺點(diǎn),通過客戶端,用戶可以向收信人發(fā)送附件,收件人就可以通過郵件代理收到發(fā)信人發(fā)送的內(nèi)容。電子郵件客戶端具有方便實(shí)用、傳遞迅速和費(fèi)用低廉等特點(diǎn),電子郵件不僅可以傳送文本信息,而且可以通過附件傳送音頻、視頻文件。1.5技術(shù)上可行性分析基于javamail來開發(fā)該客戶端軟件,所以選用java作為開發(fā)工具,選用eclipse作為java編譯器。
本系統(tǒng)軟件名為電子郵件客戶端軟件,是基于SMTP和POP3協(xié)議從底層開發(fā)的,實(shí)現(xiàn)了郵件發(fā)送和接收的基本功能。本系統(tǒng)軟件具有收取郵件、發(fā)送郵件、書寫新郵件、具有圖形化界面等功能。二、總體設(shè)計(jì)2.1電子郵件的組成一個(gè)電子郵件系統(tǒng)的包括電子郵件協(xié)議、用戶代理和電子郵件戶服務(wù)器。一個(gè)完整的電子郵件傳輸過程,及其用到的協(xié)議和構(gòu)件的位置,如下圖3--1所示,電子郵件胡武器采用客戶端服務(wù)器模式。電子郵件服務(wù)使用運(yùn)輸層協(xié)議是TCP.發(fā)送郵件傳輸郵件接收郵件用戶代理接收方郵件服務(wù)器發(fā)送方郵件服務(wù)器用戶代理用戶代理接收方郵件服務(wù)器發(fā)送方郵件服務(wù)器用戶代理電子郵件協(xié)議規(guī)定如何在兩個(gè)星湖通信的郵件進(jìn)程之間交換信息,電子郵件協(xié)議包括簡(jiǎn)單郵件傳輸協(xié)議(SimpleMailTransferProtocol,SMTP)、郵局協(xié)議(PostOfficeProtocol,POP3)。發(fā)送方用戶代理(UserAgent,UA)是用戶與電子郵件飛的系統(tǒng)的接口,是在用戶上網(wǎng)終端運(yùn)行的軟件,稱為電子郵件客戶端,用戶通過UA發(fā)送和接收郵件。電子郵件服務(wù)器的功能是發(fā)送和接收郵件,使用SMTP協(xié)議發(fā)送郵件,使用POP3協(xié)議接收郵件,并向郵件發(fā)送者報(bào)告郵件傳送的情況。2.2電子郵件地址Intertnet中有大量的電子郵件服務(wù)器,用戶可以在一臺(tái)郵件服務(wù)器上申請(qǐng)合法的用戶賬號(hào),包括賬號(hào)名和密碼,申請(qǐng)成功后,郵件服務(wù)器為每個(gè)用戶開辟一個(gè)存放用戶郵件的空間,成為用戶的電子郵箱。每個(gè)電子郵箱都有一個(gè)全球唯一的郵箱地址,也稱為用戶的電子郵箱地址。電子郵件有兩部分組成,之間由@間隔,前一部分為用戶在該郵件服務(wù)器中的賬號(hào),即信箱名,后一部分為郵件服務(wù)器的主機(jī)名(域名)。用戶信箱名@郵箱和郵件服務(wù)器所在主機(jī)的域名例如163.com發(fā)送方電子郵件服務(wù)器負(fù)責(zé)接收用戶發(fā)來的郵件,根據(jù)郵件的目的地址,發(fā)呆哦接收方的郵件服務(wù)器中。接收方的郵件服務(wù)器同時(shí)也負(fù)責(zé)接收從其他服務(wù)器發(fā)往其中的郵件,根據(jù)收件人的不同,將郵件分發(fā)到用戶的電子郵箱。當(dāng)然,接收方和發(fā)送方的郵箱也可以在一個(gè)郵件服務(wù)器中。2.3功能模塊登錄登錄收取郵件收取郵件書寫新郵件書寫新郵件發(fā)送郵件發(fā)送郵件2.4電子郵件報(bào)文格式電子郵件報(bào)文格式由兩部分組成:郵件首部(MailHead)和郵件主體(MailBody).RFC822規(guī)定了電子郵件的首部格式,郵件主體由用戶自由撰寫。電子郵件的首部郵件首部包括一些關(guān)鍵字描述的字段(后面加上冒號(hào)),如下表所示。郵件首部有多項(xiàng)內(nèi)容構(gòu)成,其中發(fā)件人地址、郵件發(fā)送的日期和時(shí)間等是由電子郵件應(yīng)用程序根據(jù)系統(tǒng)設(shè)置自動(dòng)產(chǎn)生的,而收件人地址,抄送人地址、郵件主題等是根據(jù)用戶在創(chuàng)建郵件時(shí)輸入的信息產(chǎn)生的。首部字段含義及后面內(nèi)容Form發(fā)信人的郵件地址Date發(fā)信日期To一個(gè)或者多個(gè)收信人的郵件地址Subject郵件標(biāo)題Cc抄送Bcc暗送Reply—To對(duì)方會(huì)信用的地址Received傳輸途中每個(gè)傳輸代理加上的信息郵件主體郵件報(bào)文首部后接一個(gè)空白行,下面是以ASCII格式給出的郵件主體。郵件主體是實(shí)際要發(fā)送的內(nèi)容,傳統(tǒng)的電子郵件系統(tǒng)智能傳遞文本信息。目前,使用Internet電子郵件擴(kuò)展協(xié)議不但可以發(fā)送各種文字和各種結(jié)構(gòu)的文本信息,而且可以發(fā)送語(yǔ)音、圖像和視頻等多媒體信息。建立讀者可以通過Telnet應(yīng)用程序與某一個(gè)電子郵件服務(wù)器連接,發(fā)送包含郵件首部的郵件報(bào)文,方法是在命令行方式下輸入命令:telnetservername25,其中servername為電子郵件服務(wù)器域名。2.5小結(jié)網(wǎng)絡(luò)上的E--mail傳送有點(diǎn)像我們?nèi)粘I钪邪l(fā)送的普通信件一樣,首相把填好的郵件地址的信件交給郵局,再由郵局傳遞,最后頭遞給收信人。同樣的,一封E--mail從用戶的手中發(fā)出,首先有一個(gè)程序吧這封E--mail發(fā)到SMTP服務(wù)器(發(fā)送郵件服務(wù)器)上,再由發(fā)送郵件服務(wù)器傳遞又見到大目的信箱,收信人根據(jù)賬號(hào)和口令接收信箱的郵件。很明顯,完整的郵件程序至少需要四個(gè)部分:發(fā)送又見到服務(wù)器程序,我們把它叫做發(fā)送郵件客戶端程序;負(fù)責(zé)在網(wǎng)絡(luò)上傳送郵件到信箱的程序;稱之為SMTP服務(wù)器程序,接受并存儲(chǔ)郵件并供用戶提取的服務(wù)器程序;稱之為POP3服務(wù)器程序,從POP3服務(wù)器收取郵件的程序,稱之為接收郵件客戶端程序。三、詳細(xì)設(shè)計(jì)3.1SMTP協(xié)議發(fā)送信件SMTP服務(wù)器并不是郵件的目的地,它只是郵件的中間傳遞機(jī)構(gòu)。發(fā)送郵件的客戶端軟件不用了解如何把郵件發(fā)送到目的信箱的服務(wù)器上,只告訴具有傳遞機(jī)制SMTP服務(wù)器一些必要的信息,接下來怎么投遞就是SMTP服務(wù)器的事情了。3.2SMTP協(xié)議SMTP只能傳送7位ASCII文本郵件。SMTP使用默認(rèn)的端口號(hào)為25。SMTP規(guī)定如何在兩個(gè)互相通信的SMTP進(jìn)程之間交換信息,采用客戶端服務(wù)器SMTP的工作過程:發(fā)送方和接收方郵件服務(wù)器之間的通信包括三個(gè)階段:連接建立、郵件傳輸和連接釋放。這里把發(fā)送方郵件服務(wù)器成為本地郵件服務(wù)器,或稱為SMTP客戶,把接收方郵件服務(wù)器稱為遠(yuǎn)地郵件服務(wù)器,或稱為SMTP服務(wù)器。交互過程中采用TCP連接。連接建立連接建立包括用戶代理與本地郵件服務(wù)器(用戶郵箱所處的郵件服務(wù)器,及發(fā)送方郵件服務(wù)器)的連接,以及本地郵件服務(wù)器與遠(yuǎn)地郵件服務(wù)器(接收方郵箱所處的郵件服務(wù)器)的連接。連接建立使用的電子郵件協(xié)議時(shí)SMTP。SMTP發(fā)件人通過自己計(jì)算機(jī)上的用戶代理撰寫和編輯要發(fā)送的電子郵件。發(fā)件人通過用戶代理點(diǎn)擊發(fā)送按鈕,由用戶代理完成發(fā)送郵件。用戶代理使用默認(rèn)端口號(hào)25與本地郵件服務(wù)器建立連接,把郵件先發(fā)送給本地郵件服務(wù)器緩存下來。本地郵件服務(wù)器作為SMTP客戶,每隔一定時(shí)間對(duì)郵件緩存掃描一次,若有郵件發(fā)送,建立與遠(yuǎn)地郵件服務(wù)器連接的過程如下:使用默認(rèn)端口號(hào)25與接收方電子郵件服務(wù)器(SMTP服務(wù)器)建立TCP連接。SMTP服務(wù)器回答“220Serviceready”,表示服務(wù)就緒,連接建立。SMTP客戶發(fā)送HELO命令給SMTP服務(wù)器,附上發(fā)送方主機(jī)名字。SMTP服務(wù)器回答“250OK”,表示已經(jīng)準(zhǔn)備好接收,否則回答“421Servicenotavailible”,表示服務(wù)器不可用。發(fā)送方郵件服務(wù)器與接收方郵件服務(wù)器之間是直接通過運(yùn)輸層協(xié)議TCP連接的,中間不經(jīng)過其他電子郵件服務(wù)器,盡管這兩個(gè)郵件服務(wù)器的連接途徑上可能要經(jīng)過若干個(gè)路由器??梢钥闯觯粋€(gè)電子郵件服務(wù)器在作為發(fā)送方時(shí),用作SMTP客戶,若作為接收方時(shí),用作SMTP服務(wù)器。SMTP客戶和SMTP服務(wù)器實(shí)在后臺(tái)工作的。電子郵件傳輸中的客戶機(jī)和服務(wù)器,如下圖所示。圖中描述了發(fā)送和接收電子郵件的過程:①是客戶端(發(fā)送方)SMTP發(fā)送電子郵件,采用SMTP協(xié)議②是發(fā)送方郵件服務(wù)器向接收方郵件服務(wù)器傳輸電子郵件,采用SMTP協(xié)議,此時(shí)發(fā)送方郵件服務(wù)器的作用相當(dāng)于客戶端,接收方郵件服務(wù)器的作用相當(dāng)于服務(wù)器;③是客戶端(接收方)接收郵件,采用的是POP3協(xié)議。②時(shí)相當(dāng)于Client②時(shí)相當(dāng)于ServerSMTP服務(wù)器()SMTPSMTP服務(wù)器()SMTP服務(wù)器()②SMTPSMTPPOP3客戶端(發(fā)送方)客戶端(接收方)客戶端(發(fā)送方)客戶端(接收方)電子郵件傳輸中的客戶機(jī)和服務(wù)器3.3相關(guān)代碼實(shí)現(xiàn)發(fā)信模塊:privatevoidsendButtonActionPerformed(java.awt.event.ActionEventevt){setProperties();try{//用try包圍的語(yǔ)句是java編譯器認(rèn)為有可能出現(xiàn)異常,所以讓你提前處理。SessionmySession=createSession();MimeMessagemyMess=createMessage(mySession);Transporttransport=mySession.getTransport();transport.connect(getServer(),getUser(),getPassword());transport.sendMessage(myMess,myMess.getRecipients(Message.RecipientType.TO));transport.close();}catch(Exceptione){//catch{}是捕獲上面的語(yǔ)句出現(xiàn)的異常,然后在catch里寫方法處理這個(gè)異常!JOptionPane.showMessageDialog(this,"郵件發(fā)送失??!","提示",JOptionPane.INFORMATION_MESSAGE);System.out.println("發(fā)送失??!");}JOptionPane.showMessageDialog(this,"郵件發(fā)送成功!","提示",JOptionPane.INFORMATION_MESSAGE);}發(fā)送界面:發(fā)送成功后,顯示發(fā)送成功:接收郵件模塊:郵件接收通過POP3協(xié)議讀取電子郵件包括三個(gè)步驟:特許,用戶代理輸入用戶名和口令,獲得讀取郵件的許可;事務(wù)處理,用戶讀取文件報(bào)文,并對(duì)郵件進(jìn)行處理;更新,在用戶退出后,郵件服務(wù)器刪除標(biāo)記的郵件報(bào)文。POP3協(xié)議的會(huì)話過程如下圖:POP3客戶POP3POP3客戶POP3服務(wù)器用戶名用戶名OKOKpasswordpasswordOKOK列清單列清單郵件數(shù)目與大小郵件數(shù)目與大小讀取郵件1讀取郵件1郵件1郵件1讀取郵件讀取郵件郵件郵件POP3服務(wù)器會(huì)在與用戶代理的會(huì)話期間保留一些狀態(tài)信息,例如,哪些郵件報(bào)文做了刪除標(biāo)記,但是POP3服務(wù)器不會(huì)在于代理用戶的交互過程中攜帶狀態(tài)信息,這樣有利于POP3服務(wù)功能的實(shí)現(xiàn)。代碼實(shí)現(xiàn)booleanconnectMess()throwsException{//連接服務(wù)器,使用POP3收取郵件:try{Stringhost="";//默認(rèn)Propertiesprops=newProperties();props.put("mail.smtp.host",host);props.put("mail.smtp.auth","true");//這樣才能通過驗(yàn)證Sessionsession=Session.getDefaultInstance(props);Storestore=session.getStore("pop3");//使用POP3會(huì)話機(jī)制,連接服務(wù)器store.connect(host,ad,pa);Folderfolder=store.getFolder("INBOX");//如果是收件箱folder.open(Folder.READ_WRITE);message=folder.getMessages();returntrue;}catch(Exceptione){returnfalse;}}voidshowMess(inti)throwsException{//郵件信息獲取from=message[i].getFrom()[0].toString();sender.setText(from);title=message[i].getSubject();messTitle.setText(title);SimpleDateFormatsimpleFormat=newSimpleDateFormat("yy-MM-ddHH:mm");sendDay=simpleFormat.format(message[i].getSentDate());day.setText(sendDay);if(message[i].isMimeType("multipart/*")){//接收郵件代碼Multipartmp=(Multipart)message[i].getContent();intbodyNum=mp.getCount();for(intj=0;j<bodyNum;j++){if(mp.getBodyPart(j).isMimeType("text/plain")){content=(String)mp.getBodyPart(j).getContent();}elseif(mp.getBodyPart(j).isMimeType("text/*")){content="html郵件類型";}}}else{content="不支持郵件類型";}messContent.setText(content);}收取郵件時(shí),登陸到客戶端,查看最新來信:對(duì)郵件進(jìn)行解碼:voidshowMess(inti)throwsException{//郵件信息獲取,解析from=message[i].getFrom()[0].toString();sender.setText(from);title=message[i].getSubject();messTitle.setText(title);SimpleDateFormatsimpleFormat=newSimpleDateFormat("yy-MM-ddHH:mm");//獲取,解析日期sendDay=simpleFormat.format(message[i].getSentDate());day.setText(sendDay);if(message[i].isMimeType("multipart/*")){//接收郵件代碼Multipartmp=(Multipart)message[i].getContent();intbodyNum=mp.getCount();for(intj=0;j<bodyNum;j++){if(mp.getBodyPart(j).isMimeType("text/plain")){content=(String)mp.getBodyPart(j).getContent();}elseif(mp.getBodyPart(j).isMimeType("text/*")){content="html郵件類型";}}}else{content="不支持郵件類型";}messContent.setText(content);}四、結(jié)論電子郵件在Internet上發(fā)送和接收的原理可以很形象地用我們?nèi)粘I钪朽]寄包裹來形容:當(dāng)我們要寄一個(gè)包裹的時(shí)候,我們首先要找到任何一個(gè)有這項(xiàng)業(yè)務(wù)的郵局,在填寫完收件人姓名、地址等等之后包裹就寄出而到了收件人所在地的郵局,那么對(duì)方取包裹的時(shí)候就必須去這個(gè)郵局才能取出。同樣的,當(dāng)我們發(fā)送電子郵件的時(shí)候,這封郵件是由郵件發(fā)送服務(wù)器(任何一個(gè)都可以)發(fā)出,并根據(jù)收信人的地址判斷對(duì)方的郵件接收服務(wù)器而將這封信發(fā)送到該服務(wù)器上,收信人要收取郵件也只能訪問這個(gè)服務(wù)器才能夠完成。SMTP(SimpleMailTransferProtocol)簡(jiǎn)易郵件傳輸通訊協(xié)議SMTP是互聯(lián)網(wǎng)上的一種通訊協(xié)議,主要功能是用在傳送電子郵件,當(dāng)我們通過電子郵件程序,寄E-mil給另外一個(gè)人時(shí),必須通過SMTP通訊協(xié)議,將郵件送到對(duì)方的郵件服務(wù)器上,等到對(duì)方上網(wǎng)的時(shí)候,就可以收到你所寄的信。其實(shí)簡(jiǎn)單的說,POP服務(wù)器是用來收信的,而且每個(gè)E_mail地址一般只有一個(gè)。如果你要同時(shí)收取多個(gè)郵箱的信件,就必須挨個(gè)設(shè)置每個(gè)郵箱的POP3服務(wù)器地址。你別告訴我找不到,告訴你一個(gè)小竅門吧:在你申請(qǐng)了免費(fèi)信箱之后,仔細(xì)看看它的幫助文件,一般都能找到。至于SMTP服務(wù)器,可以理解為就是用來寄信的,而且大多數(shù)SMTP服務(wù)器也是免費(fèi)的,也就是說,不管你有無E-mail信箱,只要想寄信,隨便填上一個(gè)SMTP服務(wù)器,就可以寄信了。如果你用OutlookExpress或者其它郵件程序發(fā)信,又同時(shí)擁有多個(gè)免費(fèi)郵箱,不必設(shè)置多個(gè)SMTP服務(wù)器,只要選擇一個(gè)填上就行了,比如新浪郵件提供的服務(wù)器就是:。該客戶端軟件可以實(shí)現(xiàn)收取信件,發(fā)送新郵件,并對(duì)新郵件進(jìn)行保存到草稿箱,起到備注的作用,同時(shí)可以發(fā)送附件,方便使用。五、任務(wù)完成情況基本實(shí)現(xiàn)了所有的功能,包括發(fā)送新郵件,書寫新郵件,收取郵件,具有圖形化界面,達(dá)到了課設(shè)的要求。5.1.特色可以不用登錄WEB,即可從客戶端收郵件。
2.如果在客戶端設(shè)置為自動(dòng)登錄,那么只需點(diǎn)一下,就可以進(jìn)入郵件收發(fā)。
3.如果你的電腦裝了殺毒軟件,它還可以在收郵件時(shí)進(jìn)行殺毒。而WEB郵件的殺毒只能靠服務(wù)商了。5.2.不足最大的不足就是不能收取下載附件,沒有多人發(fā)送功能,界面不夠美觀(做的時(shí)候覺得沒必要)。參考文獻(xiàn)《基于WINDOWS環(huán)境POP3協(xié)議郵件接收客戶端的實(shí)現(xiàn)》,盧秉亮,王玉湘,許莉,沈陽(yáng)航空工業(yè)學(xué)院學(xué)報(bào)《使用JavaMailAPI實(shí)現(xiàn)電子郵件客戶端》,楊寧,晉東南師范??茖W(xué)校學(xué)報(bào)《Java課程設(shè)計(jì)》(第二版),耿祥義,清華大學(xué)出版社。《Java課程設(shè)計(jì)案例精編》,張廣彬等,清華大學(xué)出版社。附錄接收關(guān)鍵代碼publicMessReceivor(Stringad,Stringpa){this.ad=ad;this.pa=pa;try{if(connectMess()){connectStatus="連接成功!";}}catch(Exceptione){connectStatus="連接失??!";}initComponents();try{showMess(index);}catch(Exceptione){}setMiddel();}booleanconnectMess()throwsException{//連接服務(wù)器try{Stringhost="";//默認(rèn)Propertiesprops=newProperties();props.put("mail.smtp.host",host);props.put("mail.smtp.auth","true");//這樣才能通過驗(yàn)證Sessionsession=Session.getDefaultInstance(props);Storestore=session.getStore("pop3");store.connect(host,ad,pa);Folderfolder=store.getFolder("INBOX");folder.open(Folder.READ_WRITE);message=folder.getMessages();returntrue;}catch(Exceptione){returnfalse;}}voidshowMess(inti)throwsException{//顯示郵件內(nèi)容,否則拋出from=message[i].getFrom()[0].toString();sender.setText(from);title=message[i].getSubject();messTitle.setText(title);SimpleDateFormatsimpleFormat=newSimpleDateFormat("yy-MM-ddHH:mm");sendDay=simpleFormat.format(message[i].getSentDate());day.setText(sendDay);if(message[i].isMimeType("multipart/*")){Multipartmp=(Multipart)message[i].getContent();intbodyNum=mp.getCount();for(intj=0;j<bodyNum;j++){if(mp.getBodyPart(j).isMimeType("text/plain")){content=(String)mp.getBodyPart(j).getContent();}if(mp.getBodyPart(j).isMimeType("text/html")){content="html郵件類型";}}}else{content="不支持郵件類型";}messContent.setText(content);}voidfreshMess()throwsException{//connectMess();showMess(index);}發(fā)送關(guān)鍵代碼publicvoidsetProperties(){setFrom(getMessFrom().getText());setTo(getMessTo().getText());setUser(getFrom().substring(0,getFrom().indexOf("@")));setPassword(newString(getPass().getPassword()));setServer(getHost().getText());setProtocol(getMyProtocol().getText());setTitle(getMessTitle().getText());setContent(getMessContent().getText());}publicSessioncreateSession(){//建立會(huì)話Propertiesprops=newProperties();props.setProperty("tocol",getProtocol());//設(shè)置郵件協(xié)議為smtpprops.setProperty("mail.smtp.auth","true");//必須這樣設(shè)置,以便能夠向服務(wù)器提交認(rèn)證信息Sessionsession=Session.getInstance(props);//注意這里只能用getInstance方法session.setDebug(true);returnsession;}publicMimeMessagecreateMessage(Sessionsession)throwsException{MimeMessagemessage=newMimeMessage(session);message.setFrom
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省廣州市白云區(qū)2023-2024學(xué)年七年級(jí)下學(xué)期期末考試語(yǔ)文試卷(解析版)
- 高中常用技術(shù)會(huì)考模擬考試題一
- 轉(zhuǎn)專業(yè)申請(qǐng)書范文
- 法律職業(yè)客觀題二-2025國(guó)家法律職業(yè)資格考試《客觀題卷二》模擬試卷7
- DB61T-油菜苗情監(jiān)測(cè)技術(shù)規(guī)范編制說明
- DB13JT-園林鹽堿土壤生物修復(fù)標(biāo)準(zhǔn)
- 初級(jí)公司信貸-初級(jí)銀行從業(yè)資格考試《公司信貸》押題密卷6
- 請(qǐng)假申請(qǐng)書范文
- 2024-2025學(xué)年廣東省深圳市龍崗區(qū)高一(上)期末地理試卷
- 第三章效用論習(xí)題+答案
- 學(xué)校食堂餐廳管理者食堂安全考試題附答案
- 同等學(xué)力英語(yǔ)申碩考試詞匯(第六版大綱)電子版
- 2024義務(wù)教育道德與法治課程標(biāo)準(zhǔn)(2022版)
- 中日合同范本
- T-CARM 002-2023 康復(fù)醫(yī)院建設(shè)標(biāo)準(zhǔn)
- 污水管網(wǎng)計(jì)算說明書
- 15MW風(fēng)力發(fā)電機(jī)
- 正面管教 讀書分享(課堂PPT)
- 肌肉注射流程
- 互聯(lián)網(wǎng)銷售卷煙(煙草)案件的分析
- 公務(wù)員考察政審表樣本
評(píng)論
0/150
提交評(píng)論