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

正文內(nèi)容

一個(gè)smtp客戶端程序的設(shè)計(jì)與實(shí)現(xiàn)—畢業(yè)設(shè)計(jì)論文(更新版)

  

【正文】 :私有成員變量,表示服務(wù)器的名稱(chēng)。其他模塊只需調(diào)用其接口方法,并傳遞正確的參數(shù),就可以方便的與服務(wù)器建立連接,并傳送郵件內(nèi)容。結(jié)構(gòu)清晰,功能相對(duì)完備,既完成了預(yù)期的需求,也學(xué)習(xí)到了有關(guān) SMTP 協(xié)議的知識(shí)。開(kāi)發(fā)者可能會(huì)花大量的時(shí)間在分析事件的流程上,而不是程序的邏輯。如果選擇使用 JAVA 作為開(kāi)發(fā)語(yǔ)言,并使用一種集成 IDE,如:JBUILDER。 3) 提供 BASE64 的加密算法,能夠?qū)τ脩糨斎氲臄?shù)據(jù)進(jìn)行加密。 4 SMTP 協(xié)議客戶端軟件設(shè)計(jì)與實(shí)現(xiàn) 需求分析與總體設(shè)計(jì) 功能分析 由本設(shè)計(jì)的題目可知,本設(shè)計(jì)的目的就是建立一款能夠發(fā)送郵件的客戶端軟件。作為一款優(yōu)秀的集成開(kāi)發(fā)環(huán)境,它提供了很多方便開(kāi)發(fā)的功能。由軟件業(yè)巨頭微軟強(qiáng)力推出。為了加深對(duì) SMTP 協(xié)議的理解,全面掌握 SMTP 協(xié)議,提高動(dòng)手能力和解決實(shí)際問(wèn)題的能力,而 提出了該課題??蛻舳税l(fā)送密碼給服務(wù)器,等待服務(wù)器的驗(yàn)證結(jié)果,服務(wù)器返回235 Authentication successful 信息給客戶端。 C: AUTH LOGIN S: 334 Username 的 BASE64 編碼 C: 用戶名 的 BASE64 編碼 S: 334 Password 的 BASE64 編碼 C: 密碼的 BASE64 編碼 S: 235 Authentication successful. 當(dāng)客戶端發(fā)送連接請(qǐng)求到 服務(wù)器時(shí),服務(wù)器返回 220 應(yīng)答碼,說(shuō)明目前服務(wù)器已經(jīng)準(zhǔn)備工作。沒(méi)有 改變?nèi)魏卧械拿睿皇呛?jiǎn)單的增加了內(nèi)容。服務(wù)器會(huì) 回 復(fù)它一個(gè)正常的代碼。在 SMTP 中規(guī)定了建立和銷(xiāo)毀通道的命令。 上面所述的過(guò)程是一個(gè)發(fā)送操作。 DATACRLF 如果命令被接收,接收方返回一個(gè) 354 Intermediate 應(yīng)答,并認(rèn)定以下的 各行都是信件內(nèi) 容。如果請(qǐng)求被接收,接收方返回一個(gè) 250 OK應(yīng)答。得到服務(wù)器的信息后,對(duì)這些信息進(jìn)行分析,再繼續(xù)進(jìn)行下一步操作。 MAIL 命令參數(shù)是回復(fù)路徑,它指定郵件從何處來(lái);而 RCPT 命令的參數(shù)是轉(zhuǎn)發(fā)路徑的,它指定郵件向何處去。 一旦傳送通道建立, SMTP 發(fā)送者發(fā)送 MAIL 命令指明郵件發(fā)送者。相關(guān)文檔也由最初的RFC821 文檔,擴(kuò)展為目前的 RFC282 RFC2045- 204 RFC2554 等多個(gè)。 SMTP 的一個(gè)重要特點(diǎn)是它能夠在傳送中接力傳送郵件,傳送服務(wù)提供了進(jìn)程間通信環(huán)境( IPCE),此環(huán)境可以包括一個(gè)網(wǎng)絡(luò),幾個(gè)網(wǎng)絡(luò)或一個(gè)網(wǎng)絡(luò)的子網(wǎng)。 本畢業(yè)設(shè)計(jì)以 SMTP 協(xié)議為理論基礎(chǔ),以面向?qū)ο蟮姆绞皆?VC++ 平臺(tái)下進(jìn)行實(shí)現(xiàn)。電子郵件技術(shù)具有方便、快捷、成本低廉等特性。該軟件實(shí)現(xiàn)了 SMTP協(xié)議,具有向郵件服務(wù)器發(fā)送身份驗(yàn)證消息以及郵件的功能,使用戶能夠在本地通過(guò)客戶端程序向服務(wù)器發(fā)送郵件信息。通過(guò)本設(shè)計(jì)可以掌握 SMTP 協(xié)議,了解到當(dāng)前郵件服務(wù)的一些不足。 關(guān)鍵詞 : SMTP協(xié)議 ; 郵件 ; C++; 客戶端 The design and implementation of a SMTP Client Abstract This thesis is pleted in the foundation of the SMTP protocol client software MyEMail. It relates to the software design, implementation, testing and so on. Through the design, the SMTP protocol can be mastered and the deficiencies of current mail service can be understood. The thesis focuses on analyzing the SMTP protocol used by the mail service and adds the authentication function which will increase the mail service security according to the provisions of the protocol ESMTP. MyEMail SMTP software is based on the principles of the protocol, the model and working processes of agreement. And it is a practical and SMTP protocol based client software. The software analyzes the working model and processes of protocol. It starts with the conventional mail process and uses the C++ language and MFC framework in VC++ platform. The SMTP protocol is implemented in this software. It can send authentication information and to the mail server. The users can send authentication information and Email to the server through local software. At present, although the protocol stipulates that the website information can be used in the text, it means that the mail content can contain malicious code, which has potential safe problems. So, the support is not provided in the design. Key words: SMTP Protocol。 目前與郵件相關(guān)的協(xié)議大概可以分為兩種:一種是郵件發(fā)送協(xié)議―― SMTP協(xié)議;另一種是郵件接收協(xié)議―― POP 協(xié)議。在實(shí)現(xiàn)過(guò)程中,用到了 VC++中的 MFC 框架,使得軟件能夠符合有關(guān)的 WINDOWS 程序標(biāo)準(zhǔn),并且有了清晰的結(jié)構(gòu)規(guī)劃,給維護(hù)帶來(lái)了方便。郵件是一個(gè)應(yīng)用程 序或進(jìn)程間通信。郵件傳送的模型,沒(méi)有變化。如果 SMTP 接收者能夠接收,那么返回 OK 作為應(yīng)答;如果不能收到,則返回拒絕應(yīng)答(但并不中止整個(gè)郵件操作),雙發(fā)如此重復(fù)多次。 命令與應(yīng)答對(duì)大小寫(xiě)不敏感, 也就是說(shuō),命令和應(yīng)答可以是大寫(xiě),小寫(xiě)或兩者的混合,但這一點(diǎn)對(duì)用戶郵件名稱(chēng)卻不一定是對(duì)的,因?yàn)橛械闹鳈C(jī)對(duì)用戶名大小寫(xiě)是敏感的。 傳送 在 SMTP 發(fā)送操作中有三步,操作由 MAIL 命令開(kāi)始給出發(fā)送者標(biāo)識(shí)。 RCPTSP TO: forwardpathCRLF 此命令給出向前路徑標(biāo)識(shí)接收者,如果命令被接收,接收方返回一個(gè) 250 OK應(yīng)答,并存儲(chǔ)向前路徑。 SMTP 通過(guò)在最后一行僅發(fā)送一個(gè)句號(hào)來(lái)表示郵件 內(nèi)容的結(jié)束,在接收方,一個(gè)對(duì)用戶透明的過(guò)程將此符號(hào)過(guò)濾掉,以不影響正常的數(shù)據(jù)。 SMTP 過(guò)程例子此例是在 主機(jī)的 wangyoucao2020 發(fā)送郵件給 主機(jī)的 xia, li 和 yue 的。這兩個(gè)命令的正確應(yīng)答碼為 220 和 221。 圖 2 SMTP協(xié)議應(yīng)答碼 命令列表如圖 3所示。 它更全面,也更 合理 ??蛻舳税l(fā)送 AUTH LOGIN命令給服務(wù)器,服務(wù)器返回 334 要求客戶端發(fā)送 BASE64 編碼后的用戶名。)在該協(xié)議中,規(guī)定了一些關(guān)鍵的格式字段如: A MIMIVersion header field , A ContentType header field , A ContentTransferEncoding header field 以及兩個(gè)擴(kuò)展的字段 ContentID 、 Content Description header fields 等字段,并且對(duì) BASE64 編碼格式進(jìn)行了說(shuō)明。利用該客戶端,用戶可以方便的發(fā)送郵件。它使得開(kāi)發(fā)者能夠把主要的精力都放在程序的邏輯部分,而不必為了那些瑣屑的消息管理和消息傳遞或是消息循環(huán)而大傷腦筋,大大提高軟件的開(kāi)發(fā)效率。 在該 IDE 中也提供了對(duì)開(kāi)發(fā)人員來(lái)說(shuō)最重要的工具之一,開(kāi)發(fā)文檔。 5)圖形界面要信息完整、操作舒適、界面雅觀。 總體設(shè)計(jì) 目前流行的工作平臺(tái)有很多,可以實(shí)現(xiàn)目標(biāo)的編程語(yǔ)言也有多種。結(jié)構(gòu)化的程序設(shè)計(jì)方式,也讓人自然而然的從上而下的去思考。因此,在該程序的設(shè)計(jì)過(guò)程中,選取了 C++作為開(kāi)發(fā)語(yǔ)言, VC++ 作為程序設(shè)計(jì)的 IDE。使用該模塊可以建立或斷開(kāi)與服務(wù)器的連接、向服務(wù)器發(fā)送消息、從服務(wù)器接受消息并分析得到的消息代碼 是否正確、在服務(wù)器返回錯(cuò)誤消息時(shí)獲取到該消息。 2) private UINT m_nPort:私有成員變量,表示與服務(wù)器連接的端口。 7) protected static ResponseCode* responseTable[]:保護(hù)的靜態(tài)成員變量,代表消息碼與對(duì)應(yīng)消息的映射表。如果沒(méi)有錯(cuò)誤信息,則返回空。在發(fā)送過(guò)程中,順序發(fā)送命令: AUTH LOGIN、MAIL FROM 、 RCPT TO(可重復(fù)多次)、 DATA (結(jié)束符 )、 QUIT,并在每次發(fā)送后設(shè)置一個(gè)接收指令,用于接收從服務(wù)器傳回的數(shù)據(jù),并進(jìn)行分析。該方法采用查表的方式,根據(jù)郵件服務(wù)器發(fā)送的消息,來(lái)確定返回消息的具體信息,該方 法主要在郵件操作出錯(cuò)時(shí),提供錯(cuò)誤信息。使用 MFC 提供的 CPtrArray 類(lèi)型變量,能夠方便的存儲(chǔ)多個(gè)附件的信息。表示郵件接收者的一個(gè)數(shù)組。 3) public int GetNumberRecipients(RECIPIENTS_TYPE type=TO):作用是獲取當(dāng)前的接收者的數(shù)目。 5) public void AddToHeader(CString sTemp):該方法作用是向郵件添加頭信息。根據(jù) SMTP 協(xié)議的規(guī)定:郵件的正文和附件消息均要滿足固定的格式。并提供了能夠取出這些屬性的方法。并且根據(jù)傳遞進(jìn)來(lái)的參數(shù),分別給 bufLen、 m_FileContent、 m_Filename、m_Title 等成員變量賦值。 圖 7 CBASE64類(lèi)圖 成員變量說(shuō)明: 1) static CString base64:該變量是歸類(lèi)所屬的成員變量。本類(lèi)為該方法提供了一個(gè)重載的方法,其參數(shù)為 CString szEncoding 和 int nSize。 4) CString CBASE64::Decode(CString szDecoding , int nSize):該方法 的作用是根據(jù)傳遞進(jìn)來(lái)的參數(shù)對(duì)數(shù)據(jù)進(jìn)行解碼。代表當(dāng)前的應(yīng)用程序。該類(lèi)是本軟件的操作平臺(tái)。在主界面對(duì)話框的相關(guān)事件處理方法中,會(huì)調(diào)用CSMTP 的連接和傳送消息方法,并把用戶輸入的數(shù)據(jù)裝配為一個(gè)完整的CMailMessage 消息供 CSMTP 使用。 //首先要建立接收消息緩沖區(qū),接收服務(wù)器的消息 thisresponseBuf = new TCHAR[RESPONSE_BUFFER_SIZE]。連接建立結(jié)束。 if( !thisGetResponse(AUTH_OK) ) //使用 CBASE64 對(duì)密碼進(jìn)行加密并發(fā)送 ,如果驗(yàn)證成功,服務(wù)器會(huì)返回 //AUTH_SUCCESSFULLY 來(lái)標(biāo)識(shí)。 } //在郵件內(nèi)容的末尾,是規(guī)定的格式“ \r\n.\r\n” ,當(dāng)服務(wù)器接收到這些字符時(shí)就會(huì)知道,郵件內(nèi)容的傳送已經(jīng)結(jié)束了。} 如果上述過(guò)程都是正確的,那么說(shuō)明郵件已經(jīng)正確的發(fā)出。 ithisGetNumberRecipients() 。 //指定發(fā)送的時(shí)間 thism_tDateTime = this()。 BOUNDARY=BOUNDARY)。 ithis() 。 (buf , pAttachmentGetBufferLength())。 通過(guò) PrepareBody 操作可以把郵件的正文進(jìn)行格式化,并保存,以供 CSMTP使用。不僅僅是身份驗(yàn)證需要 BASE64 編碼,郵件的正文和附件都需要轉(zhuǎn)化成 BASE64 格式的編碼。 i buflen。0xc0)6))。 sTemp += _T(64) 。 sTemp += _T( 64 )。 子模塊測(cè)試:模塊完成后,針對(duì)每個(gè)子模塊進(jìn)行了簡(jiǎn)單的單元測(cè)試。否則,修改代碼。如果均能通過(guò)測(cè)試,那么就通過(guò)測(cè)試, 否則就需要更改代碼。測(cè)試用例如下: 服務(wù)器: 發(fā)信人: wangyoucao2020163 收信人: 標(biāo)題: test 正文:測(cè)試用例 密碼: ********(發(fā)信人的密碼 ) 單擊確定后,發(fā)送郵件,發(fā)送成功返回正確信息。 結(jié) 論 成果 通過(guò)一段時(shí)間的學(xué)習(xí)和準(zhǔn)備工作,在計(jì)劃規(guī)定的時(shí)間內(nèi),完成了系統(tǒng)的基本功能,能夠滿足預(yù)期需求
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1