版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第5章,SMTP和POP3的應用程序設計,5.1通過應用程序發(fā)送電子郵件,5.2通過同步TCP接收電子郵件,電子郵件由SMTP服務器發(fā)送,SMTP是英語簡單郵件傳輸協(xié)議的縮寫,意思是簡單郵件傳輸協(xié)議,默認端口為25。使用SMTP協(xié)議發(fā)送郵件有兩種形式:1)客戶端可以匿名發(fā)送郵件,無需客戶端驗證,這是一般的SMTP協(xié)議;2)客戶端必須提供用戶名和密碼,這稱為ESMTP協(xié)議或擴展SMTP。3)除了是否需要身份驗證之外,ESMTP和SMTP的區(qū)別是相同的。為了避免或減少垃圾郵件,目前大多數(shù)SMTP郵件服務器通常使用用戶名和密碼認證。5.1通過應用程序發(fā)送電子郵件。在SMTP協(xié)議中,電子郵件由三部分組
2、成:信封、郵件頭和郵件體。1)信封信封包括發(fā)件人的電子郵件地址和收件人的電子郵件地址,由兩個SMTP命令指示。來自:的郵件,告訴SMTP服務器發(fā)件人的地址。RCPT轉:告訴SMTP服務器的收件人地址。5.1通過應用程序發(fā)送電子郵件(續(xù)),5.1通過應用程序發(fā)送電子郵件(續(xù)),2)標題中的常用命令:FROM:表示郵件發(fā)送者是誰。收件人:指明誰是郵件收件人。主題:指示消息的主題。日期:指示發(fā)送電子郵件的時間?;貜停罕硎距]件的回復地址。內容類型:指示哪些類型的消息包含文本、超文本和附件。x-優(yōu)先級:表示郵件的發(fā)送優(yōu)先級。MIME-Version:MIME表示多用途互聯(lián)網郵件擴展,即多用途互聯(lián)網郵件擴
3、展標準,它定義了消息、附件和其他傳輸內容的格式。5.1通過應用程序發(fā)送電子郵件(續(xù)),3)正文是電子郵件的內容。標題以空行結束,后面是正文。4)郵件的結尾符號以“.”結尾。5.1通過應用程序發(fā)送電子郵件(續(xù))。對于在沒有專用郵件服務器的情況下運行的大多數(shù)客戶端程序,必須提供用戶名和密碼才能向SMTP服務器發(fā)送電子郵件,然后在服務器成功通過身份驗證后發(fā)送或接收電子郵件。因此,要在應用程序中發(fā)送郵件,您需要使用以下類:1)System.Net命名空間下的網絡憑據類,用于提供客戶端身份驗證機制的憑據。其中包括標準的互聯(lián)網身份驗證方法(基本、簡單、協(xié)商、NTLM和Kerberos身份驗證)和可以創(chuàng)建的
4、自定義方法。在郵件發(fā)送中,我們需要使用這個類來提供SMTP服務器所需的用戶名和密碼。用法是:網絡憑據我的憑據=新的網絡憑據(發(fā)件人電子郵件地址,密碼);5.1通過應用程序發(fā)送電子郵件(續(xù)),2)系統(tǒng)下的MailAddress類。net.mail命名空間,用于提供發(fā)件人和收件人的郵件地址。常見的形式是:郵件地址從=新郵件地址;郵件地址到=新郵件地址;5.1通過應用程序發(fā)送電子郵件(續(xù)),3)系統(tǒng)下的郵件類。net.mail命名空間,用于提供郵件信息,包括主題、內容、附件、信息類型等。常見的形式是:郵件消息=新郵件消息(發(fā)件人、收件人);信息。主題=主題。信息。主題編碼=系統(tǒng)。文本。編碼。UTF8
5、;信息。正文=消息內容;信息。身體編碼=系統(tǒng)。文本。編碼。UTF8;5.1通過應用程序發(fā)送電子郵件(續(xù)),4)系統(tǒng)下的附件類。net.mail命名空間,用于提供附件對象,常用形式是:附件附件文件=新附件(文件名);信息。附件。添加(附件文件);5) SmtpClient類該類用于發(fā)送郵件,常用形式是:SmtpClient client=新的SmtpClient(郵件服務器地址);客戶。發(fā)送(消息);利用同步傳輸控制協(xié)議接收電子郵件,有兩種協(xié)議用于發(fā)送和接收電子郵件,一種是傳輸控制協(xié)議,用于發(fā)送和接收數(shù)據;另一個是POP3協(xié)議,用于解析傳輸?shù)拿?。電子郵件主要是通過郵局協(xié)議接收的,現(xiàn)在郵局協(xié)議通
6、常被用作POP3,默認端口為110。通過POP3協(xié)議,登錄服務器后,客戶端可以刪除或下載自己的郵件。下載后,電子郵件客戶端軟件可以在本地處理郵件。1.POP3客戶端軟件的工作原理是在閱讀郵件之前需要與服務器建立TCP連接。連接成功后,POP3服務器將向客戶端發(fā)送確認消息,客戶端將等待服務器的響應,處理收到的信息,然后發(fā)送下一個命令,并重復多次,直到連接終止。這個過程經歷三種狀態(tài):授權、交易和更新。5.2使用同步傳輸控制協(xié)議接收電子郵件(續(xù)),2.2中的命令。POP3協(xié)議,每個命令由兩部分組成:命令和參數(shù),每個命令以回車結束。命令和參數(shù)用空格隔開。由POP3服務器發(fā)回的響應消息包括一個狀態(tài)代碼和
7、一個命令,隨后可能會有附加信息。所有響應也以回車結束。有兩個狀態(tài)代碼:“正?!焙汀笆 ?-ERR)。3。3 .具體流程。POP3協(xié)議假設C代表客戶端,S代表服務器。1)授權客戶端首先與POP3服務器建立TCP連接,服務器收到后發(fā)送單行確認消息。此時,POP3會話進入授權狀態(tài)。在授權狀態(tài)下,客戶需要將用戶名和密碼發(fā)送到服務器進行確認。具體命令如下:5.2使用同步傳輸控制協(xié)議接收電子郵件(續(xù))并發(fā)送用戶名。語法形式:USER函數(shù):將客戶的用戶名發(fā)送到服務器。服務器返回:確定正確的用戶名;-ERR錯誤的用戶名。示例:c:用戶s:好的,歡迎使用此服務器。用戶名確認成功后,您需要輸入密碼。語法形式:P
8、ASS函數(shù):將客戶的密碼發(fā)送到服務器。服務器返回:確定正確的用戶名;-確定用戶名不正確。示例:c: pass * * * * * s: ok我的名字登錄在19:04,5.2使用同步的TCP接收電子郵件(續(xù)),2)操作狀態(tài)授權成功后,POP3會話將進入操作狀態(tài),客戶可以執(zhí)行POP3命令來執(zhí)行相應的操作。對于每個命令,服務器都會返回一條應答消息。下列命令用于操作status:STAT命令語法:STAT函數(shù):從服務器獲取消息總數(shù)和字節(jié)總數(shù)。服務器返回:消息總數(shù)和字節(jié)總數(shù)。示例:c: stats: ok 2 320,5.2使用同步TCP接收電子郵件(續(xù)),LIST命令的語法形式:LIST函數(shù):從服務獲
9、取電子郵件的列表和大小。服務器返回:列出郵件列表和大小。示例:c:list s:ok 2消息(320個八位字節(jié))s: 1 120s: 2 200s:RETR命令語法形式:retr函數(shù):從服務器獲取消息。服務器返回:確定成功;-ERR錯誤。示例:c: retr1s: ok 120八位字節(jié):s:請注意,“”這里是分開送的。5.2通過同步傳輸控制協(xié)議接收電子郵件(續(xù)),DELE命令的語法形式:DELE函數(shù):服務器將電子郵件標記為刪除,然后在執(zhí)行QUIT命令時將其真正刪除。服務器返回:確定成功;-ERR錯誤。示例:c: dele1s: ok1deleted,3)更新狀態(tài)當客戶在操作狀態(tài)下發(fā)送QUIT命
10、令時,會話進入更新狀態(tài)。退出命令的語法形式:退出功能:關閉與服務器的連接。5.2使用同步傳輸控制協(xié)議接收電子郵件(續(xù)),服務器返回:確定;-呃.示例:c:退出s:好的,然后服務器自動斷開與客戶端的TCP連接。郵件接收和處理在這個例子中,只需要編寫客戶端程序,而不是服務器程序就可以正常運行。我們主要關心的是如何使用同步的TCP來發(fā)送和接收數(shù)據。部分代碼,5.2使用同步TCP接收電子郵件(續(xù)),建立連接int index=textbox user . text . index of();/大多數(shù)pop3服務器都以pop3作為前綴。所以這里只獲得這種服務器。/這個示例沒有以pop3作為前綴。未被處理
11、。字符串POP3服務器=POP3。textboxuser。text.substring(索引1);5.2通過使用同步TCP接收電子郵件(續(xù)),/與POP3服務器建立連接,并使用默認端口110 TCP客戶端=新的TCP客戶端(POP3服務器,110);ListBoxStatus。項目。添加(與pop3服務器的連接成功);/獲取Networkstream對象,通過已建立的連接發(fā)送和接收數(shù)據。network stream=TCP client . getstream();/獲取讀取對象,并查找字節(jié)順序標記,以防止顯示亂碼Sr=新流讀取器(網絡流);/獲取寫對象SW=新流寫入器(網絡流);/如果從服務
12、器返回(readdatafromserver ()=null),則讀取連接信息;5.2使用同步TCP接收電子郵件(續(xù)),/將用戶名發(fā)送到服務器,如果(將數(shù)據發(fā)送到服務器(用戶textbox user . text)=false)返回,則請求確認;如果(ReadDataFromServer()=null)返回;/如果返回(向服務器發(fā)送數(shù)據(passtextbox password . text)=false,則向服務器發(fā)送密碼并請求確認;如果(ReadDataFromServer()=null)返回;/向服務器發(fā)送STAT命令,請求獲取郵件總數(shù)和總字節(jié)數(shù),如果(發(fā)送數(shù)據到服務器(列表)=false)返回;如果(str=ReadDataRomserver()=null)返回;5.2使用同步傳輸控制協(xié)議接收電子郵件(續(xù)),從網絡流中讀取服務器發(fā)回的信息
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年工數(shù)聯(lián)合(雄安)大數(shù)據科技有限公司招聘備考題庫及一套參考答案詳解
- 2026年佛山市南海區(qū)桂城街道文翰第五幼兒園招聘儲備教師崗位備考題庫及一套參考答案詳解
- 2026年北京國科軍融創(chuàng)新科技有限公司招聘備考題庫及參考答案詳解一套
- 財務采購內控制度
- 完善環(huán)境監(jiān)測站內控制度
- 街道物業(yè)中心內控制度
- 國企重大投資內控制度
- 河南省內控制度
- 舉例說明內控制度
- 華為內控制度手冊
- 富順縣職教中心教學樓BC棟二職中遷建工程施工組織
- GB/T 24139-2009PVC涂覆織物防水布規(guī)范
- 2023年醫(yī)務科工作計劃-1
- 西湖龍井茶的等級標準
- 地基與基礎分項工程質量驗收記錄
- 一文多用作文課公開課課件
- CNC機加工作業(yè)指導書
- 水運工程施工課程設計指導書
- 驚恐障礙診治課件
- 中國藥典無菌、微生物限度和細菌內毒素檢查方法學驗證內容詳解
- 古詩之解讀與吟誦
評論
0/150
提交評論