計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)論文及代碼_第1頁
計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)論文及代碼_第2頁
計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)論文及代碼_第3頁
計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)論文及代碼_第4頁
計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)論文及代碼_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目 錄1.前言11.概 述12.電子郵件發(fā)送協(xié)議與技術(shù)22.1 SMTP協(xié)議簡(jiǎn)介及通訊模型22.2 javamail API的簡(jiǎn)介33.概要設(shè)計(jì)43.2系統(tǒng)模塊結(jié)構(gòu)53.3類的功能設(shè)計(jì)53.3.1 用戶登入類53.3.2 郵件發(fā)送類63.4郵件發(fā)送流程圖74.功能模塊的實(shí)現(xiàn)84.1 程序主界面的實(shí)現(xiàn)84.2郵件發(fā)送的實(shí)現(xiàn)95.程序測(cè)試115.1 主界面測(cè)試115.2發(fā)送電子郵件程序測(cè)試11參考文獻(xiàn)15附錄1:EmailClient類16附錄2:MainSender類221.前言1.概 述電子郵件(簡(jiǎn)稱E-mail)又稱電子信箱、電子郵政,它是一種用電子手段提供信息交換的通信方式。它是全球多種網(wǎng)

2、絡(luò)上使用最普遍的一項(xiàng)服務(wù)。這種非交互式的通信,加速了信息的交流及數(shù)據(jù)傳送,它是一個(gè)簡(jiǎn)易、快速的方法。通過連接全世界的Internet,實(shí)現(xiàn)各類信號(hào)的傳送、接收、存貯等處理,將郵件送到世界的各個(gè)角落。到目前為止,可以說電子郵件是Internet資源使用最多的一種服務(wù),E-mail不止局限于信件的傳遞,還可用來傳遞文件、聲音及圖形、圖像等不同類型的信息。電子郵件不是一種“終端到終端”的服務(wù),是被稱為“存貯轉(zhuǎn)發(fā)式”服務(wù)。這正是電子信箱系統(tǒng)的核心,利用存貯轉(zhuǎn)發(fā)可進(jìn)行非實(shí)時(shí)通信,屬異步通信方式。即信件發(fā)送者可隨時(shí)隨地發(fā)送郵件,不要求接收者同時(shí)在場(chǎng),即使對(duì)方現(xiàn)在不在,扔可將郵件立刻送到對(duì)方的信箱內(nèi),且存儲(chǔ)

3、在對(duì)方的電子郵箱中。接收者可在他認(rèn)為方便的時(shí)候讀取信件,不受時(shí)空限制。1.2 國內(nèi)現(xiàn)狀電子郵件E-mail是Internet最基本的和最重要的服務(wù)之一。據(jù)統(tǒng)計(jì),Internet上百分之三十以上的業(yè)務(wù)量是電子郵件。由于我國的通訊基礎(chǔ)設(shè)施較差,網(wǎng)絡(luò)速度較慢,因而,與Internet其它功能如WWW、FTP、NEWS等相比,電子郵件服務(wù)具有更大的實(shí)用性。CINNIC中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告中指出。71.65%的中國用戶最常使用的網(wǎng)絡(luò)服務(wù)就是電子郵件,這個(gè)比例遠(yuǎn)遠(yuǎn)高于搜索引(50.40%)和軟件上傳或下載服務(wù)(44.16%)等其他服務(wù)。2.電子郵件發(fā)送協(xié)議與技術(shù)2.1 SMTP協(xié)議簡(jiǎn)介及通訊模型&

4、#160;(SMTP:Simple Mail Transfer Protocol)即簡(jiǎn)單郵件傳輸協(xié)議,它是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來控制信件的中轉(zhuǎn)方式。它能夠在傳送中接力傳送郵件,傳送服務(wù)提供了進(jìn)程間通信環(huán)境(IPCE),此環(huán)境可以包括一個(gè)網(wǎng)絡(luò),幾個(gè)網(wǎng)絡(luò)或一個(gè)網(wǎng)絡(luò)的子網(wǎng)。理解到傳送系統(tǒng)(或IPCE)不是一對(duì)一的是很重要的。進(jìn)程可能直接和其它進(jìn)程通過已知的IPCE通信。郵件是一個(gè)應(yīng)用程序或進(jìn)程間通信。郵件可以通過連接在不同IPCE上的進(jìn)程跨網(wǎng)絡(luò)進(jìn)行郵件傳送。更特別的是,郵件可以通過不同網(wǎng)絡(luò)上的主機(jī)接力式傳送。SMTP協(xié)議屬于TCPIP協(xié)議族,它幫助每臺(tái)計(jì)算機(jī)在發(fā)送或中轉(zhuǎn)信件

5、時(shí)找到下一個(gè)目的地。通過SMTP協(xié)議所指定的服務(wù)器,我們就可以把Email寄到收信人的服務(wù)器上了,整個(gè)過程只要幾分鐘。SMTP服務(wù)器則是遵循SMTP協(xié)議的發(fā)送郵件服務(wù)器,用來發(fā)送或中轉(zhuǎn)你發(fā)出的電子郵件。SMTP 是一種提供可靠且有效電子郵件傳輸?shù)膮f(xié)議。SMTP是建模在 FTP 文件傳輸服務(wù)上的一種郵件服務(wù),主要用于傳輸系統(tǒng)之間的郵件信息并提供來信有關(guān)的通知。SMTP 獨(dú)立于特定的傳輸子系統(tǒng),而且僅要求一條可以保證傳送數(shù)據(jù)單元順序的通道且只需要可靠有序的數(shù)據(jù)流信道支持。SMTP 重要特性之一是其能跨越網(wǎng)絡(luò)傳輸郵件,即“ SMTP郵件中繼”。通常,一個(gè)網(wǎng)絡(luò)可以由公用互聯(lián)網(wǎng)上 TCP 可相互訪問的主

6、機(jī)、防火墻分隔的 TCP/IP 網(wǎng)絡(luò)上 TCP 可相互訪問的主機(jī),及其它 LAN/WAN 中的主機(jī)利用非 TCP 傳輸層協(xié)議組成。使用 SMTP ,可實(shí)現(xiàn)相同網(wǎng)絡(luò)上處理機(jī)之間的郵件傳輸,也可通過中繼器或網(wǎng)關(guān)實(shí)現(xiàn)某處理機(jī)與其它網(wǎng)絡(luò)之間的郵件傳輸。在這種方式下,郵件的發(fā)送可能經(jīng)過從發(fā)送端到接收端路徑上的大量中間中繼器或網(wǎng)關(guān)主機(jī)。域名服務(wù)系統(tǒng)(DNS)的郵件交換服務(wù)器可以用來識(shí)別出傳輸郵件的下一跳 IP 地址。SMTP在傳輸文件過程中使用25號(hào)端口可大致用下面的圖2-1來表示:用戶發(fā)送SMTP文件系統(tǒng)接收SMTP文件系統(tǒng)SMTP命令郵件內(nèi)容 應(yīng)答 圖2-1 SMTP通信模型2.2 javamail

7、API的簡(jiǎn)介一般情況下,在eclipse中,電子郵件程序的編寫是主要是利用Java jdk1.7擴(kuò)展包JavaMailAPI等及相關(guān)的SMTP等通信協(xié)議來實(shí)現(xiàn)的。隨著現(xiàn)代軟件業(yè)的發(fā)展,java提供了方便、簡(jiǎn)易、與服務(wù)器無關(guān)且穩(wěn)固的電子郵件處理組件,使我們可以在程序開發(fā)語言中調(diào)用這些組件,利用很簡(jiǎn)單的語言實(shí)現(xiàn)功能強(qiáng)大的程序。JavaMail便是一個(gè)很好的電子郵件程序開發(fā)擴(kuò)展組件。JavaMail API是讀取、撰寫、發(fā)送電子信息的可選包。我們可用它來建立如Eudora、Foxmail、MS Outlook Express一般的郵件用戶代理程序(Mail User Agent,簡(jiǎn)稱MUA)。而不是

8、像sendmail或者其它的郵件傳輸代理(Mail Transfer Agent,簡(jiǎn)稱MTA)程序那樣可以傳送、遞送、轉(zhuǎn)發(fā)郵件。從另外一個(gè)角度來看,我們這些電子郵件用戶日常用MUA程序來讀寫郵件,而MUA依賴著MTA處理郵件的遞送。JavaMail核心類:Session、Message、Address、Authenticator、Transport、Store、Folder。Session類:定義了基本的郵件會(huì)話。就像Http會(huì)話那樣,我們進(jìn)行收發(fā)郵件的工作都是基于這個(gè)會(huì)話的。Session對(duì)象利用了java.util.Properties對(duì)象獲得了郵件服務(wù)器、用戶名、密碼信息和整個(gè)應(yīng)用程序都

9、要使用到的共享信息。Message類:當(dāng)我們建立了Session對(duì)象后,便可以被發(fā)送的構(gòu)造信息體了。在這里SUN提供了Message類型來幫助開發(fā)者完成這項(xiàng)工作。由于Message是一個(gè)抽象類,大多數(shù)情況下,我們使用ernet.MimeMessage這個(gè)子類,該類是使用MIME類型、MIME信息頭的郵箱信息。信息頭只能使用US-ASCII字符,而非ASCII字符將通過編碼轉(zhuǎn)換為ASCII的方式使用。Address類:到這里,我們已經(jīng)建立了Session和Message,下面將介紹如何使用郵件地址類:Address。像Message一樣,Address類也是一個(gè)抽象類

10、,所以我們將使用ernet.InternetAddress這個(gè)子類。Authenticator類:像類那樣,JavaMail API通過使用授權(quán)者類(Authenticator)以用戶名、密碼的方式訪問那些受到保護(hù)的資源,在這里“資源”就是指郵件服務(wù)器。在javax.mail包中可以找到這個(gè)JavaMail的授權(quán)者類(Authenticator)。Transport類:在發(fā)送信息時(shí),Transport類將被用到。這個(gè)類實(shí)現(xiàn)了發(fā)送信息的協(xié)議(通稱為SMTP),此類是一個(gè)抽象類,我們可以使用這個(gè)類的靜態(tài)方法send()來發(fā)送消息:Transport.send(messa

11、ge);Store和Folder類:接收郵件和發(fā)送郵件很類似都要用到Session。但是在獲得Session后,我們需要從Session中獲取特定類型的Store,然后連接到Store,這里的Store代表了存儲(chǔ)郵件的郵件服務(wù)器。在連接Store的過程中,極有可能需要用到用戶名、密碼或者Authenticator。3.概要設(shè)計(jì)3.1 系統(tǒng)的總體結(jié)構(gòu)框圖(類圖)EmailSender在程序中綁定發(fā)件人,收件人地址,標(biāo)題,正文,附件驗(yàn)證成功后,根據(jù)所填寫的地址,每間隔一秒.將郵件發(fā)送到各個(gè)目的郵箱驗(yàn)證成功后,自動(dòng)填寫附件名,將附件封包,根據(jù)所填寫的地址,將郵件發(fā)送到目的郵箱驗(yàn)證成功后,根據(jù)所填寫的

12、地址,將郵件發(fā)送到目的郵箱PropertiesPasswordAuthentication使用的pop和stmp服務(wù)器以及將賬號(hào)密碼進(jìn)行登陸驗(yàn)證catch (Exception e)檢查錯(cuò)誤,.如有錯(cuò)誤,提交錯(cuò)誤報(bào)告有多個(gè)目的地址只有一個(gè)目的地址有附件EmailClinet填寫發(fā)件人和收件人地址,標(biāo)題,正文,附件,圖3-1 系統(tǒng)的總體結(jié)構(gòu)框圖每份電子郵件的發(fā)送都要涉及到發(fā)送方與接收方,發(fā)送方式構(gòu)成客戶端,而接收方構(gòu)成服務(wù)器。發(fā)送方通過郵件客戶程序,將編輯好的電子郵件向郵局服務(wù)器(SMTP服務(wù)器)發(fā)送。郵局服務(wù)器識(shí)別接收者的地址,并向管理該地址的郵件服務(wù)器(POP3服務(wù)器)發(fā)送消息。我使用新浪免

13、費(fèi)提供的POP服務(wù),直接使用注冊(cè)的賬號(hào)密碼登陸服務(wù)器向目的地址發(fā)送郵件。POP 協(xié)議具體過程是:郵件發(fā)送到服務(wù)器上,電子郵件客戶端調(diào)用郵件客戶機(jī)程序以連接服務(wù)器,并下載所有未閱讀的電子郵件。這種離線訪問模式是一種存儲(chǔ)轉(zhuǎn)發(fā)服務(wù),將郵件從郵件服務(wù)器端送到個(gè)人終端機(jī)器上,一般是 PC 機(jī)或 MAC。一旦郵件發(fā)送到 PC 機(jī)或 MAC 上,郵件服務(wù)器上的郵件將會(huì)被刪除。3.2系統(tǒng)模塊結(jié)構(gòu)電子郵件客戶端主要由以下兩個(gè)模塊構(gòu)成:發(fā)送郵件模塊、用戶登入。其功能模塊如圖2-1所示:電子郵件發(fā)送端程序用戶登入發(fā)送郵件 圖3-2 系統(tǒng)功能模塊圖1)用戶登入:當(dāng)郵箱跟密碼正確的時(shí)候才可以登入進(jìn)去。2)發(fā)送郵件模塊:

14、郵件正文寫好后然后點(diǎn)發(fā)送。 3.3類的功能設(shè)計(jì)3.3.1 用戶登入類關(guān)鍵變量:private JPanel mailPanel = new JPanel();private JPanel passwordPanel=new JPanel();private JPanel mailLoginPanel;private JComboBox jComboBox;private JLabel maitLabel;private JLabel mailPasswordLable;private JTextField mailText;private JPasswordField passwordText

15、;。關(guān)鍵方法:String mail=mailText.getText();String password=passwordText.getText();3.3.2 郵件發(fā)送類關(guān)鍵變量:private JLabel subject;/郵件主題private JLabel mainContent;/郵件正文private JLabel address;/目的郵箱private JTextField subjectText;private JTextArea contentText;private JTextArea addText;private JPanel subjectPanel;priv

16、ate JPanel contentPanel;private JPanel addressPanel;private JButton sendButton;private JButton sendSuccess;private JButton sendAgain;關(guān)鍵方法: public static void send(String mail,String password,String receivers, String subject, String mailContent, String mimetype) send(receivers, subject, mailContent,

17、mimetype); public static void send(String receiver, String subject, String mailContent, String mimetype) send(new Stringreceiver, subject, mailContent, mimetype); public static void send(String receivers, String subject, String mailContent, String mimetype) send(receivers, subject, mailContent, null

18、, mimetype); 3.4郵件發(fā)送流程圖郵件發(fā)送流程圖如圖3-4,發(fā)送郵件時(shí)會(huì)對(duì)郵件以及賬號(hào)進(jìn)行處理和驗(yàn)證。當(dāng)賬號(hào)跟密碼都符合的時(shí)候,然后點(diǎn)擊發(fā)送,郵件就發(fā)出去了。假如賬號(hào)跟密碼不正確的話,郵件就發(fā)送失敗。密碼發(fā)送發(fā)送成功密碼正確發(fā)送失敗密碼不正確郵箱圖3-4 郵件發(fā)送流程圖4.功能模塊的實(shí)現(xiàn)4.1 程序主界面的實(shí)現(xiàn)本次設(shè)計(jì)中,主要用到對(duì)話框Java圖形界面。Java圖形界面是實(shí)現(xiàn)應(yīng)用程序人機(jī)交互的重要組成部分。它不但可以實(shí)現(xiàn)數(shù)據(jù)流的輸入和輸出,而且也可以移動(dòng)和關(guān)閉對(duì)話框。主界面有對(duì)應(yīng)的按鈕,方便用戶使用。 關(guān)鍵代碼如下:首先構(gòu)造客戶端面板,定義以下幾個(gè)需要的界面和按鈕maitLabel

19、=new JLabel("郵箱");mailPasswordLable=new JLabel("密碼");subject=new JLabel("郵件主題");mainContent=new JLabel("郵件正文");address=new JLabel("目的郵箱");sendButton=new JButton("發(fā)送");其次將其安排到客戶端面板上相應(yīng)位置container.add(mailLoginPanel,BorderLayout.NORTH);contain

20、er.add(contentPanel,BorderLayout.CENTER);container.add(addressPanel,BorderLayout.SOUTH);設(shè)置面板背景顏色contentPanel.setBackground(Color.yellow);addressPanel.setBackground(Color.yellow);圖4-1 程序主界面實(shí)現(xiàn)圖4.2郵件發(fā)送的實(shí)現(xiàn)首先進(jìn)入主界面,在主界面輸入郵箱、密碼、郵件主題、郵件正文和目的郵箱,然后點(diǎn)發(fā)送,假如郵箱賬號(hào)跟密碼都正確的話就可以發(fā)送郵件,否則就發(fā)送不成功,如圖所示。1)獲取收件人賬號(hào)(程序會(huì)檢測(cè)輸入賬號(hào)合法性

21、)。 關(guān)鍵代碼:String mail=mailText.getText();String password=passwordText.getText();/ SMTP服務(wù)器需要驗(yàn)證:props.put("mail.smtp.host", "");/Smtpprops.put("mail.smtp.auth", "true");2)獲取賬號(hào)設(shè)置界面中用戶輸入的賬號(hào)和密碼傳入服務(wù)器。關(guān)鍵代碼:/ 傳入用戶名和口令:Session session = Session.getDefaultInstance(props,

22、new Authenticator() protected PasswordAuthentication getPasswordAuthentication() return new PasswordAuthentication("wangxy070421","880722");session.setDebug(true);3)郵件發(fā)送成功的提示關(guān)鍵代碼:sendSuccess=new JButton("發(fā)送成功!");sendSuccess.setBackground(Color.red);sendSuccess.setVisibl

23、e(false);圖4-2 郵件發(fā)送的實(shí)現(xiàn)圖5.程序測(cè)試5.1 主界面測(cè)試本次設(shè)計(jì)中,主要用到對(duì)話框Java圖形界面。Java圖形界面是實(shí)現(xiàn)應(yīng)用程序人機(jī)交互的重要組成部分。它不但可以實(shí)現(xiàn)數(shù)據(jù)流的輸入和輸出,而且也可以移動(dòng)和關(guān)閉對(duì)話框。主界面有對(duì)應(yīng)的按鈕,方便用戶使用, 如圖所示。圖5-1主界面測(cè)試5.2發(fā)送電子郵件程序測(cè)試在上一步已經(jīng)測(cè)試了賬號(hào)輸入,然后再收件人地址輸入框中輸入“”。接下來在主題輸入框中輸入“郵件測(cè)試”,正文中輸入“<b>郵件測(cè)試</b><br>余輝 1008041113”,最后點(diǎn)擊發(fā)送,當(dāng)郵件發(fā)送成功會(huì)在發(fā)送旁邊返回“發(fā)送成功”的信息。如圖

24、為測(cè)試郵件發(fā)送成功。圖5-2(a)發(fā)送電子郵件程序測(cè)試面圖5-2(b)發(fā)送電子郵件程序測(cè)試面6.總結(jié)這次課程設(shè)計(jì)我做的是郵件發(fā)送程序,我主要利用java語言和MyEclipse工具來實(shí)現(xiàn)郵件的幾個(gè)主要功能,包括標(biāo)題,正文,附件以及多方發(fā)送等,通過自我學(xué)習(xí),以及在老師的輔導(dǎo)下順利實(shí)現(xiàn)使用代碼發(fā)送郵件功能.完成一次從理論向?qū)嵺`的過程,找到了一些自己在平時(shí)學(xué)習(xí)中的不足和問題.由于程序?qū)嵭休^為復(fù)雜,所以應(yīng)該在一開始時(shí)做好規(guī)劃,畫好流程圖,做好大體框架,然后再逐一細(xì)化,再把各個(gè)模塊聯(lián)系起來.一定要做好步步扎實(shí),否則容易因?yàn)槔绶庋b問題等造成的混亂總體實(shí)行流程是1. 寫好郵件內(nèi)容2. 通過兩種協(xié)議,即SM

25、TP(Simple Mail Transfer Protocol,簡(jiǎn)單郵件傳輸協(xié)議)和POP3(Post Office Protocol,郵局協(xié)議3),使用實(shí)現(xiàn)注冊(cè)好的郵件賬號(hào)和密碼進(jìn)行登陸和驗(yàn)證3. 驗(yàn)證成功后,將之前寫好的郵件通過服務(wù)器發(fā)送到目的地址4. 發(fā)送成功,否則返回錯(cuò)誤報(bào)告這次課程設(shè)計(jì)也激發(fā)了我今后努力學(xué)習(xí)的興趣,我想這將對(duì)我以后的學(xué)習(xí)產(chǎn)生積極的影響。另外在課程設(shè)計(jì)的過程中,當(dāng)我們碰到不明白的問題時(shí),指導(dǎo)老師總是耐心的講解,給我們的設(shè)計(jì)以極大的幫助,使我們獲益匪淺。因此非常感謝老師的教導(dǎo)。通過這次設(shè)計(jì),我懂得了學(xué)習(xí)的重要性,了解到理論知識(shí)與實(shí)踐相結(jié)合的重要意義,學(xué)會(huì)了堅(jiān)持、耐心和努

26、力,這將為自己今后的學(xué)習(xí)和工作做出了最好的榜樣。我覺得作為一名網(wǎng)絡(luò)工程專業(yè)的學(xué)生,這次課程設(shè)計(jì)是很有意義的。更重要的是如何把自己平時(shí)所學(xué)的東西應(yīng)用到實(shí)際中??恐@一個(gè)多禮拜的“學(xué)習(xí)”,在老師同學(xué)的幫助和講解下,自己開始主動(dòng)學(xué)習(xí)并逐步從基礎(chǔ)慢慢開始弄懂它。在這次課程設(shè)計(jì)作業(yè)的過程中由于在設(shè)計(jì)方面我缺少經(jīng)驗(yàn),理論基礎(chǔ)知識(shí)掌握得不牢固,在設(shè)計(jì)中難免會(huì)出現(xiàn)這樣那樣的問題,如:確定設(shè)計(jì)方案時(shí),在附件名選擇模塊中“卡住了”,再次,在一些細(xì)節(jié)方面比較薄弱,出錯(cuò)檢測(cè)模塊,服務(wù)器驗(yàn)證等方面都遇到了困難,在同學(xué)的幫助下逐步解決了。這些都暴露出了前期我在這些方面知識(shí)的欠缺和經(jīng)驗(yàn)的不足。對(duì)于我來說,收獲最大的是方法和

27、能力;那些分析和解決問題的能力。在整個(gè)課程設(shè)計(jì)的過程中,我發(fā)現(xiàn)我在經(jīng)驗(yàn)方面十分缺乏,有時(shí)候空有理論知識(shí),沒有理性的知識(shí);有些東西可能與實(shí)際脫節(jié)??傮w來說,我覺得像課程設(shè)計(jì)這種類型對(duì)我們的幫助還是很大的,它需要我們將學(xué)過的相關(guān)知識(shí)系統(tǒng)地聯(lián)系起來,從中暴露出自身的不足,以待改進(jìn)!致 謝感謝我的指導(dǎo)老師陳濤老師,本次論文的每個(gè)細(xì)節(jié)和每個(gè)數(shù)據(jù),都離不開他的細(xì)心指導(dǎo)。陳老師嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;他循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪。無論在理論上還是在實(shí)踐中,陳老師都給了我很大的幫助,使我得到不少的提高這對(duì)于我以后的工作和學(xué)習(xí)都有一種巨大的幫助。另外,在系統(tǒng)開發(fā)過

28、程中同學(xué)也給予我很大的幫助,幫助解決了不少的難點(diǎn),使得系統(tǒng)能及時(shí)開發(fā)完成,這里一并表示感謝。 在論文即將完成之際,我的心情無法平靜,從開始進(jìn)入課題到論文的順利完成,有許多可敬的師長(zhǎng)、同學(xué)、朋友給了我無私的幫助,在這里請(qǐng)接受我誠摯的謝意!最后祝各位老師工作順利、身體健康!參考文獻(xiàn)1謝希仁.計(jì)算機(jī)網(wǎng)絡(luò).第五版M.北京:電子工業(yè)出版社,2008.12耿祥義,張躍平.Java大學(xué)實(shí)用教程.第二版M.北京:電子工業(yè)出版社,2005.53王勇,代桂平.計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)M.北京:清華大學(xué)出版社,2009.64耿祥義,張躍平.Java大學(xué)實(shí)用教程學(xué)習(xí)指導(dǎo).第二版M.北京:電子工業(yè)出版社,2005.55.(美

29、)埃史爾 .Java編程思想(第4版). 機(jī)械工業(yè)出版社.20076 陳海山.深入Java Servlet 網(wǎng)絡(luò)編程M.北京:清華大學(xué)出版社,2002.2 7 Karl Moss. Java Servlet開發(fā)人員指南M.北京:清華大學(xué)出版社,20028 Liang, Y.D. Java語言程序設(shè)計(jì)基礎(chǔ)篇.機(jī)械工業(yè)出版社,20069 劉曉華. 精通Java核心技術(shù).電子工業(yè)出版社,2003附錄1:EmailClient類功能:該類是實(shí)現(xiàn)系統(tǒng)界面的類。import java.awt.BorderLayout;import java.awt.Color;import java.awt.C

30、ontainer;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JComponent;import javax.swing.JFrame;import javax.swing.JInternalFrame

31、;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextArea;import javax.swing.JTextField;public class EmailClient extends JFrameprivate JLabel subject;/郵件主題private JLabel mainContent;/郵件正文private JLabel fujian;/附件private JLabel address;/目的郵箱pr

32、ivate JTextField subjectText;private JTextArea contentText;private JTextArea addText;private JPanel subjectPanel;private JPanel contentPanel;private JPanel addressPanel;private JButton sendButton;private JButton sendSuccess;private JButton sendAgain;/發(fā)送者郵箱和密碼private JPanel mailPanel = new JPanel();p

33、rivate JPanel passwordPanel=new JPanel();private JPanel mailLoginPanel;private JComboBox jComboBox;private JLabel maitLabel;private JLabel mailPasswordLable;private JTextField mailText;private JPasswordField passwordText;/構(gòu)造方法public EmailClient()super("郵件群發(fā)器");this.setSize(550, 600);/獲取面板C

34、ontainer container=getContentPane();/發(fā)件人郵箱maitLabel=new JLabel("郵箱");mailPasswordLable=new JLabel("密碼");mailText=new JTextField(10);passwordText=new JPasswordField(10);mailLoginPanel=new JPanel();mailLoginPanel.setBackground(Color.yellow);mailLoginPanel.setLayout(new GridLayout(3

35、,4);mailLoginPanel.add(mailPanel);mailLoginPanel.add(passwordPanel);/郵件主題subject=new JLabel("郵件主題");subjectText=new JTextField("", 10);subjectPanel=new JPanel(new FlowLayout();subjectPanel.add(subject);subjectPanel.add(subjectText);mailLoginPanel.add(new JLabel("");mail

36、LoginPanel.add(maitLabel);mailLoginPanel.add(mailText);mailLoginPanel.add(new JLabel("");mailLoginPanel.add(new JLabel("");mailLoginPanel.add(mailPasswordLable);mailLoginPanel.add(passwordText);mailLoginPanel.add(new JLabel("");mailLoginPanel.add(new JLabel(""

37、);mailLoginPanel.add(subject);mailLoginPanel.add(subjectText);mailLoginPanel.add(new JLabel("");/郵件正文mainContent=new JLabel("郵件正文");contentText=new JTextArea(18,23);contentText.setFont(new Font("Serif",Font.PLAIN,14);contentText.setLineWrap(true);contentText.setEditable

38、(true);contentPanel=new JPanel();contentPanel.add(mainContent);contentPanel.add(contentText);/目的郵箱address=new JLabel("目的郵箱");addText=new JTextArea(5,25);addressPanel=new JPanel();/發(fā)送成功提示sendSuccess=new JButton("發(fā)送成功!");sendSuccess.setBackground(Color.red);sendSuccess.setVisible(f

39、alse);/重新發(fā)送sendAgain=new JButton("再寫一封");Handler handler=new Handler();sendAgain.addActionListener(handler);sendAgain.setBackground(Color.blue);sendAgain.setVisible(false);/發(fā)送按鈕sendButton=new JButton("發(fā)送");sendButton.addActionListener(handler);addressPanel.add(sendSuccess,BorderL

40、ayout.NORTH);addressPanel.add(sendAgain,BorderLayout.NORTH);addressPanel.add(address,BorderLayout.SOUTH);addressPanel.add(addText,BorderLayout.SOUTH);addressPanel.add(sendButton,BorderLayout.SOUTH);/設(shè)置底板顏色subjectPanel.setBackground(Color.yellow);contentPanel.setBackground(Color.yellow);addressPanel.

41、setBackground(Color.yellow);/將組件添加到面板上container.add(mailLoginPanel,BorderLayout.NORTH);container.add(contentPanel,BorderLayout.CENTER);container.add(addressPanel,BorderLayout.SOUTH);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);/綁定事件private class Handler implements ActionListenerpublic vo

42、id actionPerformed(ActionEvent e) / TODO Auto-generated method stub;if(e.getSource()=sendButton)/獲取郵件內(nèi)容Thread2 t=new Thread2();t.start();else if(e.getSource()=sendAgain)subjectText.setText("");contentText.setText("");sendSuccess.setVisible(false);sendAgain.setVisible(false);publi

43、c static void main(String args) EmailClient emailClient=new EmailClient();System.out.println("sdsdf");class Thread2 extends Threadpublic void run()String subject=subjectText.getText();String content=contentText.getText();String address=addText.getText();String mail=mailText.getText();Strin

44、g password=passwordText.getText();if(address!=null)String adds=address.split("");EmailSender.send(mail,password,adds, subject, content, "text/html");/發(fā)送完畢sendSuccess.setVisible(true);sendAgain.setVisible(true);System.out.println("發(fā)送完畢!");elseaddText.setText("沒有寫郵件地

45、址地址");附錄2:MainSender類功能:實(shí)現(xiàn)郵件發(fā)送等主要功能import java.io.File;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.Multi

46、part;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import ernet.InternetAddress;import ernet.MimeBodyPart;import ernet.MimeMessage;import ernet.MimeMultipart;import ernet.MimeUtilit

47、y;import javax.swing.plaf.SliderUI;public class EmailSender private static final String charset = "GBK" private static final String defaultMimetype = "text/plain" public static void main(String args) throws Exception / EmailSender.send(new String"wp0905070417", "&q

48、uot;, "",null , "text/html"); sendByoneSecond(new String"yuhui", "", "",null , "text/html"); /* * 每隔1秒發(fā)送一個(gè)封郵件 * author weiping */ public static void sendByoneSecond(String adds,String title,String content,File files,String contentType) if(a

49、dds!=null&&adds.length>0) for (int i = 0; i < adds.length; i+) try Thread.sleep(1000); catch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace(); EmailSender.send(new Stringaddsi, title, content, files,contentType); public static void send(String mail,String p

50、assword,String receivers, String subject, String mailContent, String mimetype) send(receivers, subject, mailContent, mimetype); public static void send(String receiver, String subject, String mailContent, String mimetype) send(new Stringreceiver, subject, mailContent, mimetype); public static void s

51、end(String receivers, String subject, String mailContent, String mimetype) send(receivers, subject, mailContent, null, mimetype); public static void send(String receivers, String subject, String mailContent, File attachements, String mimetype) Properties props = new Properties(); props.put("mail.smtp.host", "");/Smtp props.put("mail.smtp.auth", "true"); Session session = Session.getDefaultInstance(props, new Authenticator() protected PasswordAuthentication getPasswordAuthentication() return new Pas

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論