使用telnet協(xié)議來(lái)收發(fā)郵件(SMTP和POP3)_第1頁(yè)
使用telnet協(xié)議來(lái)收發(fā)郵件(SMTP和POP3)_第2頁(yè)
使用telnet協(xié)議來(lái)收發(fā)郵件(SMTP和POP3)_第3頁(yè)
使用telnet協(xié)議來(lái)收發(fā)郵件(SMTP和POP3)_第4頁(yè)
使用telnet協(xié)議來(lái)收發(fā)郵件(SMTP和POP3)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第一部分郵件傳輸協(xié)議郵箱名:jspsave密碼:841013smtp(simple mail transfer protocol,簡(jiǎn)單郵件傳輸協(xié)議)定義了郵件客戶端軟件與smtp服務(wù)器之間,以及兩臺(tái)smtp服務(wù)器間的通信規(guī)則。smtp服務(wù)器之間的通信規(guī)則。smtp協(xié)議中一共定義了18條命令,發(fā)送一封電子郵件的過(guò)程通常只需要使用其中6條命令,表1中按照發(fā)送命令的先后順序列出了這6條命令,并描述了其語(yǔ)法格式及功能說(shuō)明,其中,代表空格,代表回車和換行。表1smtp命令及格式說(shuō)明ehloehlo命令是smtp郵件發(fā)送程序與smtp郵件接收程序建立連接后必須發(fā)送的第一條smtp命令。參數(shù)表示smtp郵件

2、發(fā)送者的主機(jī)名。ehlo命令用于替代傳統(tǒng)smtp協(xié)議中的helo命令auth如果smtp郵件接收程序需要smtp郵件發(fā)送程序進(jìn)行認(rèn)證時(shí),它會(huì)向smtp郵件發(fā)送程序提示它所采用的認(rèn)證方式,smtp郵件發(fā)送程序接著應(yīng)該使用這個(gè)命令回應(yīng)smtp郵件接收程序,參數(shù)表示回應(yīng)的認(rèn)證方式,通常是smtp郵件接收程序先前提示的認(rèn)證方式。mailfrom:此命令用于指定郵件發(fā)送者的郵箱地址,參數(shù)表示發(fā)件人的郵箱地址。reptto:此命令用于指定郵件接收者的郵箱地址,參數(shù)表示接收者的郵箱地址。如果郵件要發(fā)送多個(gè)接收者,那么應(yīng)使用多條reptto命令來(lái)分別指定每一個(gè)接收者的郵箱地址。data此命令用于表示smtp郵

3、件發(fā)送程序準(zhǔn)備開始傳送郵件內(nèi)容,在這個(gè)命令后面發(fā)送的所有數(shù)據(jù)都將被當(dāng)做郵件內(nèi)容,直至遇到“.”標(biāo)志符,則表示郵件內(nèi)容結(jié)束。quit此命令表示要結(jié)束郵件發(fā)送過(guò)程,smtp郵件接收程序接收到此命令后,將關(guān)閉與smtp郵件發(fā)送程序的網(wǎng)絡(luò)連接。對(duì)于smtp郵件發(fā)送程序發(fā)送的每一條命令,smtp郵件程序接收程序都將回應(yīng)一條響應(yīng)信息。每條響應(yīng)信息都以一個(gè)響應(yīng)狀態(tài)碼開發(fā)如下所示:250 ok響應(yīng)狀態(tài)嗎用于表示smtp服務(wù)器對(duì)請(qǐng)求命令的處理結(jié)果和狀態(tài),它是一個(gè)三位的十進(jìn)制數(shù)。響應(yīng)狀態(tài)碼的最高位數(shù)字代表了不同的分類,當(dāng)其為2時(shí)表示命令執(zhí)行成功,為5時(shí)表示命令執(zhí)行失敗。為3時(shí)表示命令沒(méi)有完成。動(dòng)手實(shí)踐: 借助te

4、lnet程序手工發(fā)送郵件1) 在sina()中申請(qǐng)兩個(gè)電子郵件地址,筆者在使用的兩個(gè)郵箱分別為jspdevelop和fpwjp,第一個(gè)郵箱的登錄為:javamail,讀者應(yīng)注冊(cè)自已的電子郵箱進(jìn)行實(shí)驗(yàn)。2) 要給某個(gè)smtp服務(wù)器發(fā)送郵件,首先要獲知該smtp服務(wù)器的主機(jī)名,其中新浪的smtp服務(wù)器主機(jī)名為 25。3) 當(dāng)smtp服務(wù)器要對(duì)郵件客戶端軟件進(jìn)行用戶身份驗(yàn)證時(shí),郵件客戶端軟件需要對(duì)用戶名和密碼進(jìn)行base64編碼后再傳遞給smtp服務(wù)器,因此要編寫一個(gè)能對(duì)用戶名和密碼進(jìn)行base64編碼的工具程序。下面是用java語(yǔ)言編寫的一個(gè)對(duì)用戶名和密碼分別進(jìn)行base64編碼的工具程序。例:b

5、ase64util.javaimport java.io.bufferedreader;import java.io.ioexception;import java.io.inputstreamreader;import sun.misc.base64encoder;class base64util public static void main(string args) throws ioexceptionsystem.out.println(請(qǐng)輸入用戶名:);bufferedreader in=new bufferedreader(new inputstreamreader(system.

6、in);string username=in.readline();system.out.print(請(qǐng)輸入密碼:);string password=in.readline();base64encoder encoder=new base64encoder();system.out.println(編碼后的用戶名為:+encoder.encode(username.getbytes();system.out.println(編碼后的密碼為:+encoder.encode(password.getbytes();啟動(dòng)windows命令行窗口,編譯并運(yùn)行這個(gè)java程序,接著根據(jù)程序的提示輸入已注

7、冊(cè)的sina郵箱的用戶名和密碼。如圖1-1所示。圖1-14) 重新開啟一個(gè)windows命令行窗口,使用telnet命令連接到sina的smtp服務(wù)器的25號(hào)端口,即在命令行窗口中輸入如下一行內(nèi)容。telnet 25該命令的正常執(zhí)行結(jié)果如圖1-2所示。圖1-2圖1-2中顯示的內(nèi)容是服務(wù)器返回給客戶端的響應(yīng)信息,其中包含三部分內(nèi)容,各部分的意義如下:l 220是郵件服務(wù)器返回給客戶的響應(yīng)狀態(tài)碼,它表示郵件服務(wù)器準(zhǔn)備就緒(service ready)。l 表示當(dāng)前進(jìn)行的響應(yīng)的郵件服務(wù)器的主機(jī)名。l esmtp表示當(dāng)前郵件服務(wù)器支持?jǐn)U展smtp協(xié)議。5) smtp發(fā)送者程序與smtp接收者程序建立連

8、接后,接著應(yīng)該使用ehlo命令向smtp接收程序發(fā)送問(wèn)候信息。由于當(dāng)前運(yùn)行telnet程序的計(jì)算機(jī)根本就沒(méi)有在internet上注冊(cè)的主機(jī)名,所以這里隨便使用一個(gè)名稱(jspdevelop)來(lái)表示ehlo命令中主機(jī)名。發(fā)送ehlo命令后,郵件服務(wù)器返回如圖1-3所示的結(jié)果。圖1-36) 在圖1-3中接著輸入如下一行命令:auth loginsmtp服務(wù)器返回如圖1-4所示的響應(yīng)信息。圖1-4smtp服務(wù)器返回的響應(yīng)狀態(tài)碼為334,它表示smtp服務(wù)器正在等待客戶端輸入認(rèn)證信息。這時(shí)將命令行窗口中,選中經(jīng)過(guò)base64編碼后得到的用戶名,復(fù)制過(guò)來(lái),然后將base64編碼的密碼復(fù)制過(guò)來(lái),完成認(rèn)證后

9、的結(jié)果如圖1-5所示。圖1-57) 接著輸入mail from命令,將郵件發(fā)送者的地址填寫為在sina上注冊(cè)的郵箱地址jspdevelop,執(zhí)行效果如圖1-6所示。mail from:郵件服務(wù)器返回一個(gè)250的響應(yīng)狀態(tài)碼,代表當(dāng)前操作執(zhí)行成功。圖1-6注意:smtp協(xié)議不要求smtp郵件接收服務(wù)器對(duì)mail from命令后面輸入的郵件地址進(jìn)行驗(yàn)證,也就是說(shuō),mail from命令后面的郵件地址可以不是發(fā)件人的真實(shí)郵箱地址,而可以是其他人的郵箱地址。8) 接著輸入rept to命令,將郵件接收者的地址填寫收件的郵箱地址fpwjp,執(zhí)行效果如圖1-7所示:rept to:圖1-7郵件服務(wù)器返回一個(gè)

10、250的響應(yīng)狀態(tài)碼,代表當(dāng)前操作執(zhí)行成功。smtp協(xié)議允許在一個(gè)連接通道中執(zhí)行多條rept to命令,每一條命令分別指定一個(gè)郵件接收者,這樣就可以把一封郵件同時(shí)發(fā)送給多個(gè)發(fā)收件人。如果圖9) 接著輸入data命令,表示后面將傳送郵件內(nèi)容。郵件服務(wù)器返回354的響應(yīng)狀態(tài)碼,并等待客戶端輸入郵件內(nèi)容。接著輸入郵件內(nèi)容。最后在單獨(dú)的一行上輸入一個(gè)“.”作為郵件內(nèi)容的結(jié)束標(biāo)記,如圖1-8所示。圖1-810) 接著輸入quit命令,結(jié)束整個(gè)郵件的傳輸過(guò)程。smtp服務(wù)器接收到客戶端發(fā)送的quit命令后,將斷開與客戶端的網(wǎng)絡(luò)連接,telnet程序結(jié)束運(yùn)行,windows命令行窗口退回到dos提示符狀態(tài)。1

11、1) 登錄到fpwjp郵件中來(lái)查看剛才發(fā)送的郵件。使用outlook express收取這封郵件的效果如圖1-9所示。圖1-9第二部分pop3協(xié)議pop3(post office protocol)協(xié)議定義了郵件客戶端程序與pop3服務(wù)器進(jìn)行通信。pop3協(xié)議,它采用的網(wǎng)絡(luò)監(jiān)聽端口號(hào)默認(rèn)為110。pop3協(xié)議共定義了12條pop3命令,郵件客戶端程序通過(guò)這些命令檢索和獲取用戶電子郵箱中的郵件信息。表2中列舉出了這12條pop3命令及其說(shuō)明,其中,代表空格,代表回車和換行。表2命令及其使用格式說(shuō)明 userusernameuser命令是pop3客戶端程序與pop3郵件服務(wù)器建立連接通常發(fā)送的第一

12、條命令,參數(shù)username表示收件人賬戶名稱。passpasswordpass命令是在user命令成功通過(guò)后,pop3客戶端程序接著發(fā)送的命令,它用于傳遞賬戶的密碼,參數(shù)password表示賬戶的密碼。apopname.digestapop命令用于替代user和pass命令,它以md5數(shù)字摘要的形式向pop3郵件服務(wù)器提交賬戶密碼。statstat命令用于查詢郵箱中的統(tǒng)計(jì)信息,例如,郵箱中有郵件數(shù)和郵件占用的字節(jié)大小等。uidlmsg#uidl命令用于查詢某封郵件的唯一標(biāo)志符,參數(shù)msg#表示郵件的序號(hào),是一個(gè)1開始編號(hào)的數(shù)字。listmsg#list命令用于列出郵箱中郵件信息,參數(shù)msg#

13、是一個(gè)可選參數(shù),表示郵件的序號(hào)。當(dāng)不指定參數(shù)時(shí),pop3服務(wù)器列出郵箱中所有的郵件信息,當(dāng)指定參數(shù)msg#時(shí),pop3服務(wù)器只返回該號(hào)對(duì)應(yīng)的郵件的信息。rertmsg#list命令用于獲取某封郵件的內(nèi)容,參數(shù)msg#表示郵件的序號(hào)。delemsg#dele命令用于在某封郵件上設(shè)置刪除標(biāo)記,參數(shù)msg#表示郵件的序號(hào)。pop3服務(wù)器執(zhí)行dele命令時(shí),只是為郵件設(shè)置了刪除標(biāo)記,并沒(méi)有真正把郵件刪除掉,只有pop3客戶端程序發(fā)出quit命令后,pop3服務(wù)器才會(huì)真正刪除所有設(shè)置了刪除標(biāo)記的郵件rsetrset命令用于清除所有郵件的刪除標(biāo)記topmsg#ntop命令用于獲取某封郵件的郵件頭和郵件體中

14、前n行內(nèi)容,參數(shù)msg#表示郵件的序號(hào),參數(shù)n表示要返回郵件的前幾行內(nèi)容。使用這條命令以提高web mail系統(tǒng)(通過(guò)web站點(diǎn)上收發(fā)郵件)中的郵件列表顯示的處理效率,因?yàn)檫@種情況下不需要獲取每封郵件的完整內(nèi)容,而是僅僅需要獲取每封郵件的郵件頭信息。noopnoop命令用于檢測(cè)pop3客戶端與pop3服務(wù)器的連接情況。quitquit命令表示要結(jié)束郵件接收過(guò)程,pop3服務(wù)器接收到此命令后,將刪除所有設(shè)置了刪除標(biāo)記的郵件,并關(guān)閉與pop3客戶端程序的網(wǎng)絡(luò)連接。對(duì)于pop3客戶端程序發(fā)送的每一條pop3命令,pop3服務(wù)器都將回應(yīng)一些響應(yīng)信息。響應(yīng)信息由一行或多行文本信息組成,其中的第一行始終以

15、“+ok”或“-err”開頭,它們分別表示當(dāng)前執(zhí)行成功或執(zhí)行失敗。動(dòng)手實(shí)踐:用telnet程序分析郵件的接收過(guò)程(1) 首先要選擇一個(gè)已知用戶名和密碼的郵箱賬戶作為實(shí)驗(yàn)對(duì)象,并且要知道管理該郵箱賬戶的pop3服務(wù)器主機(jī)名。()(2) 啟動(dòng)window的命令行窗口,使用telnet程序連接的110號(hào)端口,即在命令行窗口中輸入如下一行內(nèi)容。telnet 110該命令的正常執(zhí)地結(jié)果如圖2-1所示。圖2-1(3) 在圖2-2所示的窗口中接著輸入user命令和郵箱賬戶的用戶名,如圖2-2所示。uer fpwjp(4) 接著輸入pass命令和郵箱賬戶的密碼,如圖2-3所示。pass xxxx(5) 接著在圖2-2所示的窗口中輸入stat命令和list命令,分別查詢郵箱賬戶中郵件的統(tǒng)計(jì)信息和郵件的列表信息,如圖2-3所示:圖2-3(6) 接著使用retr命令讀取圖2-2中的list命令所返回的那些編號(hào)對(duì)應(yīng)的郵件內(nèi)容,例如輸入retr命令并在該命令后指定數(shù)字11即可讀取到第11封郵件的內(nèi)容。如圖2-4所示。retr 11圖2-4(7) 接著輸入dele命

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論