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

正文內(nèi)容

郵件收發(fā)系統(tǒng)的設(shè)計—計算機畢業(yè)設(shè)計(文件)

2025-12-24 16:54 上一頁面

下一頁面
 

【正文】 件流 GetStream 由于在網(wǎng)絡(luò)中的操作都是以網(wǎng)絡(luò)流的形式來實現(xiàn)的,因此先將上傳的附件轉(zhuǎn)換成文件流, 然后再用 Write 的方法把這些附件的文件流寫入到網(wǎng)絡(luò)中,來完成發(fā)送附件的操作。 ()。所以要將用戶名和密碼轉(zhuǎn) 換成 Base64 編碼然后再發(fā)給服務(wù)器。 //設(shè)定一個布爾類型的變量 bool state=false。 } catch(Exception ex) { //返回出錯信息 ( ())。具體實現(xiàn)代碼如下所示: private string RecvResponse() { int StreamSize=0。 } catch (Exception ex) { //返回異常信息 ( ())。不同的是參數(shù)是字符串類型的 那個函數(shù),每次發(fā)送一條命令,并接受服務(wù)器的響應(yīng),根據(jù)響應(yīng)的信息來判斷交互的結(jié)果是否成功。 if(str==null||()==) { flag=true。 } else { flag=false。i。具體的實現(xiàn) SMTP 協(xié)議的程序正是通過它一步一步實現(xiàn)并最終實現(xiàn)發(fā)送簡單郵件甚至帶附件的郵件的功能。 return false。 } string[] SendBuffer。 SendBuffer[1]=AUTH LOGIN + enter。 )) return false。 if(!Dialog(SendBufferstr,發(fā)件人地址錯誤,或不能為空 )) return false。 for(int i=0。 SendBufferstr=DATA + enter。 if(!Dialog(SendBufferstr,錯誤信件信息 )) return false。 //關(guān)閉連接 ()。 5. 2 AddExtra 類 這個附加的小類只是提供一些返回當前系統(tǒng)時間,獲取主機名,主機 IP,有關(guān)幫助等小的功能,在此僅對幫助信息中的“關(guān)于”操作函數(shù)稍加說明。 5. 2. 2 在程序中聲明所需的 API 函數(shù) [DllImport()] static extern int ShellAbout(IntPtr hWnd, string szApp, string szOtherStuff, IntPtr hIcon)。 至此就完成了在 C Sharp 中調(diào)用 Windows API 函數(shù)的過程。發(fā)送簡單的郵件運行界面如下。 所以主要的測試也是圍繞發(fā)送郵件展開的,具體的可以分為以下幾個方面。從而很好的驗證了,我們的郵件發(fā)送系統(tǒng)支持群發(fā)的功能。由于帶有多附件的信件,所以寫入速度明顯慢于純文本郵件的速度。 第 XXXVII 頁 共 XLII 頁 總之,通過以上的各方面的測試,使我改正了代碼中的許多不合理以及錯誤之處,最終也證明了,我們的軟件系統(tǒng)是支持多種服務(wù)器,支持多附件發(fā)送的群發(fā)軟件。經(jīng)過這些驗證可以證明本軟件支持對多個收件人發(fā)送多附件。 1) 發(fā)送一封帶附件(可以是多附件)的郵件給一個收件人 測試中用 163 的郵箱分別往 163 的郵箱以及新浪的郵箱發(fā)送之外,又添加了不同的郵件類型(個數(shù)分別為等于 1,大于 1 即驗證是否支持多附件的發(fā)送),用 FoxMail 接收之后,所有發(fā)送的純文本信息,以及附件信息都正常無誤。而這個測試又可以分為以下兩個方面: 7. 1. 1 同一服務(wù)器,發(fā)送一封純文本郵件的測試 1) 發(fā)送一封文本郵件給一個收信人 測試中用 163 的郵箱分別往 163 的郵箱以及新浪的郵箱發(fā)送郵件均可以用FoxMail 正常的接收到發(fā)送的普通的純文本文件。并且郵件支持添加,刪除,排列圖標等功能。指定這些發(fā)郵件的必須參數(shù)之后,再回到系統(tǒng)的主界面如下所示: 圖 新建郵件帳號界面 6. 2 發(fā)送郵件界面 6. 2. 1 發(fā)送不帶附件的郵件 在新建帳號的過程中已經(jīng)指定了郵件地址,和帳號名稱,所以默認的以這些參數(shù)來發(fā)送郵件。 FileVersionInfo myVersion=( )。 而調(diào)用顯示關(guān)于對話框的函數(shù) ShellAbout 還需要用到兩個命名空間如下所示 using 。 return true。 if(!Dialog(SendBufferstr,斷開連接時錯誤 )) return false。 SendBufferstr=From: + FromName + + From + +enter。i++) { SendBuffer[i]=RCPT TO: +address[i]+ + enter。 第 XXXI 頁 共 XLII 頁 string []address= (Recipient,split)。 if(!Dialog(SendBufferstr,)) return false。 SendBuffer[3]=Base64Encode(password) + enter。 //進行 SMTP 驗證 //具體的 SMTP 命令與代碼的結(jié)合 if(ESmtp) { SendBuffer=new String[4]。 SMTPCodeAdd()。 以下就簡單的通過幾個 SMTP 命令的 格式來實現(xiàn) private bool SendEmail() { //連接網(wǎng)絡(luò) try { //建立一個 TCP 連接 tc=new TcpClient(mailserver,mailserverport)。 } } return true。 } return flag。 //從返回的數(shù)據(jù)中截取前三位 string RRCode=(0,3)。而他們的實現(xiàn)主要是通過調(diào)用上面的發(fā)送 SMTP 命令函數(shù)SendCommand 以及接受 SMTP 服務(wù)器響應(yīng)的函數(shù) RecvResponse 來實現(xiàn)的。 } return ReturnValue。 第 XXVII 頁 共 XLII 頁 //定義一個字節(jié)型的數(shù)組 byte[] ReadBuffer = new byte[1024] 。 } //返回標志位 return state。 //加入防錯機制,可以有效提高程序運行的效率和捕獲出錯信息 try { //向網(wǎng)絡(luò)中寫入數(shù)據(jù) (WriteBuffer,0,)。 5) 發(fā)送 SMTP 命令的函數(shù) SendCommand 這個函數(shù)的作用是把 SMTP 命令的字符串轉(zhuǎn)換成對應(yīng)的字節(jié)型值 ( C#中規(guī)定的 Write 方法只能寫入字節(jié)型的數(shù)據(jù))然后寫入網(wǎng)絡(luò)中,如果操作成功就返回一個標志為真的布爾型變量,如果操作失敗或者發(fā)生異常就返回標志為假的布爾型變量。 } 4) 將字符串編碼為 Base64 字符串的函數(shù) Base64Encode 由于 ESMTP 的 LOGIN 認證機制是采用 Base64 編碼,當用戶發(fā)出AUTHLOGIN 的命令后,服務(wù)器返回 334 的應(yīng)答碼等待用戶輸入。 byte[] by=new byte[()]。 5. 1. 2 主要成員函數(shù)說明 1) 重載的構(gòu)造函數(shù) SmtpMail() 此函數(shù)主要用于在初始化過程中,把用戶選擇的附件的路徑以參數(shù)的形式傳給 FilePath。 2) 提供用于網(wǎng)絡(luò)訪問的基礎(chǔ)數(shù)據(jù)流及其實例 NetworkStream ns 此類提供訪問網(wǎng)絡(luò)的基礎(chǔ)數(shù)據(jù)流的方法。 5. 1 發(fā)送郵件類 SmtpMail 5. 1. 1 主 要 成員變量說明 1) 網(wǎng)絡(luò)連接類及實例 TcpClient tc 為 TCP 網(wǎng)絡(luò)服務(wù)提供客戶端連接類 TcpClient 實例對象 tc。 第 XXIV 頁 共 XLII 頁 5 命名控件 MailSend 由于在 C Sharp 語言中,都是以命名控件來組織程序的。 圖 2 7 2 列出了一些在因特網(wǎng)電子郵件中可以找到的普通關(guān)鍵字,以及使用它們的目的。如果確認郵件發(fā)生了循環(huán),過濾或郵件列表處理 程序就可以用不同的方式處理該信件。 RFC822 將這種方法稱為擴展字段。 電子郵件使用與傳統(tǒng)的辦公室備忘錄相同的格式和術(shù)語:頭部包括與消息有關(guān)的信息,正文包括消息文本。創(chuàng)建消息的用戶 在關(guān)鍵字 Bcc 后給出一個電子郵件地址表,指定一個或多個盲復(fù)寫副本。象傳統(tǒng)的辦公室備忘錄一樣,電子郵件使用關(guān)鍵字 Cc 指明一個復(fù)寫副本 (carbon copy).電子郵件軟件必須向 Cc:后面的電子郵件地址表中的每個地址發(fā)送一份消息的副本。 第 XXII 頁 共 XLII 頁 格式: MessageID: msgid 信件標識字段。 格式: Resent* 舉例: ResentFrom ResentSender Resentdate ResentReplyTo 重發(fā)字段。處理郵件投遞的每個服務(wù)器必須給它處理的每個信頭的前面加一個 Received 字段,用以描述信件到達目的地所經(jīng)過的路徑以及相關(guān)信息。接收主機 [via atom] 。描述信件的主題。指定此信件要同時秘密發(fā)給哪些人,也稱為密件抄送。 格式: Cc: mailbox list 舉例: Cc: 抄送字段。如果有此字段,回信將會發(fā)給它指定的郵箱,而不會發(fā)給 From 字段指定的郵箱。比如,秘書 替經(jīng)理發(fā)信。創(chuàng)建者對信件的原始內(nèi)容負責。比如 Subject 后面的字段體,其中的大寫可能就是縮寫的專用名詞,不能改動。在分析被折疊的字段的語法時,要把一個多行的折疊字段展開為一行,根據(jù)它的非折疊的形式來分析它的語法與語義。 ( 3)字段折疊 每個信頭字段從邏輯上說應(yīng)當是一個由字段名、冒號、字段體和 CRLF 組成的單一的行,但為了書寫與顯示的方便,增加可 讀性,也為了符合 1000/80 的行字符數(shù)的限制,可以將超過 80 個字符的信頭字段 分為多行,即對于 比較長的字段,可以分割成幾行,形成折疊。 ( 2)注解 注解是由括號括起來的一系列字符,例如, (這份禮物 )。使用空白符可以對字段進行格式化,增加它的可讀性。 4. 2. 3 信頭字段的元素 盡管 Email 信件的總體結(jié)構(gòu)非常簡單,但一些 信頭字段的結(jié)構(gòu)是很復(fù)雜的。 非結(jié)構(gòu)化的字段含有任意的數(shù)據(jù),沒有固定格式。但是其中的空格,加括號的注釋,引號和多行字段都比較復(fù)雜,另外,字段體的語法和語義依賴于字段名,每個類型的字段有特定的格式。 所有的信頭字段都具有相同的語法結(jié)構(gòu),從邏輯上說,包括四部分,字段名(field name),緊跟冒號 : (colon),后跟字段體 (field body),最后以回車換行符(CRLF)終止。 在 RFC822 中規(guī)定,信件體就是一系列的向收信人表達信息的文本行,比較簡單, 可以包含任意文本, 并 沒有附加的結(jié)構(gòu)。信頭是必需的,信體是可選的,即信體可有可無。 從直觀上看,信件非常簡單,就是一系列由 ASCII 字符組成的文本行,每一行以回車換行符 (“ CRLF“,就是 ASCII 碼的 13 和 10)結(jié)束。 REPLY CODES BY FUNCTION GROUPS 500 格式錯誤,命令不可識別(此錯誤也包括命令行過長) 501 參數(shù)格式錯誤 502 命令不可實現(xiàn) 503 錯誤的命令序列 504 命令參數(shù)不可實現(xiàn) 211 系統(tǒng)狀態(tài)或系統(tǒng)幫助響應(yīng) 214 幫助信息 220 domain 服務(wù)就緒 221 domain 服務(wù)關(guān)閉傳輸信道 421 domain 服務(wù)未就緒,關(guān)閉傳輸信道(當必須關(guān)閉時,此應(yīng)答可以作為對任何命令的響應(yīng)) 250 要求的郵件操作完成 251
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1