版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼1電子郵件應(yīng)用編程電子郵件應(yīng)用編程2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼2內(nèi)容SMTP協(xié)議編程POP3協(xié)議編程學(xué)習(xí)目標(biāo) 明確兩種協(xié)議的內(nèi)容命令響應(yīng)代碼 掌握郵件協(xié)議的應(yīng)用編程模式,并能靈活運(yùn)用 2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼3概述概述電子郵件應(yīng)用編程模式 遵循傳統(tǒng)的客戶/服務(wù)器模式 不同之處在傳統(tǒng)的通信過程中,通信的主體是軟件進(jìn)程,通信過程中要建立通信連接,通信的兩端都正在運(yùn)行。 在電子郵件通信中,通信的主體是人,發(fā)信人和收信人不可能保證同時在線,收信人也不可能總是用同一臺機(jī)器收發(fā)郵件 。
2、2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼4概述概述因此,必須借鑒傳統(tǒng)的信件通信模式。 延遲遞交模式 。因特網(wǎng)上電子郵件通信過程 見講義圖12022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼5電子郵件消息格式電子郵件消息格式電子郵件消息格式采用文本字段定義 電子郵件是供人閱讀的 由信封和電子郵件報文兩部分構(gòu)成 電子郵件報文由報文頭和消息主體構(gòu)成 報文頭由一系列字段名稱和相應(yīng)取值構(gòu)成 消息主體就是實際發(fā)送的消息內(nèi)容 信封一般由MUA和MTA從報文頭中抽取部分與傳遞郵件相關(guān)的字段內(nèi)容構(gòu)成 電子郵件消息格式就是指電子郵件頭字段名稱、相應(yīng)語義和編碼格式 2022年6月17日廣州
3、大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼6電子郵件格式有RFC822格式和MIME(Multipurpose Internet Mail Extensions)格式 2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼7RFC822格式格式 名稱的由來1982年,IETF發(fā)布了RFC821和RFC822文檔。RFC821文檔定義了SMTP協(xié)議,RFC822文檔規(guī)定了電子郵件的格式。2001年,IETF發(fā)布了RFC2821文檔和RFC2822文檔,分別更新了RFC821和RFC822文檔。由于前后兩個定義電子郵件格式的RFC文檔的編號后3位數(shù)都是822,所以這種電子郵件格式名稱就稱為RFC822
4、格式。 2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼8RFC822格式格式 RFC822格式規(guī)定電子郵件頭和消息內(nèi)容采用ASCII碼編碼方式,每行由回車(CR)和換行(LF)結(jié)尾,建議每行長度在80字符以內(nèi),最長不超過1000個字符,電子郵件頭和消息內(nèi)容用一個空行隔開。 RFC822格式的頭字段的名稱及說明 見下表2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼9字段名稱說明Date必需。電子郵件的發(fā)送日期和時間。From必需。電子郵件作者的地址。Sender可選。發(fā)送電子郵件的地址。Reply-To可選。接收者的回復(fù)地址,缺省為From字段的值。To通常出現(xiàn)。接收者的
5、郵件地址,可能有多個值。CC可選。抄送的郵件郵件地址,可能有多個值。Bcc可選。盲抄送的郵件郵件地址,可能有多個值。接收者和抄送者不知道電子郵件盲抄送的地址。Message-ID可選。電子郵件識別號,通常由MUA或MTA自動產(chǎn)生。In-Reply-To可選。當(dāng)郵件為回復(fù)郵件時,該字段的值為被回復(fù)的郵件識別號。References可選。定義了與郵件相關(guān)的其它文檔信息。Subject通常出現(xiàn)。郵件的主題信息。Comments可選。包含與該郵件相關(guān)的評論。Keywords可選。其值為逗號分隔的關(guān)鍵詞,用于郵件查找。Resent*當(dāng)重發(fā)郵件時必需。以Resent開頭后接字段名,指重發(fā)時的相關(guān)字段信息。
6、ReceivedReturn-Path由MTA自動插入,用來跟蹤?quán)]件經(jīng)過的SMTP服務(wù)器。2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼10MIME格式格式為什么出現(xiàn)MIME格式?RFC822格式只能適用于純英文形式的文本郵件 當(dāng)發(fā)送的信息或頭字段的值包含有非英語文字,包含有圖象、聲音及可執(zhí)行文件等其他文件形式 時,怎么辦?新的郵件格式是重新從零開始還是以RFC822格式為基礎(chǔ)來定義新的格式呢? RFC822格式出現(xiàn)已經(jīng)有很長時間了,許多郵件軟件的開發(fā)都是以RFC822格式為基礎(chǔ),所以,新的格式最好采用ASCII來編碼上述的非英語文字和多媒體等數(shù)據(jù),這就是MIME,中文可讀為多用途
7、因特網(wǎng)郵件擴(kuò)展。 2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼11考慮到郵件的內(nèi)容不會被MTA讀取,只會由接收方的MUA讀取。所以,可以在郵件內(nèi)容中以ASCII方式來編碼非英語文字及其他非文本信息,增加郵件頭字段信息描述編碼方式及包含的信息類型等信息。因此MIME格式增加了新的郵件頭字段定義和編碼方式的定義 。2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼12編碼方式編碼方式 Base64編碼: BASE64編碼是使用最廣的郵件編碼格式,幾乎所有的電子郵件軟件頭把它作為默認(rèn)的二進(jìn)制編碼。 將二進(jìn)制流以 24 位為一組,每組分為4個6個二進(jìn)位,每6個二進(jìn)制位用ASCII
8、碼表示,這樣,就把3個字節(jié)的信息表示為4個ASCII字符。若最后一組最后剩下的二進(jìn)制位數(shù)不夠6位,則在右邊補(bǔ)0使之成6位;若最后一組不夠4個ASCII字符時,用“=”填充,使之成4個ASCII字符。Base64采用65個ASCII字符來表示所有的數(shù)據(jù)。 2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼13編碼方式編碼方式 對二進(jìn)制流100100110010010001001100001000101000010進(jìn)行Base64編碼,首先劃分為2組,第1組24位:100100,110010,010001,001100;第2組13位:001010,00010,最后只有5位,最右邊補(bǔ)上一位0
9、,使之成6位。第1組的Base64編碼為:KYRM,第2組的Base64編碼為KE=。 2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼14編碼方式編碼方式 引用可打?。≦uoted-Printable)編碼:簡稱QP, 一般用于郵件內(nèi)容大量是ASCII碼字符,只含有少量非ASCII字符的情況。 QP編碼規(guī)則:按字節(jié)編碼。如果該字節(jié)最高位為0,則按ASCII碼編碼;如果最高位為1,則按3個ASCII字符編碼,第1個字符為“=”,第2個字符是該字節(jié)高4位對應(yīng)的十六進(jìn)制數(shù),第3個字符是該字節(jié)高4位對應(yīng)的十六進(jìn)制數(shù);空格作為“=20”編碼。 2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程
10、主講:劉淼15編碼方式編碼方式 7bit數(shù)據(jù)編碼:就是RFC822格式的ASCII編碼方式。 8bit數(shù)據(jù)編碼:這是8位編碼,非ASCII字符可以發(fā)送,必須由MTA和MUA提供支持。一般不推薦使用這種編碼方式。 2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼16MIME擴(kuò)展頭字段擴(kuò)展頭字段 1、 MIME版本字段名:MIME-Version。這是唯一一個不以Content開頭的字段,定義了MIME的使用版本,當(dāng)前版本1.1。2、 內(nèi)容-類型字段名:Content-Type。定義了郵件內(nèi)容所包含的數(shù)據(jù)類型和子類型,根據(jù)子類型的不同,還可包含一些參數(shù),具體格式為:Content-Typ
11、e: / ; parameter1 ; parameter2 . ; parameterN 2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼17類型名子類型名說明textplain無格式文本,與RFC822格式一致。enriched包含格式信息的文本。html網(wǎng)頁文件。imagejpeg內(nèi)容為jpeg類型的圖片。gif內(nèi)容為gif類型的圖片。tiff內(nèi)容為tiff類型的圖片。audiobasic內(nèi)容為基本類型的音頻文件。mpeg內(nèi)容為mpeg的音頻文件。videompeg內(nèi)容為mpeg的視頻文件。dv符合流行的VCR標(biāo)準(zhǔn)的視頻文件。applicationoctet-stream任意二
12、進(jìn)制數(shù)據(jù)。msword微軟word文檔。pdfAdobe pdf文檔。zip壓縮文檔。multipart(多個正文部分)mixed各正文部分相互無聯(lián)系,可順序處理。alternative各正文部分有相同語義,但格式不同,可任取一個處理。parallel各正文部分可并行處理。encrypted第一部分包含加密的相關(guān)信息,第二部分包含加密數(shù)據(jù)。2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼183、 內(nèi)容傳送編碼字段名:Content-Transfer-Encoding:包含內(nèi)容的編碼類型,具體編碼類型見上一小節(jié)。4、 內(nèi)容標(biāo)識字段名:Content-ID:郵件的唯一標(biāo)識。5、 內(nèi)容描述
13、字段名:Content-Description:對郵件內(nèi)容的描述信息,一般用ASCII碼文本。 2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼19如果在電子郵件頭中包含非ASCII碼字符,又如何處理呢? 頭字段名稱:=?=字符集:指編碼前的文本采用的字符集名稱。編碼方式:有2種取值,“B”指Base64編碼方式,“Q”指引用可打印編碼方式。編碼后的字符:指非ASCII字符集合經(jīng)過編碼后的ASCII字符集合。 2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼20SMTP協(xié)議協(xié)議 電子郵件從發(fā)送方的客戶軟件發(fā)送,經(jīng)過發(fā)送方電子郵件帳號所在的郵件服務(wù)器,到達(dá)接收方郵件帳號所在的
14、郵件服務(wù)器,整個傳送過程都要使用SMTP協(xié)議。SMTP協(xié)議使用TCP協(xié)議提供的服務(wù),它的周知端口號為25,RFC2821文檔包含SMTP協(xié)議的最新定義。 SMTP首先由發(fā)件方提出申請,要求與接收方SMTP建立雙向的通信渠道,收件方可以是最終收件人也可以是中間轉(zhuǎn)發(fā)的服務(wù)器。收件方服務(wù)器確認(rèn)可以建立連接后,雙發(fā)就可以開始通信。2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼21SMTP協(xié)議通信過程 見講義上的圖2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼22常用命令和常見應(yīng)答碼 命令使用形式說明HELO 域名 通知發(fā)送方的域名。MAIL FROM: 回郵地址通知回郵地址。R
15、CPT TO: 接收地址通知接收地址。DATA準(zhǔn)備發(fā)送郵件。RSET放棄此次郵件發(fā)送。VERY 郵件地址請求檢查參數(shù)中的地址的有效性。EXPN郵件地址請求確認(rèn)參數(shù)中的地址為郵件列表地址,返回列表中的郵件地址。HELP獲取幫助信息。NOOP除了檢查與服務(wù)器端的連接外,不做任何工作。QUIT終止會話。2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼23應(yīng)答碼應(yīng)答信息說明220 Service ready.接受TCP連接請求。221 closing transmission channel.QUIT命令的應(yīng)答,關(guān)閉傳輸通道。250Requested mail action okay, co
16、mpleted命令處理成功。354Start mail input; end with .DATA命令的應(yīng)答,通知客戶端已做好郵件接收準(zhǔn)備工作。452Requested action not taken: insufficient system storage.由于服務(wù)器端外部存儲空間不夠,不能處理命令。500Syntax error, command unrecognized語法錯誤,無法識別的命令。2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼24SMTP客戶軟件舉例Mail.javaSMTPClientDemo.javaSMTP服務(wù)器軟件舉例Receiver.java2022
17、年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼25POP3協(xié)議編程協(xié)議編程POP協(xié)議全稱協(xié)議全稱Post Office Protocol,即郵,即郵局協(xié)議,用于電子郵件的接收,它使用局協(xié)議,用于電子郵件的接收,它使用TCP的的110端口進(jìn)行通信?,F(xiàn)在使用的是端口進(jìn)行通信?,F(xiàn)在使用的是第三版,簡稱為第三版,簡稱為POP3。2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼26POP3協(xié)議的通信過程協(xié)議的通信過程 POP3協(xié)議的通信基于傳統(tǒng)的客戶/服務(wù)器模式。POP3客戶向POP3服務(wù)器請求建立TCP連接,服務(wù)器接受連接請求,建立連接,此時,POP3會話開始。POP3客戶向服務(wù)器發(fā)送命
18、令,服務(wù)器處理命令,向客戶返回應(yīng)答信息和處理結(jié)果。應(yīng)答信息沒有像SMTP協(xié)議那樣有應(yīng)答碼,POP3應(yīng)答信息以+OK或-ERR開頭,后面跟描述信息。+OK是肯定應(yīng)答,表示命令成功執(zhí)行;-ERR是否定應(yīng)答,表示在命令執(zhí)行過程中出現(xiàn)錯誤。 2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼27POP3會話 狀態(tài)轉(zhuǎn)換圖見講義圖3授權(quán)狀態(tài)當(dāng)POP3客戶與服務(wù)器建立TCP連接后,服務(wù)器會發(fā)送肯定應(yīng)答信息,進(jìn)入授權(quán)狀態(tài),開始用戶身份鑒別??蛻舳耸褂肬SER命令發(fā)送用戶帳號名稱,服務(wù)器端檢查通過,傳回肯定應(yīng)答;接著,客戶端使用PASS命令發(fā)送帳號密碼,服務(wù)器端檢查通過,傳回肯定應(yīng)答后,進(jìn)入下一個狀態(tài)事務(wù)狀態(tài)。 2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼28事務(wù)狀態(tài)用戶身份鑒別通過后,會話進(jìn)入事務(wù)狀態(tài)。在事務(wù)狀態(tài)中,用戶通過POP3客戶軟件發(fā)送各種命令,執(zhí)行郵件讀取任務(wù)。 命令列表2022年6月17日廣州大學(xué) Java網(wǎng)絡(luò)編程 主講:劉淼29命令參數(shù)說明STAT無查詢郵箱狀態(tài)信息,通常會返回郵箱中的郵件數(shù)和所用存儲空間。LIST郵件號(可選)列出指定郵件的郵件號和大小,缺省列出郵箱中所有郵件的郵件號和大小。RETR郵件號讀取指定郵件號的郵件。DELE郵件號在指定郵件號的郵件上加上刪除標(biāo)志。NOOP無服務(wù)器返回+OK應(yīng)答。RSET無將郵箱狀態(tài)恢復(fù)到事務(wù)階段之前的狀態(tài),
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 黑龍江省大慶市肇源縣東部五校(五四制)2024-2025學(xué)年八年級上學(xué)期10月月考化學(xué)試卷(含答案)
- 第23單元 旋轉(zhuǎn)-單元測試卷(4)-2024-2025學(xué)年數(shù)學(xué)人教版9年級上冊(含答案解析)
- 數(shù)據(jù)中心能源管理方案
- 贛南師范大學(xué)《行政管理學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 阜陽師范大學(xué)《教師專業(yè)發(fā)展》2022-2023學(xué)年第一學(xué)期期末試卷
- 阜陽師范大學(xué)《幼兒園游戲》2023-2024學(xué)年第一學(xué)期期末試卷
- 粵教版一年級下冊-科學(xué)-教學(xué)設(shè)計
- 徐州市2024-2025學(xué)年四年級上學(xué)期11月期中調(diào)研數(shù)學(xué)試卷一(有答案)
- 福建師范大學(xué)協(xié)和學(xué)院《視覺設(shè)計基礎(chǔ)》2022-2023學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《人力資源管理(雙語)》2022-2023學(xué)年第一學(xué)期期末試卷
- WST771-2015 工作場所職業(yè)病危害因素檢測工作規(guī)范
- 報價單(產(chǎn)品報價單)
- 2016年1月自考06093人力資源開發(fā)與管理試題及答案含解析
- 新媒體寫作課件
- 計劃生育終止妊娠相關(guān)理論知識考試試題及答案
- 倉庫管理系統(tǒng)詳細(xì)設(shè)計方案
- 員工能力素質(zhì)考評表(班組長級人員用表)
- 食品安全綜合實踐課件
- 2024年質(zhì)量員(設(shè)備安裝)專業(yè)技能知識考試練習(xí)題庫及答案(共四套)
- 2023 年云南省愛我國防知識網(wǎng)絡(luò)競賽題庫(小學(xué)組和初中組)
- SJ-T 11798-2022 鋰離子電池和電池組生產(chǎn)安全要求
評論
0/150
提交評論