freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

電子郵件系統(tǒng)的設計與開發(fā)(編輯修改稿)

2025-07-27 07:03 本頁面
 

【文章內(nèi)容簡介】 erversigningoff(maildropempty)C:關閉連接S:等待下一次連接 RFC822簡介 電子郵件是全世界通用的。你可以給任何一個人發(fā)送電子郵件而不用考慮他所處的地理位置在哪或他使用的是什么軟件作為郵件接受客戶端。和其他與Internet相關的事物一樣(或者可以說,與計算機技術相關的事物),電子郵件也是基于一種標準的,而人們把這個特殊的標準稱作RFC 822。這個標準早在二十多年前(準確的日期是一九八二年八月十三日)就公布于世,在這期間它基本沒有改變。在2001年公布的RFC 2822標準取代了RFC 822,但是它的基本內(nèi)容和RFC 822是完全一致的,只是做了一些很小的更新和改動。而其他的一些郵件標準,比如RFC 850(在USENET上使用),同樣也基于RFC 822標準。(RFC,Request For Comments) Winsock簡介   許多網(wǎng)絡程序都是采用Socket套接字實現(xiàn)的,對于一些標準的網(wǎng)絡協(xié)議如HTTP、FTP和SMTP等協(xié)議的編程也是基于套接字程序的,只是端口號不再是隨意設定而要由協(xié)議來指定,比如HTTP端口在80、FTP是21,而SMTP則是25。Socket只是提供在指定的端口上同指定的服務器從事網(wǎng)絡上的通訊能力,至于客戶和服務器之間是如何通訊的則由網(wǎng)絡協(xié)議來規(guī)定,這對于套接字是完全透明的。因此可以由Socket套接字為SMTP提供網(wǎng)絡通訊基礎,而對于網(wǎng)絡通訊連路建立好之后采取什么樣的通訊應答則要按SMTP協(xié)議的規(guī)定去執(zhí)行了。本科題為方便起見,沒有采用編寫較復雜的Windows Sockets API進行編程,而是使用經(jīng)過較好封裝的MFC 的CSocket類。 MFC簡介 MFC (Microsoft Foundation Class Library)中的各種類結(jié)合起來構(gòu)成了一個應用程序框架,它的目的就是讓程序員在此基礎上來建立Windows下的應用程序,這是一種相對SDK來說更為簡單的方法。因為總體上,MFC框架定義了應用程序的輪廓,并提供了用戶接口的標準實現(xiàn)方法,程序員所要做的就是通過預定義的接口把具體應用程序特有的東西填入這個輪廓。Microsoft Visual C++提供了相應的工具來完成這個工作:AppWizard可以用來生成初步的框架文件(代碼和資源等);資源編輯器用于幫助直觀地設計用戶接口;ClassWizard用來協(xié)助添加代碼到框架文件;最后,編譯,則通過類庫實現(xiàn)了應用程序特定的邏輯。 MFC封裝了Win32 API,OLE API,ODBC API等底層函數(shù)的功能,并提供更高一層的接口,簡化了Windows編程。同時,MFC支持對底層API的直接調(diào)用。 MFC提供了一個Windows應用程序開發(fā)模式,對程序的控制主要是由MFC框架完成的,而且MFC也完成了大部分的功能,預定義或?qū)崿F(xiàn)了許多事件和消息處理,等等。框架或者由其本身處理事件,不依賴程序員的代碼;或者調(diào)用程序員的代碼來處理應用程序特定的事件。 MFC是C++類庫,程序員就是通過使用、繼承和擴展適當?shù)念悂韺崿F(xiàn)特定的目的。例如,繼承時,應用程序特定的事件由程序員的派生類來處理,不感興趣的由基類處理。實現(xiàn)這種功能的基礎是C++對繼承的支持,對虛擬函數(shù)的支持,以及MFC實現(xiàn)的消息映射機制。第三章 電子郵件系統(tǒng)的設計和開發(fā)本章首先對SMTP協(xié)議,POP3協(xié)議的工作流程作了詳細的分析,然后按照SMTP和POP3 協(xié)議結(jié)合Windows Sockets套接字進行設計實現(xiàn)代碼并封裝成CSMTP協(xié)議類和CPOP3協(xié)議類。最后根據(jù)客戶端的基本需求設計成客戶端郵件收發(fā)軟件,并以友好的界面形式呈現(xiàn)出來。 服務器端作用簡介SMTP,POP3采用Client/Server工作模式,Client被稱為客戶端,一般我們?nèi)粘J褂秒娔X都是作為客戶端,而Server(服務器)則是網(wǎng)管人員進行管理的。SMTP服務器的主要功能就是接收來自客戶端的SMTP協(xié)議命令,然后對這些命令進行解析,根據(jù)不同的命令進行不同的處理,處理完成之后,將結(jié)果發(fā)送給客戶端。圖要作說明serverclientclientclient 圖31 Client/Server工作模式示意圖 以下用簡單的流程圖來分別示范SMTP,POP3的服務器端與他們對應的客戶端的會話: 圖32 SMTP會話流程示意圖如圖示,連接和發(fā)送過程如下: ,然后客戶端發(fā)送MAIL命令服務器端正希望以OK作為響應,表明準備接收。 ,以標識該電子郵件的計劃接收人,可以有多個RCPT行。服務器端則表示是否愿意為收件人接受郵件。 ,發(fā)送郵件,用命令DATA發(fā)送。 。 ,用QUIT命令退出。 圖32 POP3會話流程示意圖如圖示,當郵件程序成功地連上POP服務器后,其先會使用USER命令將郵箱的賬號傳給POP服務器,然后再使用PASS命令將郵箱的賬號傳給服務器,當完成這一認證過程后,郵件程序使用STAT命令請求服務器返回郵箱的統(tǒng)計資料,比如郵件總數(shù)和郵件大小等,然后LIST便會列出服務器里郵件數(shù)量。然后郵件程序就會使用RETR命令接收郵件,也可在接收一封后便使用DELE命令將郵件服務器中的郵件置為刪除狀態(tài)。當使用QUIT時,郵件服務器便會將置為刪除標志的郵件給刪了。 客戶端程序設計 本節(jié)主要介紹客戶端的實現(xiàn)。本人選擇使用VC++,VC++++的開發(fā)環(huán)境,更有利于集中精力于主要功能的實現(xiàn)。由圖32,圖33可以明顯看出客戶端需完成的任務:1.發(fā)送SMTP命令,處理相應服務器的響應,將郵件按RFC822格式編碼并發(fā)送。2.發(fā)送POP3命令,處理相應服務器的響應,將郵件按RFC822格式解碼并發(fā)送。本系統(tǒng)的現(xiàn)實主要使用了CSMTP,CPOP3,CmailMessage封裝類。CSMTP類中的成員函數(shù)主要實現(xiàn)發(fā)送SMTP命令并處理SMTP服務器響應 ,CPOP3的成員函數(shù)主要實現(xiàn)發(fā)送POP3命令并處理POP3服務器響應,CMailMessage實現(xiàn)郵件的編碼解碼功能。由于電子郵件結(jié)構(gòu)上的特殊性,在傳輸時是不能當作簡單的文本來直接處理的,而必須按照一定的格式對郵件頭和郵件體進行格式化處理之后才可以被發(fā)送。需要進行格式化的部分主要有:發(fā)件人地址、收件人地址、主題和發(fā)送日期等。在RFC(Request For Comments)文檔的RFC 。BOOL EncodeHeader()。BOOL DecodeHeader()。void EncodeBody()。void DecodeBody()。下面通過VC++ 822文檔規(guī)定將格式化郵件的部分編寫如下(部分代碼):BOOL CMailMessage::EncodeHeader()//此函數(shù)為郵件頭部編碼(此處僅列出了關鍵部分){ CString sTo。 CString sDate。 CString sEmail = 。 CString sFriendly = 。 m_tDateTime = ()。 // Format: Mon, 01 Jun 98 01:10:30 GMT ( From: %s\r\n\ To: %s\r\n\ Date: %s\r\n\ Subject: %s\r\n, ………… // Include other extension lines if desired (LPCTSTR)m_sFrom, //sender (LPCTSTR)sTo, //recipients (LPCTSTR)sDate, //日期 (LPCTSTR)m_sSubject)。//主題}void CMailMessage::EncodeBody() //此函數(shù)為郵件體編碼(此處僅列出了關鍵部分){ CString sCooked = 。 LPTSTR szBad = \r\n.\r\n。 LPTSTR szGood = \r\n..\r\n。 int nPos。 int nBadLength = strlen( szBad )。 if( ( 3 ) == .\r\n ) m_sBody = . + m_sBody。 while( (nPos = ( szBad )) 1 ) { //npos中是結(jié)束符所在的位子,即共有多少有意義的字符 sCooked = ( 0, nPos )。 sCooked += szGood。 m_sBody = sCooked + ( () (nPos + nBadLength) )。 } //最后以\r\n.\r\n結(jié)尾} SMTPamp。POP3協(xié)議封裝類 很多EMAIL系統(tǒng)都是使用SMTP協(xié)議來作為發(fā)送協(xié)議,而POP3協(xié)議來作為接受協(xié)議。本節(jié)編寫了有關于SMTP,POP3協(xié)議的C++類,這樣的話呢,我們可以在連接的時候使用它。并且,類中實現(xiàn)的一些功能類似于SMTP,POP3協(xié)議中的一些命令。以下程序是通過使用MFC中CSocket類中成員函數(shù)的使用實現(xiàn)的。CSMTP c
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1