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

正文內(nèi)容

基于smtp協(xié)議電子郵件收發(fā)系統(tǒng)的設(shè)計(jì)-wenkub

2023-06-11 18:07:55 本頁面
 

【正文】 per Network for Visual 20031.3.2 運(yùn)行環(huán)境Intel174。有鑒于此,在了解RFC底層協(xié)議的基礎(chǔ)上,我們開發(fā)了這個(gè)各種功能相對(duì)簡(jiǎn)單實(shí)用的郵件客戶端程序,簡(jiǎn)化了很多不必要的功能。用戶首先開啟自己的信箱,然后通過鍵入命令的方式將需要發(fā)送的郵件發(fā)到對(duì)方的信箱中。并確定—個(gè)用戶名和用戶可以自己隨意修改的口令。 電子郵件的傳輸是通過電子郵件簡(jiǎn)單傳輸協(xié)議(Simple Mail Transfer Protocol,簡(jiǎn)稱SMTP)這一系統(tǒng)軟件來完成的,它是Internet下的一種電子郵件通信協(xié)議。在這里,“發(fā)送”郵件意味著將郵件放到收件人的信箱中,而“接收”郵件則意味著從自己的信箱中讀取信件,信箱實(shí)際上是由文件管理系統(tǒng)支持的—個(gè)實(shí)體。電子郵件不是一種“終端到終端”的服務(wù),是被稱為“存貯轉(zhuǎn)發(fā)式”服務(wù)。它是全球多種網(wǎng)絡(luò)上使用最普遍的一項(xiàng)服務(wù)。這種非交互式的通信,加速了信息的交流及數(shù)據(jù)傳送,它是—個(gè)簡(jiǎn)易、快速的方法。這正是電子信箱系統(tǒng)的核心,利用存貯轉(zhuǎn)發(fā)可進(jìn)行非實(shí)時(shí)通信,屬異步通信方式。因?yàn)殡娮余]件是通過郵件服務(wù)器(mai1 server)來傳遞檔的。 2) 電子郵件的基本原理,是在通信網(wǎng)上設(shè)立“電子信箱系統(tǒng)”,它實(shí)際上是一個(gè)計(jì)算機(jī)系統(tǒng)。存儲(chǔ)空間包含存放所收信件、編輯信件以及信件存盤三部分空間,用戶使用口令開啟自己的信箱,并進(jìn)行發(fā)信、讀信、編輯、轉(zhuǎn)發(fā)、存檔等各種操作。郵件在信箱之間進(jìn)行傳遞和交換,也可以與另—個(gè)郵件系統(tǒng)進(jìn)行傳遞和交換。1.3 開發(fā)環(huán)境及運(yùn)行環(huán)境1.3.1 開發(fā)環(huán)境AMD Athlon(TM),512M內(nèi)存,80G硬盤Microsoft174。 Pentium174。而用戶通過具體的操作接口,接口與SmtpMail類通過交互操作來實(shí)現(xiàn)用戶發(fā)送信件的操作。SMTP被用來在因特網(wǎng)上發(fā)送郵件,該協(xié)議規(guī)定了一些基本的命令和方法使客戶端與服務(wù)器進(jìn)行交互,以達(dá)到發(fā)送郵件的目的。進(jìn)程可能直接和其它進(jìn)程通過已知的IPCE通信。3.1.2 SMTP模型 SMTP設(shè)計(jì)基于以下通信模型:針對(duì)用戶的郵件請(qǐng)求,發(fā)送SMTP建立與接收SMTP之間建立一個(gè)雙向傳送通道。如果SMTP接收者可以接收郵件則返回OK應(yīng)答。SMTP提供傳送郵件的機(jī)制,如果接收方與發(fā)送方連接在同一個(gè)傳送服務(wù)下時(shí),郵件可以直接由發(fā)送方主機(jī)傳送到接收方主機(jī);或者,當(dāng)兩者不在同一個(gè)傳送服務(wù)下時(shí),通過中繼SMTP服務(wù)器傳送。當(dāng)同一個(gè)消息要發(fā)往不同的接收者時(shí),SMTP遇到了向不同接收者發(fā)送同一份數(shù)據(jù)的復(fù)制品的問題,郵件命令和應(yīng)答有一個(gè)比較奇怪的語法,應(yīng)答也有一個(gè)數(shù)字代碼。這樣SMTP實(shí)現(xiàn)中就將用戶郵箱名稱保留成初始時(shí)的樣子,主機(jī)名稱對(duì)大小寫不敏感。它的命令是由CRLF結(jié)束的字符串。發(fā)送郵件操作涉及到不同的數(shù)據(jù)對(duì)象,它們由不同的參數(shù)相互連接。特定的命令產(chǎn)生自己的緩沖區(qū),或使一個(gè)或多個(gè)緩沖的內(nèi)容被清除。引命令和OK響應(yīng)確認(rèn)發(fā)送和接收SMTP進(jìn)入了初始狀態(tài),也就是說,沒有操作正在執(zhí)行,所有狀態(tài)表和緩沖區(qū)已經(jīng)被子清除。當(dāng)有主機(jī)列表時(shí),它是一個(gè)回復(fù)路徑源,它說明此郵箱是由在表中的主機(jī)一一傳遞發(fā)送(第一個(gè)主機(jī)是最后一個(gè)接收到此郵件的主機(jī))過來的。此命令清除回復(fù)路徑緩沖區(qū),轉(zhuǎn)發(fā)路徑緩沖區(qū)和郵件內(nèi)容緩沖區(qū),并且將此命令的回復(fù)路徑信息插入到回復(fù)路徑緩沖區(qū)中。如果接收SMTP未實(shí)現(xiàn)郵件的傳遞發(fā)送,就會(huì)返回如未知本地用戶(550)的信息給用戶?! ATA (DATA)接收者將跟在命令后的行作為郵件內(nèi)容。郵件內(nèi)容的結(jié)束指示要求接收者現(xiàn)在就處理保存的郵件內(nèi)容。轉(zhuǎn)發(fā)的信件將有多行這樣的時(shí)間戳??赡茉诜祷芈窂街械泥]箱與實(shí)際發(fā)送的郵件不一致,這個(gè)情況可能發(fā)生在需要傳送一個(gè)特定的錯(cuò)誤處理信箱而不是信件發(fā)送者那里。這種情況可能發(fā)生在發(fā)送SMTP發(fā)現(xiàn)當(dāng)郵件需要傳送給多個(gè)用戶時(shí),只能夠成功地向其中的一部分發(fā)送信息這種情況下。返回路徑和接收時(shí)間戳例子  ReturnPath: ,:JOE  Received: from by 。參數(shù)域包括了一個(gè)回復(fù)路徑,此命令如果成功就將郵件發(fā)送到終端上了。因?yàn)槊總€(gè)傳遞主機(jī)地址都被加在此表起始處,它就必須使用發(fā)送IPCE而不是接收IPCE(如果它們不是一個(gè)IPCE的話)清楚的名稱。對(duì)于每個(gè)接收者,如果接收者終端打開,郵件內(nèi)容將被傳送到接收者的終端上,否則就送到接收者的郵箱中。此表用于返回非傳遞信號(hào)到發(fā)送者?! END AND MAIL (SAML)此命令用于開始一個(gè)郵件操作將郵件內(nèi)容傳送到一個(gè)或多個(gè)終端上,并傳送到郵箱中。當(dāng)出現(xiàn)主機(jī)列表時(shí),表示這是一個(gè)傳送路徑,郵件就是經(jīng)過這個(gè)路徑上的每個(gè)主機(jī)發(fā)送到這里的(列表上第一個(gè)主機(jī)是最后經(jīng)手的主機(jī))。此命令清除回復(fù)路徑緩沖區(qū),轉(zhuǎn)發(fā)路徑緩沖區(qū)和郵件內(nèi)容緩沖區(qū),并且將此命令的回復(fù)路徑信息插入到回復(fù)路徑緩沖區(qū)中。如果這是(已經(jīng)知道的)用戶名,返回用戶的全名和指定的郵箱。此命令對(duì)回復(fù)路徑緩沖區(qū),轉(zhuǎn)發(fā)路徑緩沖區(qū)和郵件內(nèi)容緩沖區(qū)沒有影響。  NOOP (NOOP) 此命令不影響任何參數(shù)和已經(jīng)發(fā)出的命令。接收方在接到QUIT命令并做出響應(yīng)之前不應(yīng)該關(guān)閉通信信道。而發(fā)送方應(yīng)該象接收到暫時(shí)錯(cuò)誤(4XX)一樣假定命令和操作仍在支持之中。如果程序B現(xiàn)在是接收SMTP,它發(fā)出TURN命令后接收到OK(250)應(yīng)答,它就變成了發(fā)送SMTP。對(duì)話的第一個(gè)命令必須是HELLO命令,此命令在此后的會(huì)話中也可以使用。一旦開始了以后就要發(fā)送RCPT和DATA命令。如果操作中的命令順序出錯(cuò),必須返回503失敗應(yīng)答,同時(shí)接收到的SMTP必須保持在與剛才一致的狀態(tài)下。命令碼是四個(gè)字母組成的,不區(qū)別大小寫。特別是在一些主機(jī)上,smith和Smith就根本不是一個(gè)用戶。下面是SMTP命令: HELO SP domain CRLF MAIL SP FROM:reversepath CRLFRCPT SP TO:forwardpath CRLFDATA CRLFRSET CRLFSEND SP FROM:reversepath CRLFSOML SP FROM:reversepath CRLFSAML SP FROM:reversepath CRLFVRFY SP string CRLFEXPN SP string CRLFHELP [SP string] CRLFNOOP CRLFQUIT CRLFTURN CRLF3.2.2 SMTP的應(yīng)答碼對(duì)SMTP命令的響應(yīng)是多樣的,它確定了在郵件傳輸過程中請(qǐng)求和處理的同步,也保證了發(fā)送SMTP知道接收SMTP的狀態(tài)。三位的響應(yīng)已經(jīng)包括了足夠的信息,不用再閱讀文本,文本可以直接拋棄或者傳遞給用戶。只有EXPN和HELP命令可以導(dǎo)致多行應(yīng)答,然而,對(duì)所有命令,多行響應(yīng)都是允許的。4.1 RFC822簡(jiǎn)單介紹RFC822規(guī)定的電子郵件內(nèi)容全部由ASCII字符組成,就是通常所說的文本文件,因而標(biāo)準(zhǔn)將它稱為Internet文本信件(Internet Text Messages)。第二部分稱為信件的體部(Body of the message),包括信件內(nèi)容的正文文本。這樣設(shè)計(jì)的信件便于進(jìn)行語法分析,提取信件的基本信息。要了解信頭的結(jié)構(gòu)就要弄清楚各種信頭字段。字段體可以包括除了CR和LF之外的任何ASCII字符。Sender 字段就是一個(gè)很好的例子,它的字段內(nèi)容是信箱, 有一個(gè)離散的結(jié)構(gòu)。所有其它字段都是結(jié)構(gòu)化的。此外,行末的回車換行符CRLF也應(yīng)算是空白符。在Email中,空白符的使用并沒有固定的規(guī)則,但應(yīng)當(dāng)正確地使用,僅在需要時(shí)才使用空白符,以便接收軟件進(jìn)行語法分析。在解釋信件的時(shí)候,會(huì)將注解忽略,可以用一個(gè)空格字符代替它們,這樣就什么也不會(huì)破壞。續(xù)行都以一個(gè)空白符開始,這種方法稱為折疊(folding),例如標(biāo)題字段Subject: This is a test可以表示為: Subject: This is a test反之,將一個(gè)被折疊成多行的信頭字段恢復(fù)到它的單行表示的過程叫做去折疊,只要簡(jiǎn)單地移除后面跟著空格的CRLF,將折疊空白符CRLF轉(zhuǎn)換成空格字符,就可以完成去折疊(unfolding)。字段體的大小寫稍微復(fù)雜點(diǎn),要視情況而定。說明信件的原始創(chuàng)建者,給出他的電子信箱地址。當(dāng)發(fā)信人與寫信人不一樣時(shí)使用。指定應(yīng)當(dāng)把回信發(fā)到哪里。指定主要收信人的郵箱地址,可以是多個(gè)郵箱地址的列表,地址中間用逗號(hào)隔開。格式:Bcc:mailbox list密抄字段。格式:Subject:*text舉例:Subject:Hello! Subject:Re:Hello!信件主題字段。發(fā)送主機(jī)[by domain] 。是投遞信件的特定郵件服務(wù)器所作的記錄。用于把一個(gè)注解添加到信件中。新添加的信頭字段都加上Resent前綴字符串,它們的語法與未加前綴的同名字段相同。通常左邊是標(biāo)識(shí)符,右邊指定電腦名圖2 7 2表中的關(guān)鍵字表明了電子郵件借用了辦公室備忘錄中的概念和術(shù)語:電子郵件的頭部能夠包含一行說明應(yīng)當(dāng)接收到該備忘錄的接收方。一些電子郵件系統(tǒng)提供這樣的選項(xiàng),遵循傳統(tǒng)的辦公室術(shù)語,用盲復(fù)寫副本(blind carbon copy)來表示。其它接收者不知道有哪些用戶接收到盲副本。方法非常簡(jiǎn)單,只要在自定義的信頭字段名的前面使用X前綴。過濾或郵件列表處理程序,可以給它處理的每個(gè)信件增加一個(gè)XLOOP字段,以后就可以根據(jù)這個(gè)字段中含有的特別值,判斷一個(gè)信件是否被循環(huán)傳送。例如軟件名為L(zhǎng)ittlefox Mailer, 可以將“XMailer:Littlefox Mailer ”加到郵件信頭中去。而且這樣做也方便了我們小組的程序的順利結(jié)合。而調(diào)用某一個(gè)類中的某個(gè)變量成員的方法就是通過 來訪問的,當(dāng)然在C Sharp 中如果在程序開始通過Using 命名空間名,就可以直接的象C++那樣來訪問成員變量,可以說相當(dāng)?shù)姆奖?,這些都會(huì)在程序中體現(xiàn)出來,再次不再做過多的敘述。它的重載方法之一的兩個(gè)參數(shù)一個(gè)為服務(wù)器名稱字符串,另一個(gè)為服務(wù)器的埠。4)發(fā)送郵件所需的基本參數(shù)比如用于ESMTP等錄檢驗(yàn)用的用戶名、密碼,發(fā)送郵件需要的收信人,發(fā)信人地址以及主題等等在此不再贅述。具體實(shí)現(xiàn)代碼如下所示:private string GetStream(string FilePath) { //建立文件流對(duì)象 FileStr=new (FilePath,)。 return((by))。此函數(shù)的作用就是把給定的字符串轉(zhuǎn)換成相應(yīng)的Base64編碼的字符串。 WriteBuffer = (str)。 state=false。 string ReturnValue =。 } if (StreamSize!=0) { //將當(dāng)前讀取的信息轉(zhuǎn)換成字符串型然后返回ReturnValue= (ReadBuffer).Substring(0,StreamSize)。而參數(shù)是字符串?dāng)?shù)組的函數(shù)每次發(fā)送的是一組命令,用于和服務(wù)器的交互,這個(gè)函數(shù)主要是用于ESMTP服務(wù)器的驗(yàn)證的功能,因?yàn)轵?yàn)證的過程是一個(gè)等待然后又輸入的過程,
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1