国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

C/S模式下的電子郵件系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2012-01-01 00:00:00張黎
科技資訊 2012年2期


  摘要:本文就網(wǎng)絡(luò)聊天服務(wù)器程序和網(wǎng)絡(luò)聊天客戶程序兩個(gè)方面展開論述。前者通過Socket套接字建立服務(wù)器,服務(wù)器能讀取,轉(zhuǎn)發(fā)客戶端發(fā)來信息。后者通過與服務(wù)器建立連接,來進(jìn)行客戶端與客戶端的信息交流。根據(jù)局域網(wǎng)通信機(jī)制的原理,通過直接繼承Thread類來建立多線程。在網(wǎng)絡(luò)鳊程中對信息的讀取、發(fā)送,利用流來實(shí)現(xiàn)信息的交換,對實(shí)現(xiàn)一個(gè)系統(tǒng)的信息流進(jìn)行分析。首先在短時(shí)間內(nèi)建立系統(tǒng)應(yīng)用原型,然后對初始原型系統(tǒng)進(jìn)行不斷修正和改進(jìn),直到形成實(shí)用系統(tǒng)。
  關(guān)鍵詞:客戶端/服務(wù)器端模式 套接字 電子郵件
  中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1672-3791(201 2)01(b)-0045-05
  1 系統(tǒng)總體框架
  電子郵件系統(tǒng)可分為客戶端和服務(wù)器兩部分,根據(jù)郵件在傳輸時(shí)使用的協(xié)議它們又分別可以分為SMTP和POP3協(xié)議。圖1中給出了電子郵件系統(tǒng)的整體框架結(jié)構(gòu)。首先由ESMTP客戶端編寫并發(fā)送郵件;SMTP服務(wù)器接收到郵件后根據(jù)收件人是否是本地用戶進(jìn)行分發(fā)。如果是本地用戶,則將郵件直接投遞到用戶郵箱中;如果是遠(yuǎn)程郵箱,則將郵件轉(zhuǎn)發(fā)到收件人所在的服務(wù)器上;最后收件人通過POP3客戶端經(jīng)過POP3服務(wù)器,把郵件從服務(wù)器上的郵箱中取到本地主機(jī)上進(jìn)行解析和顯示。
  
  2 EsMTP客戶端的詳細(xì)設(shè)計(jì)
  2.1 檢查郵件信息完整性模塊
  當(dāng)發(fā)送郵件時(shí),點(diǎn)擊發(fā)送按鈕,首先是對界面上要求用戶填寫的郵件信息區(qū)域進(jìn)行檢查。
  2.2 郵件信息編碼模塊
  當(dāng)點(diǎn)擊發(fā)送按鈕后,并對相關(guān)填寫信息核對后,就進(jìn)入郵件信息編碼模塊,現(xiàn)在的SMTP服務(wù)器都需要身份驗(yàn)證,即為EsMTP,而在驗(yàn)證前首先要對用戶名和密碼進(jìn)行Base64的編碼。
  2.3 郵件發(fā)送模塊
  當(dāng)經(jīng)過郵件信息完整性檢查和信息編碼后,則進(jìn)入郵件發(fā)送模塊,郵件發(fā)送模塊是指從連接服務(wù)器開始到郵件發(fā)送成功的整個(gè)過程。只有遵照ESMTP協(xié)議,按照一定的過程與服務(wù)器交互,才能將用戶已經(jīng)寫好的郵件完整無缺的發(fā)送出去,這整個(gè)交互過程是在Winsock控件的DataArrival事件中完成的。
  2.4 附件選取功能實(shí)現(xiàn)
  首先添加CommonDialog控件,名稱為dlgFile,因?yàn)镃ommonDialog控件提供諸如打開和保存文件、設(shè)置打印選項(xiàng)、選擇顏色和字體等操作的一組標(biāo)準(zhǔn)對話框。而程序中只需要CommonDialog控件提供打開這個(gè)標(biāo)準(zhǔn)對話框。通過打開這個(gè)對話框我們可以選取要添加的附件路徑。其次再添加兩個(gè)按鈕控件,分別名稱為cmdAddAdjunct與cmdRemoveAdjunct,前者為添加附件按鈕,后者為刪除附件按鈕。
  2.5 狀態(tài)顯示功能實(shí)現(xiàn)
  在發(fā)送郵件過程中,當(dāng)客戶端與服務(wù)器進(jìn)行交互時(shí),一般各個(gè)狀態(tài)是在客戶端與服務(wù)器默認(rèn)情況下進(jìn)行的,但是為了讓用戶了解到傳輸?shù)倪^程,因此添加了狀態(tài)顯示功能,用label控件可以實(shí)現(xiàn)此功能。
  3 POP3客戶端的詳細(xì)設(shè)計(jì)
  3.1 客戶端連接POP3服務(wù)器
  當(dāng)填寫好pop服務(wù)器地址、用戶名、密碼時(shí)點(diǎn)擊按鈕,此時(shí)按鈕的Click事件里就開始與服務(wù)器建立連接,只有遵照POP3協(xié)議,按照一定的過程與服務(wù)器交互,才能夠從指定的服務(wù)器上指定的賬號中獲得完整的郵件信息。Winsockl_DataArrivai過程首先還是調(diào)用Winsock控件中的GetData方法從系統(tǒng)緩沖區(qū)中取得服務(wù)器發(fā)回的消息,然后遵照POP3協(xié)議進(jìn)行解析并給出相應(yīng)的回應(yīng)。
  3.2 從POP3服務(wù)器上檢取郵件
  從POP3服務(wù)器上檢取郵件,是在程序POP3_RETR狀態(tài)進(jìn)行的,在檢取的過程中用到了兩個(gè)類函數(shù)分別是Cmessage類和Cmessages類。首先Cmessage類是代表個(gè)體,Cmessage類模塊包裝了從服務(wù)器上接收POP3郵件,它提供了各種屬性和方法來訪問郵件的不同參數(shù)。
  3.3 用戶界面上顯示選定的郵件
  當(dāng)在列表試圖中選定某個(gè)郵件時(shí),郵件接收客戶端就會(huì)認(rèn)為用戶想要瀏覽這封郵件,于是在相應(yīng)列表試圖的ItemClick事件時(shí),我們從郵件集合中讀取相應(yīng)郵件,并將郵件內(nèi)容顯示在正文文本框內(nèi)。
  4 搭建虛擬局域網(wǎng)服務(wù)器
  因?yàn)楸緶y試階段需要電子郵件客戶端利用向虛擬局域網(wǎng)郵件服務(wù)器和廣域網(wǎng)公共郵件服務(wù)器上發(fā)送或接收郵件的試驗(yàn)對比,來測試其兼容有效性,這就需要搭建一個(gè)虛擬郵件服務(wù)器,本文通過Windows Server 2003提供的POP3服務(wù)和SMTP服務(wù)架設(shè)小型郵件服務(wù)器來滿足需要。
  4.1 安裝POP3和SMTP服務(wù)組件
  Windows Server 2003下手工添加POP3和SMTP服務(wù)組件。
  4.2 安裝POP3服務(wù)組件
  以系統(tǒng)管理員身份登錄Window sServer 2003系統(tǒng)。依次進(jìn)入“控制面板一添加或刪除程序一添加/刪除Windows組件”在彈出的“Windows組件向?qū)А睂υ捒蛑羞x中“電子郵件服務(wù)”選項(xiàng),點(diǎn)擊“詳細(xì)信息”按鈕,選中“POP 3服務(wù)Web管理”。
  4.3 安裝SMTP服務(wù)組件
  選中“應(yīng)用程序服務(wù)器”選項(xiàng),點(diǎn)擊“詳細(xì)信息”按鈕,接著在“Internet信息服務(wù)(IIs)”選項(xiàng)中查看詳細(xì)信息,選中“SMTPService”。完成以上設(shè)置后,點(diǎn)擊“下一步”按鈕,系統(tǒng)就開始安裝配置POP3和SMTP服務(wù)了。
  4.4 配置POP3服務(wù)器
  創(chuàng)建郵件域:點(diǎn)擊“開始一管理工具一POP3服務(wù)”,彈出POP3服務(wù)控制臺窗口。選中左欄中的POP3服務(wù)后,點(diǎn)擊右欄中的“新域”,彈出“添加域”對話框,接著在“域名”欄中輸入郵件服務(wù)器的域名,“sy.com”。
  4.5 創(chuàng)建用戶郵箱
  選中剛才新建的“sy.com”域,在右欄中點(diǎn)擊“添加郵箱”,彈出添加郵箱對話框,在“郵箱名”欄中輸入郵件用戶名,然后設(shè)置用戶密碼,然后“確定”,完成郵箱的創(chuàng)建如圖2所示。
  4.6 配置SMTP服務(wù)器
  點(diǎn)擊“開始—程序—管理工具—Internet信息服務(wù)(IIs)管理器”,在“IIS管理器”窗口中右鍵點(diǎn)擊“默認(rèn)SMTP虛擬服務(wù)器”選項(xiàng),在彈出的菜單中選中“屬性”,進(jìn)入“默認(rèn)SMTP虛擬服務(wù)器”窗口,切換到“常規(guī)”標(biāo)簽頁,在“IP地址”下拉列表框中選中郵件服務(wù)器的IP地址如圖3所示。“確定”后,這個(gè)簡單的虛擬郵件服務(wù)器就架設(shè)完成了。
  
  完成以上設(shè)置后,就可以使用郵件客戶端軟件連接郵件服務(wù)器進(jìn)行郵件收發(fā)測試了。在設(shè)置郵件客戶端軟件的SMTP和POP3服務(wù)器地址時(shí),輸入郵件服務(wù)器的域名“sy.cn”。
  5 系統(tǒng)仿真
  5.1 郵件發(fā)送模塊測試
  (1)兼容性測試。
  檢查郵件發(fā)送客戶端是否能在實(shí)際中正常運(yùn)用。因?yàn)楸距]件系統(tǒng)采用的服務(wù)器為windows系統(tǒng)自帶的虛擬郵件服務(wù)器或是網(wǎng)絡(luò)中郵件服務(wù)器,所以針對不同的服務(wù)器進(jìn)行客戶端測試。
  首先可以看見郵件客戶端界面如圖4所示。從這里用戶選擇接收或發(fā)送郵件。
  
  當(dāng)虛擬郵件服務(wù)器配置好后,將虛擬郵件服務(wù)器的地址填寫在客戶端界面上,然后將自己創(chuàng)建的用戶名和密碼也填寫好,點(diǎn)擊發(fā)送按鈕,從客戶端的狀態(tài)欄中可以看到與虛擬郵件服務(wù)器的交互過程,最后彈出提示發(fā)送成功。表明郵件發(fā)送到服務(wù)器端。
  重新打開郵件發(fā)送客戶端,現(xiàn)在針對網(wǎng)絡(luò)中的服務(wù)器,如163郵件服務(wù)器進(jìn)行測試。首先填寫郵件服務(wù)器的地址:SMTP,163.com。然后將用戶名和密碼填寫好,最后按照界面要求填寫其他信息。最后添加附件,點(diǎn)擊發(fā)送按鈕,如圖5所示。
  
  同樣從狀態(tài)欄中看到客戶端與163sMTP服務(wù)器的交互過程,最后彈出信息提示發(fā)送成功,然后我們用IE登陸163郵件網(wǎng)址,登陸收件人用戶名的郵箱,可以在其中看到我們剛剛發(fā)送的郵件。圖6說明剛才發(fā)送成功。不過這里的用戶是針對開通SMTP服務(wù)器權(quán)限的用戶。同時(shí)可以看見附件也發(fā)送成功,并正確顯示在附件欄中。
  通過測試,說明接收服務(wù)器能夠正常的對ESMTP和SMTP命令做出響應(yīng),實(shí)現(xiàn)收取郵件過程,說明客戶端有較好的兼容性。能夠?qū)崿F(xiàn)在廣域網(wǎng)中或在局域網(wǎng)中發(fā)送電子郵件。
  
  
  (2)功能測試。
  狀態(tài)欄功能:在發(fā)送的過程中,狀態(tài)欄對交互過程的狀態(tài)能夠顯示(如圖7所示),狀態(tài)欄功能正常。
  郵件信息完整性檢查功能:當(dāng)我們故意漏填界面上的信息時(shí),就會(huì)彈出相應(yīng)的信息提示如圖8所示。
  特別是對收件人地址格式的錯(cuò)誤的檢查,保證信息的完整與正確性。
  (3)郵件內(nèi)容編碼功能測試。
  我們在發(fā)送郵件的時(shí)候在內(nèi)容里填寫英文和中文兩種字體,發(fā)送成功后,我們通過IE登陸收件人郵箱,可以看見剛才發(fā)送的郵件內(nèi)容中是英文和中字體。圖9說明郵件編碼功能正常。
  5.2 郵件接收模塊測試
  選用windows虛擬郵件服務(wù)器和163服務(wù)器進(jìn)行測試。
  當(dāng)虛擬郵件服務(wù)器設(shè)置成功后,在郵件接收客戶端填寫POP3地址,在虛擬服務(wù)器設(shè)置時(shí)自己創(chuàng)建的用戶和密碼,點(diǎn)擊確定,則在郵件列表上顯示郵箱內(nèi)的郵件,點(diǎn)擊列表中的其中一封郵件,則在內(nèi)容窗口中顯示郵件正文內(nèi)容,客戶端從POP3郵件服務(wù)器上檢取郵件成功,實(shí)現(xiàn)郵件接收查看。
  重新打開客戶端,測試從網(wǎng)絡(luò)中的郵件服務(wù)器上檢取郵件,選用163服務(wù)器進(jìn)行測試,先按照界面要求填寫信息,點(diǎn)擊確定后,在郵件列表上顯示郵件信息,點(diǎn)擊其中一封郵件,則在內(nèi)容窗口上顯示郵件正文內(nèi)容,圖10所示,說明郵件接收成功。
  通過測試,得知該客戶端能與廣域網(wǎng)中的服務(wù)器和局域網(wǎng)中的服務(wù)器都能連接,并檢取郵件信息和顯示郵件內(nèi)容。說明郵件接收功能正常,同時(shí)也說明該客戶端具有良好的兼容性
  6 結(jié)語
  本文就網(wǎng)絡(luò)聊天服務(wù)器程序和網(wǎng)絡(luò)聊天客戶程序兩個(gè)方面展開論述。在網(wǎng)絡(luò)編程中對信息的讀取、發(fā)送,利用流來實(shí)現(xiàn)信息的交換,對實(shí)現(xiàn)一個(gè)系統(tǒng)的信息流進(jìn)行分析。首先在短時(shí)間內(nèi)建立系統(tǒng)應(yīng)用原型,然后對初始原型系統(tǒng)進(jìn)行不斷修正和改進(jìn),直到形成實(shí)用系

墨玉县| 怀仁县| 保德县| 吉水县| 宝应县| 镇安县| 章丘市| 富源县| 乌兰浩特市| 拉孜县| 宝应县| 渝中区| 伊宁县| 平和县| 民县| 吉水县| 乐至县| 怀化市| 房产| 理塘县| 诸暨市| 彩票| 宜良县| 宜阳县| 庐江县| 怀仁县| 濮阳县| 延边| 广饶县| 内丘县| 龙里县| 辽宁省| 昭平县| 南和县| 东平县| 洛南县| 探索| 房产| 惠来县| 龙口市| 太谷县|