




已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
I 第 共 51頁 電子郵件客戶端軟件 目錄 第 1 章 引 言 . 1 電子郵件介紹 . 1 開發(fā)背景 . 2 開發(fā)環(huán)境及運(yùn)行環(huán)境 . 3 開發(fā)環(huán)境 . 3 運(yùn)行環(huán)境 . 3 第 2 章 軟件架構(gòu)及系統(tǒng)用例圖 . 4 系統(tǒng)架構(gòu): . 4 系統(tǒng)總體用例: . 4 程序功能 框架圖: . 5 發(fā)送郵件類 . 6 附加小功能類 . 6 第 3 章 議的研究 . 8 介紹 議 . 8 型 . 8 議的命令 . 10 應(yīng)答 . 18 第 4 章 . 21 單介紹 . 21 信件的頭部 . 22 第 5 章 命名控件 . 29 發(fā)送郵件的類 . 29 共 51頁 . 40 第 6 章 軟件運(yùn)行時(shí)的界面 . 42 新建賬號 . 42 發(fā)送不帶附件的郵件 . 43 發(fā)送帶附件的郵件 . 43 驗(yàn)證郵件發(fā)送是否成功 . 44 第 7 章 系統(tǒng)測試 . 46 同一 務(wù)器發(fā)送純文本的郵件測試 . 46 同一 務(wù)器發(fā)送帶附件的郵件測試 . 46 不同 務(wù)器發(fā)送郵件測試 . 47 第 8 章 結(jié) 論 . 48 致 謝 . 49 參考文獻(xiàn) . 錯(cuò)誤 !未定義書簽。 1 第 1頁 共 51頁 第 1 章 引 言 電子郵件介紹 電子郵件 (簡稱 稱電子信箱、電子郵政,它是 種用電子手段提供信息交換的通信方式。它是全球多種網(wǎng)絡(luò)上使用最普遍的一項(xiàng)服務(wù)。這種非交互式的通信 ,加速了信息的交流及數(shù)據(jù)傳送 ,它是 個(gè)簡易、快速的方法。通過連接全世界的 現(xiàn)各類信號的傳送、接收、存貯等處理 ,將郵件送到世界的各個(gè)角落。到目前為止 ,可以說電子郵件是 源使用最多的一種服務(wù), 只局限于信件的傳遞 ,還可用來傳遞文件、聲音及圖形、圖像等不同類型的信息。 電子郵件不是一種“終端到終端”的服務(wù) ,是被稱為“存貯轉(zhuǎn)發(fā)式 ”服務(wù)。這正是電子信箱系統(tǒng)的核心,利用存貯轉(zhuǎn)發(fā)可進(jìn)行非實(shí)時(shí)通信,屬異步通信方式。即信件發(fā)送者可隨時(shí)隨地發(fā)送郵件,不要求接收者同時(shí)在場,即使對方現(xiàn)在不在,仍可將郵件立刻送到對方的信箱內(nèi) ,且存儲在對方的電子郵箱中。接收者可在他認(rèn)為方便的時(shí)候讀取信件 ,不受時(shí)空限制。在這里 ,“發(fā)送”郵件意味著將郵件放到收件人的信箱中 ,而“接收”郵件則意味著從自己的信箱中讀取信件 ,信箱實(shí)際上是由文件管理系統(tǒng)支持的 個(gè)實(shí)體。因?yàn)殡娮余]件是通過郵件服務(wù)器 (傳遞檔的。通常 執(zhí)行多任務(wù)操作系統(tǒng) 計(jì)算機(jī),它提供 24 小時(shí)的電子郵件服務(wù) ,用戶只要向 理人員申請 個(gè)信箱賬號 ,就可使用這項(xiàng)快速的郵件服務(wù)。 2 第 2頁 共 51頁 電子郵件的工作原理: 1) 電子郵件系統(tǒng)是一種新型的信息系統(tǒng) ,是通信技術(shù)和計(jì)算機(jī)技術(shù)結(jié)合的產(chǎn)物。 電子郵件的傳輸是通過電子郵件簡單傳輸協(xié)議 (稱一系統(tǒng)軟件來完成的 ,它是 的一種電子郵件通信協(xié)議。 2) 電子郵件的基本原理 ,是在通信網(wǎng)上設(shè)立“電子信箱系統(tǒng)”,它實(shí)際上是一個(gè)計(jì)算機(jī)系統(tǒng)。 系統(tǒng)的硬件是一個(gè)高性能、大容量的計(jì)算機(jī)。硬盤作為信箱的存儲介質(zhì) ,在硬盤上為用戶分一定的存儲空間作為用戶的“信箱”,每位用戶都有屬于自己的 個(gè)電子信箱。并確定 個(gè)用戶名和用戶可以自己隨意修改的口令。存儲空間包含存放所收信件、編輯信件以及信件存盤三部分空間 ,用戶使用口令開啟自己的信箱 ,并進(jìn)行發(fā)信、讀信、編輯、轉(zhuǎn)發(fā)、存檔等各種操作。系統(tǒng)功能主要由軟件實(shí)現(xiàn)。 3) 電子郵件的通信是在信箱之間進(jìn)行的。用戶首先開啟自己的信箱,然后通過鍵入命令的方式將需要發(fā)送的郵件發(fā)到對方的信箱中。郵件在信箱之間進(jìn)行傳遞和交換 ,也可以與 另 個(gè)郵件系統(tǒng)進(jìn)行傳遞和交換。收方在取信時(shí),使用特定賬號從信箱提取。 開發(fā)背景 當(dāng)前流行的各大郵件客戶端軟件的除了最主要的收發(fā)信件之外,功能越來越復(fù)雜,但是人們平常真正用到的功能很少 ,很多功能尤其對于那些計(jì)算機(jī)知識相對缺乏的人來說,更加顯得太過于華麗而不太實(shí)用。有鑒于此,在了解 層協(xié)議的基礎(chǔ)上,我們開發(fā)了這個(gè)各種功能相對簡單實(shí)用的郵件客戶端程序,簡化了很多不必要的功能。 3 第 3頁 共 51頁 開發(fā)環(huán)境及運(yùn)行環(huán)境 當(dāng)前流行的各大郵件客戶端軟件的除了最主要的收發(fā)信件之外,功能越來越復(fù)雜,但是人們平常真正用 到的功能很少 ,很多功能尤其對于那些計(jì)算機(jī)知識相對缺乏的人來說,更加顯得太過于華麗而不太實(shí)用。有鑒于此,在了解 層協(xié)議的基礎(chǔ)上,我們開發(fā)了這個(gè)各種功能相對簡單實(shí)用的郵件客戶端程序,簡化了很多不必要的功能。 開發(fā)環(huán)境 005 C#、 據(jù)庫。 運(yùn)行環(huán)境 郵件客戶端運(yùn)行在 000 或以上操作系統(tǒng)平臺、并且安裝有者以上版本。 4 第 4頁 共 51頁 第 2 章 軟件架構(gòu)及系統(tǒng)用例圖 系統(tǒng)架構(gòu): 如圖 圖 軟件架構(gòu)圖 系統(tǒng)總體用例: 如圖 用戶 主界面 主要功能選擇 發(fā)送郵件類 接收郵件類 5 第 5頁 共 51頁 圖 系統(tǒng)總體用例圖 程序功能框架圖: 如圖 用戶 新建賬號 發(fā)送郵件 接收郵件 純文本郵件 帶附件郵件 6 第 6頁 共 51頁 圖 程序功能圖 發(fā)送郵 件類 是以“發(fā)送郵件”的核心,類名為 屬于命名空間 裝了發(fā)送郵件的具體實(shí)現(xiàn)方法,也是具體的 代碼實(shí)現(xiàn)的過程。而用戶通過具體的操作接口,接口與 通過交互操作來實(shí)現(xiàn)用戶發(fā)送信件的操作。 附加小功能類 是獲取一些諸如系統(tǒng)時(shí)間,當(dāng)前用戶名,以及本機(jī) 類的類,類名為 戶端軟件 電子郵件接收系統(tǒng) 電子郵件接收系統(tǒng) 附加功能 各種錯(cuò)誤的提示 簡單郵件接收 帶有附件的郵件接收 簡單郵件發(fā)送 帶有附件的郵件發(fā)送 電子郵件編寫 電子郵件的分類管理 通訊簿管理 7 第 7頁 共 51頁 隸屬于命名空間 8 第 8頁 共 51頁 第 3 章 議的研究 由于要開發(fā)的是郵件客戶端程序,就不得不用到 議和 議。而我個(gè)人負(fù)責(zé)的是郵件發(fā)送功能的 實(shí)現(xiàn),因此就必然會涉及到 議。 用來在因特網(wǎng)上發(fā)送郵件,該協(xié)議規(guī)定了一些基本的命令和方法使客戶端與服務(wù)器進(jìn)行交互,以達(dá)到發(fā)送郵件的目的。 介紹 議 簡單郵件傳輸協(xié)議( 目標(biāo)是可靠高效地傳送郵件,它獨(dú)立于傳送子系統(tǒng)而且僅要求一條可以保證傳送數(shù)據(jù)單元順序的通道。 一個(gè)重要特點(diǎn)是它能夠在傳送中接力傳送郵件,傳送服務(wù)提供了進(jìn)程間通信環(huán)境( 此環(huán)境可以包括一個(gè)網(wǎng)絡(luò),幾個(gè)網(wǎng)絡(luò)或一個(gè)網(wǎng)絡(luò)的子網(wǎng) 。理解到傳送系統(tǒng)(或 是一對一的是很重要的。進(jìn)程可能直接和其它進(jìn)程通過已知的 件是一個(gè)應(yīng)用程序或進(jìn)程間通信。郵件可以通過連接在不同 的進(jìn)程跨網(wǎng)絡(luò)進(jìn)行郵件傳送。更特別的是,郵件可以通過不同網(wǎng)絡(luò)上的主機(jī)接力式傳送。 型 計(jì)基于以下通信模型:針對用戶的郵件請求,發(fā)送 立與接收 收 以是最終接收者也可以是中間傳送者。 9 第 9頁 共 51頁 命令由發(fā)送 出,由接收 收,而應(yīng)答則反方面?zhèn)魉汀?一旦傳送通道 建立, 送者發(fā)送 令指明郵件發(fā)送者。如果 收者可以接收郵件則返回 答。 送者再發(fā)出 令確認(rèn)郵件是否接收到。如果 收者接收,則返回 答;如果不能接收到,則發(fā)出拒絕接收應(yīng)答(但不中止整個(gè)郵件操作),雙方將如此重復(fù)多次。當(dāng)接收者收到全部郵件后會接收到特別的序列,如果接收者成功處理了郵件,則返回 答。 供傳送郵件的機(jī)制,如果接收方與發(fā)送方連接在同一個(gè)傳送服務(wù)下時(shí),郵件可以直接由發(fā)送方主機(jī)傳送到接收方主機(jī);或者,當(dāng)兩者不在同一個(gè)傳送服務(wù)下時(shí),通過中 繼 務(wù)器傳送。為了能夠?qū)?務(wù)器提供中繼能力,它必須擁有最終目的主機(jī)地址和郵箱名稱。 令參數(shù)是回復(fù)路徑,它指定郵件從何處來;而 令的參數(shù)是轉(zhuǎn)發(fā)路徑的,它指定郵件向何處去。向前路徑是源路徑,而回復(fù)路徑是返回路徑(它用于發(fā)生錯(cuò)誤時(shí)返回郵件)。 當(dāng)同一個(gè)消息要發(fā)往不同的接收者時(shí), 到了向不同接收者發(fā)送同一份數(shù)據(jù)的復(fù)制品的問題,郵件命令和應(yīng)答有一個(gè)比較奇怪的語法,應(yīng)答也有一個(gè)數(shù)字代碼。在下面,例子中可以看到哪些使用實(shí)際的命令和應(yīng)答。完整的命令和應(yīng)答在第四節(jié)。 命令與應(yīng)答對大小 寫不敏感,也就是說,命令和應(yīng)答可以是大寫,小寫或兩者的混合,但這一點(diǎn)對用戶郵件名稱卻不一定是對的,因?yàn)橛械闹鳈C(jī)對用戶名大小寫是敏感的。這樣 現(xiàn)中就將用戶郵箱名稱保留成初始時(shí)的樣子,主機(jī)名稱對大小寫不敏感。 命令與應(yīng)答由 母表組成,當(dāng)傳送服務(wù)提供 8 位字節(jié)傳送通道,每 7 位字符 10 第 10頁 共 51頁 正確傳送,而最高位被填充為 0。當(dāng)指定一般的命令或應(yīng)答格式后,參數(shù)會由一些類似于語言的字符串表示出來,如 或 ,這里尖括號表示這是一種類似于語言的變量。 議的命令 令定義了郵件傳輸或由用戶定義的系統(tǒng)功能。它的命令是由 結(jié)束的字符串。而在帶有參數(shù)的情況下,命令本身由 和參數(shù)分開,如果未帶參數(shù)可以直接和 連接。郵箱的語法格式必須和接收站點(diǎn)的格式一致。下面討論 令和應(yīng)答。 發(fā)送郵件操作涉及到不同的數(shù)據(jù)對象,它們由不同的參數(shù)相互連接?;貜?fù)路徑就是令的參數(shù),而轉(zhuǎn)發(fā)路徑則是 令的參數(shù),郵件日期是 令的參數(shù)。這些參數(shù)或者數(shù)據(jù)對象必須跟在命令后。這種模式也就要求有不同的緩沖區(qū)來存儲這些對象,也就是說,有 一個(gè)回復(fù)路徑緩沖區(qū),一個(gè)轉(zhuǎn)發(fā)路徑緩沖區(qū),一個(gè)郵件內(nèi)容緩沖區(qū)。特定的命令產(chǎn)生自己的緩沖區(qū),或使一個(gè)或多個(gè)緩沖的內(nèi)容被清除。 此命令用于向接收 認(rèn)發(fā)送 數(shù)域包括發(fā)送 主機(jī)名。接收過連接確認(rèn)命令來向發(fā)送 認(rèn)接收 命令和 應(yīng)確認(rèn)發(fā)送和接收 入了初始狀態(tài),也就是說,沒有操作正在執(zhí)行,所有狀態(tài)表和緩沖區(qū)已經(jīng)被子清除。 11 第 11頁 共 51頁 此命令用于開始將郵件發(fā)送到一個(gè)多個(gè)郵箱中。參數(shù)域包括回復(fù)路徑。返回路徑中包括了可選的主 機(jī)和發(fā)送者郵箱列表。當(dāng)有主機(jī)列表時(shí),它是一個(gè)回復(fù)路徑源,它說明此郵箱是由在表中的主機(jī)一一傳遞發(fā)送(第一個(gè)主機(jī)是最后一個(gè)接收到此郵件的主機(jī))過來的。此表也有作向發(fā)送者返回非傳遞信號的源路徑。因?yàn)槊總€(gè)傳遞主機(jī)地址都被加在此表起始處,它就必須使用發(fā)送 不是接收 果它們不是一個(gè) 話)清楚的名稱。一些出錯(cuò)信息的回復(fù)路徑可能就是空的。 此命令清除回復(fù)路徑緩沖區(qū),轉(zhuǎn)發(fā)路徑緩沖區(qū)和郵件內(nèi)容緩沖區(qū),并且將此命令的回復(fù)路徑信息插入到回復(fù)路徑緩沖區(qū)中。 此命令用于確 定郵件內(nèi)容的唯一接收者;多個(gè)接收者將由多個(gè)此命令指定。轉(zhuǎn)發(fā)路徑中包括一個(gè)可選的主機(jī)和一個(gè)必須的目的郵箱。當(dāng)出現(xiàn)主機(jī)列表時(shí),這就是一個(gè)源路徑,它指明郵件必須向列表中的上一個(gè)主機(jī)發(fā)送。如果接收 實(shí)現(xiàn)郵件的傳遞發(fā)送,就會返回如未知本地用戶( 550)的信息給用戶。 當(dāng)郵件被傳遞發(fā)送時(shí),傳遞主機(jī)必須將自己的名稱由轉(zhuǎn)發(fā)路徑的開始處移至回復(fù)路徑的結(jié)束處。當(dāng)郵件最終到達(dá)目的地時(shí),接收 以它的主機(jī)郵件格式自己的名稱插入目標(biāo)郵件中。例如,由傳遞主機(jī) A 接收的帶有如下參數(shù)的郵件時(shí), 將會變成如下形式: 12 第 12頁 共 51頁 此命令導(dǎo)致它的轉(zhuǎn)發(fā)路徑參數(shù)加入轉(zhuǎn)發(fā)路徑緩沖區(qū)中。 接收者將跟在命令后的行作為郵件內(nèi)容。此命令導(dǎo)致此命令后的郵件內(nèi)容加入郵件內(nèi)容緩沖區(qū)。郵件內(nèi)容可以包括所有 128 個(gè) 字符。郵件內(nèi)容由只包括一個(gè)句 號的行結(jié)束,也就是如下的字符序列: .,它指示了郵件的結(jié)束。 郵件內(nèi)容的結(jié)束指示要求接收者現(xiàn)在就處理保存的郵件內(nèi)容。此過程將回復(fù)路徑緩沖區(qū),轉(zhuǎn)發(fā)路徑緩沖區(qū)和郵件內(nèi)容緩沖區(qū)的內(nèi)容全部清空。如果操作成功,接收者必須返回 答;如果失敗也必須返回失敗應(yīng)答。 當(dāng)接收 到一條信息時(shí),無論是用作轉(zhuǎn)發(fā)還是此郵件已經(jīng)到達(dá)目的地,它都必須在郵件內(nèi)容的開始處加上時(shí)間戳這一行,這一行指示了接收到郵件主機(jī)和發(fā)出此郵件主機(jī)的標(biāo)識,以及接收到郵件內(nèi)容的時(shí)間和日期。轉(zhuǎn)發(fā)的信件將有多行這樣的時(shí)間戳。當(dāng)接 收 最后一站的傳送時(shí),它將返回路徑信息行插入郵件中。此行包括了發(fā)送命令中的 的信息。在這里,最后一站的傳送的意思是郵件將被送到目的用戶手中,但在一些情況下,郵件可能需要更進(jìn)一步的加工并由另外的郵件系統(tǒng)傳送。 可能在返回路徑中的郵箱與實(shí)際發(fā)送的郵件不一致,這個(gè)情況可能發(fā)生在需要傳送一個(gè)特定的錯(cuò)誤處理信箱而不是信件發(fā)送者那里。上面所述說明了,最后的郵件內(nèi)容由一個(gè)返回路徑行,和在其后的一個(gè)或多個(gè)時(shí)間戳行構(gòu)成。這些行后面是郵件內(nèi)容的頭和體信息。 當(dāng)處理后面的郵件數(shù)據(jù)指示部分成功時(shí)就 需要特定的說明。這種情況可能發(fā)生在發(fā)送 現(xiàn)當(dāng)郵件需要傳送給多個(gè)用戶時(shí),只能夠成功地向其中的一部分發(fā)送信息這 13 第 13頁 共 51頁 種情況下。在這種情況下,必須對 令發(fā)送 答,而接收 織并發(fā)送一個(gè) 不可傳遞郵件 信息到信息的發(fā)送者。在此信息中或者發(fā)送一個(gè)不成功接收者的列表,或者每次發(fā)送一個(gè)不成接收者,而發(fā)送多次。所有不可傳遞郵件信息由 令發(fā)送。 返回路徑和接收時(shí)間戳例子 27 1 15:27:39 27 1 15:15:13 27 1 15:01:59 27 1 15:01:01 is to . 此命令用于開始一個(gè)發(fā)送命令,將郵件發(fā)送到一個(gè)或多個(gè)終端上。參數(shù)域包括了一個(gè)回復(fù)路徑,此命令如果成功就將郵件發(fā)送到終端上了。 回復(fù)路徑包括一個(gè)可選的主機(jī)列表和發(fā)送者郵箱。當(dāng)出現(xiàn)主機(jī)列表時(shí),表示這是一個(gè)傳送路徑,郵件就是經(jīng)過這個(gè)路徑上的每個(gè)主機(jī)發(fā)送到這里的(列表上第一個(gè)主機(jī)是最后經(jīng)手的主機(jī))。此表用于返回非傳遞信號到發(fā) 送者。因?yàn)槊總€(gè)傳遞主機(jī)地址都被加 14 第 14頁 共 51頁 在此表起始處,它就必須使用發(fā)送 不是接收 果它們不是一個(gè) 話)清楚的名稱。一些出錯(cuò)信息的回復(fù)路徑可能就是空的。 此命令清除回復(fù)路徑緩沖區(qū),轉(zhuǎn)發(fā)路徑緩沖區(qū)和郵件內(nèi)容緩沖區(qū),并且將此命令的回復(fù)路徑信息插入到回復(fù)路徑緩沖區(qū)中。 R 此命令用于開始一個(gè)郵件操作將郵件內(nèi)容傳送到一個(gè)或多個(gè)終端上,或者傳送到郵箱中。對于每個(gè)接收者,如果接收者終端打開,郵件內(nèi)容將被傳送到接收者的終端上,否則就送到接收者的郵箱中。參數(shù)域包括回復(fù) 路徑,如果成功地將信息送到終端或郵箱中此命令成功。 回復(fù)路徑包括一個(gè)可選的主機(jī)列表和發(fā)送者郵箱。當(dāng)出現(xiàn)主機(jī)列表時(shí),表示這是一個(gè)傳送路徑,郵件就是經(jīng)過這個(gè)路徑上的每個(gè)主機(jī)發(fā)送到這里的(列表上第一個(gè)主機(jī)是最后經(jīng)手的主機(jī))。此表用于返回非傳遞信號到發(fā)送者。因?yàn)槊總€(gè)傳遞主機(jī)地址都被加在此表起始處,它就必須使用發(fā)送 不是接收 果它們不是一個(gè) 話)清楚的名稱。一些出錯(cuò)信息的回復(fù)路徑可能就是空的。 此命令清除回復(fù)路徑緩沖區(qū),轉(zhuǎn)發(fā)路徑緩沖區(qū)和郵件內(nèi)容緩沖區(qū),并且將此命令的回復(fù)路徑信息插入到回復(fù)路徑 緩沖區(qū)中。 此命令用于開始一個(gè)郵件操作將郵件內(nèi)容傳送到一個(gè)或多個(gè)終端上,并傳送到郵箱中。如果接收者終端打開,郵件內(nèi)容將被傳送到接收者的終端上和接收者的郵箱中。參數(shù)域包括回復(fù)路徑,如果成功地將信息送到郵箱中此命令成功。 15 第 15頁 共 51頁 回復(fù)路徑包括一個(gè)可選的主機(jī)列表和發(fā)送者郵箱。當(dāng)出現(xiàn)主機(jī)列表時(shí),表示這是一個(gè)傳送路徑,郵件就是經(jīng)過這個(gè)路徑上的每個(gè)主機(jī)發(fā)送到這里的(列表上第一個(gè)主機(jī)是最后經(jīng)手的主機(jī))。此表用于返回非傳遞信號到發(fā)送者。因?yàn)槊總€(gè)傳遞主機(jī)地址都被加在此表起始處,它就必須使 用發(fā)送 不是接收 果它們不是一個(gè) 話)清楚的名稱。一些出錯(cuò)信息的回復(fù)路徑可能就是空的。 此命令清除回復(fù)路徑緩沖區(qū),轉(zhuǎn)發(fā)路徑緩沖區(qū)和郵件內(nèi)容緩沖區(qū),并且將此命令的回復(fù)路徑信息插入到回復(fù)路徑緩沖區(qū)中。 此命令指示當(dāng)送郵件操作將被放棄。任何保存的發(fā)送者,接收者和郵件內(nèi)容應(yīng)該被拋棄,所有緩沖區(qū)和狀態(tài)表應(yīng)該被清除,接收方必須返回 答。 此命令要求接收者確認(rèn)參數(shù)是一個(gè)用戶。如果這是(已經(jīng)知道的)用戶名,返回用戶的全名和指定的郵箱。 此命令對回復(fù)路徑緩沖區(qū),轉(zhuǎn)發(fā)路徑緩沖區(qū)和郵件內(nèi)容緩沖區(qū)沒有影響。 此命令要求接收者確認(rèn)參數(shù)指定了一個(gè)郵件發(fā)送列表,如果是一個(gè)郵件發(fā)送列表,就返回表中的成員。如果這是(已經(jīng)知道的)用戶名,返回用戶的全名和指定的郵箱。此命令對回復(fù)路徑緩沖區(qū),轉(zhuǎn)發(fā)路徑緩沖區(qū)和郵件內(nèi)容緩沖區(qū)沒有影響。 此命令導(dǎo)致接收者向 令的發(fā)送者發(fā)出幫助信息。此命令可以帶參數(shù),并返 16 第 16頁 共 51頁 回特定的信息作為應(yīng)答。此命令對回復(fù)路徑緩沖區(qū),轉(zhuǎn)發(fā)路徑緩沖區(qū)和郵件內(nèi)容緩沖區(qū)沒有影響。 此命令不影響任何參數(shù)和已經(jīng)發(fā)出的命令。它只是說明沒有任何操作而不是說明接收者發(fā)送了一個(gè) 答。此命令對回復(fù)路徑緩沖區(qū),轉(zhuǎn)發(fā)路徑緩沖區(qū)和郵件內(nèi)容緩沖區(qū)沒有影響。 此命令指示接收方必須發(fā)送 答然后關(guān)閉傳送信道。接收方在接到 令并做出響應(yīng)之前不應(yīng)該關(guān)閉通信信道。發(fā)送方在發(fā)送 令和接收到響應(yīng)之前也不應(yīng)該關(guān)閉信道。即使出錯(cuò),也不應(yīng)該關(guān)閉信道。如果連接被提前關(guān)閉,接收方應(yīng)該象接收到 令一樣,取消所有等待的操作,但不恢復(fù)原先已經(jīng)做過的操作。而發(fā)送方應(yīng)該象接收到暫時(shí)錯(cuò)誤( 4樣假定命令和操作仍在支持之中。 此命令指定接收方要么發(fā)送 答并改變角色為發(fā)送 么發(fā)送拒絕信息并保持自己的角色。如果程序 A 現(xiàn)在是發(fā)送 發(fā)出 令后接收到 250)應(yīng)答,它就變成了接收 序 A 就進(jìn)入初始狀態(tài),好象通信信道剛打開一樣,這時(shí)它發(fā)送 220 準(zhǔn)備好服務(wù)信號。如果程序 B 現(xiàn)在是接收 發(fā)出 K( 250)應(yīng)答,它就變成了發(fā)送 序 A 就進(jìn)入初始狀態(tài),好象通信信道剛打開一樣,這時(shí) 它準(zhǔn)備接收 220 準(zhǔn)備好服務(wù)信號。 若要拒絕改變角色,接收方可以發(fā)送 502 應(yīng)答。 17 第 17頁 共 51頁 對于這些命令的順序有一定的限制。對話的第一個(gè)命令必須是 令,此命令在此后的會話中也可以使用。如果 令的參數(shù)不可接受,必須由返回一個(gè) 501失敗應(yīng)答,同時(shí)接收到的 須保持在與剛才一致的狀態(tài)下。 令可以在會話的任何時(shí)候使用。 令開始一個(gè)郵件操作。一旦開始了以后就要發(fā)送 令。郵件操作可以由 一個(gè)會 話中可以有一個(gè)或多個(gè)操作。 如果在操作開始參數(shù)不可接受,必須返回 501 失敗應(yīng)答,同時(shí)接收到的 須保持在與剛才一致的狀態(tài)下。如果操作中的命令順序出錯(cuò),必須返回 503 失敗應(yīng)答,同時(shí)接收到的 須保持在與剛才一致的狀態(tài)下。 會話的最后一個(gè)命令必須是 令。此命令在會話的其它時(shí)間不能使用。 法格式 命令是由命令碼和其后的參數(shù)域組成的。命令碼是四個(gè)字母組成的,不區(qū)別大小寫。因?yàn)橄旅娴拿畹淖饔檬窍嗤模?對于引導(dǎo)任何參數(shù)值的標(biāo) 記也是適用的,如 是一樣的。命令碼和參數(shù)由一個(gè)或多個(gè)空格分開。然而在回復(fù)路徑和轉(zhuǎn)發(fā)路徑中的參數(shù)是區(qū)別大小寫的。特別是在一些主機(jī)上, 根本不是一個(gè)用戶。 參數(shù)域由不定長的字符串組成,它由 結(jié)束,接收方在完全接收到此序列前不會采取任何行動。方括號代表可選的參數(shù)域。如果不選擇的話,系統(tǒng)選擇默認(rèn)的設(shè)置。 下面是 令: 18 第 18頁 共 51頁 應(yīng)答 對 令的響應(yīng)是多樣的,它確定了在郵件傳輸過程中請求和處理的同步,也保證了發(fā)送 道接收 狀態(tài)。每個(gè)命令必須有且只有一個(gè)響應(yīng)。 應(yīng)由三位數(shù)字組成,其后跟一些文本。數(shù)字幫助決定下一個(gè)應(yīng)該進(jìn)入的狀態(tài),而文本對人是有意義的。三位的響應(yīng)已經(jīng)包括了足夠的信息,不用再閱讀文本,文 19 第 19頁 共 51頁 本可以直接拋棄或者傳遞給用戶。特別的是,文本是與接收和環(huán)境相關(guān)的,所以每次接收到的文本可能不同。在附錄 E 中可以看到全部的響應(yīng)碼。正規(guī)的情 況下,響應(yīng)由下面序列構(gòu)成:三位的數(shù)字, ,一行文本和一個(gè) ,或者也可以是一個(gè)多行響應(yīng)。只有 令可以導(dǎo)致多行應(yīng)答,然而,對所有命令,多行響應(yīng)都是允許的。 Y 00 格式錯(cuò)誤,命令不可識別(此錯(cuò)誤也包括命令行過長) 501 參數(shù)格式錯(cuò)誤 502 命令不可實(shí)現(xiàn) 503 錯(cuò)誤的命令序列 504 命令參數(shù)不可實(shí)現(xiàn) 211 系統(tǒng)狀態(tài)或系統(tǒng)幫助響應(yīng) 214 幫助信息 220 服務(wù)就緒 221 服務(wù)關(guān)閉傳輸信道 421 服務(wù)未就緒,關(guān)閉傳輸信道(當(dāng)必須關(guān)閉時(shí),此應(yīng)答可以作為對任何命令的響應(yīng)) 250 要求的郵件操作完成 251 用戶非本地,將轉(zhuǎn)發(fā)向 450 要求的郵件操作未完成,郵箱不可用(例如,郵箱忙) 550 要求的郵件操作未完成,郵箱不可用(例如,郵箱未找到,或不可訪問) 451 放棄要求的操作;處理過程中出錯(cuò) 551 用戶非本地,請嘗試 20 第 20頁 共 51頁 452 系統(tǒng)存儲不足,要求的操作未執(zhí)行 552 過量的存儲分配,要求的操作未執(zhí) 行 553 郵箱名不可用,要求的操作未執(zhí)行(例如郵箱格式錯(cuò)誤) 354 開始郵件輸入,以 554 操作失敗 21 第 21頁 共 51頁 第 4 章 道發(fā)送和接受郵件,我們就必須不得不提 。 全稱是“ (該標(biāo)準(zhǔn)提供了郵件內(nèi)容的格式和相關(guān)語義。 。 單介紹 定的電子郵件內(nèi)容全部由 符組成,就是通常所說的文本文件,因而標(biāo)準(zhǔn)將它稱為 本信件 ( 從直觀上看,信件非常簡單,就是一系列由 符組成的文本行,每一行以回車換行符 (“ 就是 的 13 和 10)結(jié)束。 從組織上看,信件內(nèi)容結(jié)構(gòu)分為兩大部分,中間用一個(gè)空白行 (只有 的行 )來分隔。第一部分稱為信件的頭部 (of 包括有關(guān)發(fā)送方、接收方、發(fā)送日期等信息。第二部分稱為信件的體部 (of 包括信件內(nèi)容的正文文本。信頭是必需的,信體是可選的,即信體可有可無。如果不存在信體,用作分隔的空白行也就不需要。在信體中,也可以有用作分隔的空白行。這樣設(shè)計(jì)的信件便于進(jìn)行語法分析,提取信件的基本信息。 在 規(guī)定,信件體就是一系列的向收信人表達(dá)信息的文本行,比較簡單,可以包含任意文本,并沒有附加的結(jié)構(gòu)。信件頭則具有比較復(fù)雜的結(jié)構(gòu),在下一小節(jié)中詳述。 22 第 22頁 共 51頁 信件的頭部 1、 信件頭部的一般格式 信頭的結(jié)構(gòu)比較復(fù)雜,信頭由若干信頭字段 (成,這些字 段為用戶和程序提供了關(guān)于信件的信息。要了解信頭的結(jié)構(gòu)就要弄清楚各種信頭字段。 所有的信頭字段都具有相同的語法結(jié)構(gòu),從邏輯上說,包括四部分,字段名 (緊跟冒號 : (后跟字段體 (最后以回車換行符 (止。即 信頭字段 = 字段名:字段體 段名必須由除了冒號和空格以外的可打印 符 (其值在 33 和 126 之間 )組成,大多數(shù)字段的字段名稱由一系列字母,數(shù)字組成,中間經(jīng)常插入橫線符。字段名告訴電子郵件軟件如何翻譯該行中剩下的 內(nèi)容。 字段體可以包括除了 外的任何 符。但是其中的空格,加括號的注釋,引號和多行字段都比較復(fù)雜,另外,字段體的語法和語義依賴于字段名,每個(gè)類型的字段有特定的格式。 信件定義了一些標(biāo)準(zhǔn)字段,并提供了用戶自行定義非標(biāo)準(zhǔn)字段的方 2、 結(jié)構(gòu)化字段和非結(jié)構(gòu)化字段 每個(gè)字段所包含的信息不同,字段大體可以分為結(jié)構(gòu)化字段和非結(jié)構(gòu)化字段。 結(jié)構(gòu)化字段有特定的格式,由語法分析程序檢測。 段就是一個(gè)很好的例子,它的字段內(nèi)容是信箱, 有一個(gè)離散的結(jié)構(gòu)。 非結(jié)構(gòu)化的字段含有任意 的數(shù)據(jù),沒有固定格式。例如, 段可以含有任 23 第 23頁 共 51頁 意的文字,并且沒有固定格式。非結(jié)構(gòu)化的字段數(shù)量較少,只有 展字段,非標(biāo)準(zhǔn)字段、 。所有其它字段都是結(jié)構(gòu)化的。 3、 信頭字段的元素 盡管 件的總體結(jié)構(gòu)非常簡單,但一些信頭字段的結(jié)構(gòu)是很復(fù)雜的。下面介紹一些大多數(shù)字段共有的元素。 ( 1)空白符 像其它文本文件一樣,空白符包括空格符 ( 32)和制表符 19)。此外,行末的回車換行符 應(yīng) 算是空白符。使用空白符可以對字段進(jìn)行格式化,增加它的可讀性。例如,每個(gè)字段間用 分離,在字段內(nèi)用空格來分隔字段名和字段內(nèi)容。在 面的冒號和內(nèi)容之間插入空格字符,會使字段結(jié)構(gòu)更加清晰。在 ,空白符的使用并沒有固定的規(guī)則,但應(yīng)當(dāng)正確地使用,僅在需要時(shí)才使用空白符,以便接收軟件進(jìn)行語法分析。 ( 2)注解 注解是由括號括起來的一系列字符,例如, (這份禮物 )。注解一般用在非結(jié)構(gòu)化的信頭字段中,沒有語法語義,僅為人提供了一些附加的信息。如果在加引號的字符串中有包括在括號中的字符,那是字符 串的一部分,不是注解。在解釋信件的時(shí)候,會將注解忽略,可以用一個(gè)空格字符代替它們,這樣就什么也不會破壞。 ( 3)字段折疊 每個(gè)信頭字段從邏輯上說應(yīng)當(dāng)是一個(gè)由字段名、冒號、字段體和 成的單一的行,但為了書寫與顯示的方便,增加可讀性,也為了符合 1000/80 的行字符數(shù)的限制, 24 第 24頁 共 51頁 可以將超過 80 個(gè)字符的信頭字段分為多行,即對于比較長的字段,可以分割成幾行,形成折疊。在結(jié)構(gòu)化和非結(jié)構(gòu)化字段中都允許折疊。通過在字段中某些點(diǎn)插入 和至少一個(gè)或多個(gè)空白字符來實(shí)現(xiàn)字段的折疊,第一行后面的行稱為信頭字段的續(xù)行。續(xù) 行都以一個(gè)空白符開始,這種方法稱為折疊( 例如標(biāo)題字段 is a 以表示為: is a 之,將一個(gè)被折疊成多行的信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 韻母課件介紹
- 音名唱名課件介紹
- 2025年其它核材料及相關(guān)特殊材料項(xiàng)目合作計(jì)劃書
- 城市污水管網(wǎng)建設(shè)工程投標(biāo)書(參考模板)
- 2025年SPI環(huán)氧乙烷銀催化劑項(xiàng)目合作計(jì)劃書
- 2025年石英玻璃纖維布項(xiàng)目合作計(jì)劃書
- 2025年ZRO2陶瓷磨介項(xiàng)目合作計(jì)劃書
- 《GBT3533.3-1984評價(jià)和計(jì)算標(biāo)準(zhǔn)化經(jīng)濟(jì)效果數(shù)據(jù)資料的收集和處理方法》深度解析
- 2025年智能輸電系統(tǒng)項(xiàng)目建議書
- 2025年廢舊電子產(chǎn)品回收利用產(chǎn)業(yè)鏈上下游市場分析報(bào)告
- 護(hù)理查房與病歷討論
- 酒精所致精神障礙護(hù)理查房
- 2025-2030中國遙控武器站行業(yè)現(xiàn)狀調(diào)研與前景趨勢預(yù)測報(bào)告
- 內(nèi)蒙古呼倫貝爾能源投資開發(fā)有限責(zé)任公司招聘筆試真題2024
- WST821-2023托育機(jī)構(gòu)質(zhì)量評估標(biāo)準(zhǔn)
- 2025至2030中國循環(huán)腫瘤細(xì)胞(CTC)行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 2025至2030中國大型連鎖超市行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- T-GDMDMA 0044-2025 一次性使用血液灌流器的臨床使用指南
- 2025-2030年中國鱈魚腸行業(yè)市場發(fā)展分析及發(fā)展前景與投資策略研究報(bào)告
- 2025-2030年中國智慧應(yīng)急行業(yè)市場深度調(diào)研及市場前瞻與投資策略研究報(bào)告
- 2025年全國統(tǒng)一高考語文試卷(全國一卷)含答案
評論
0/150
提交評論