2、采用客戶端與服務(wù)器對話工作模式,命令由ASCII碼表示.(所謂的應(yīng)用層協(xié)議)
3、TCP監(jiān)聽端口號:110.
4、POP3為常用的POP協(xié)議第三版,簡稱為POP3.

二、POP3協(xié)議的三種狀態(tài):

1、確認(rèn)狀態(tài):需要進(jìn)行身份驗(yàn)證,就是登陸郵箱賬號,登陸后轉(zhuǎn)為操作狀態(tài).
2、操作狀態(tài):查看郵件,郵件大小,數(shù)量.

3、更新狀態(tài):QUIT命令執(zhí)行后,將郵箱更新(刪除標(biāo)記為刪除的郵件),然后立即重返確認(rèn)狀態(tài)(需要重新身份驗(yàn)證).

【2】身份認(rèn)證方式:

一、常用的是郵箱賬號密鑰身份認(rèn)證.(這個(gè)不說了,就是登陸)

二、APOP命令認(rèn)證方式

1、為了避免發(fā)送[明文賬號密鑰]的問題,一些POP服務(wù)器采用APOP命令認(rèn)證方式.
2、使用APOP命令會在傳輸之前被加密.
3、只有少數(shù)郵箱軟件使用APOP命令(如qpopper).

認(rèn)證過程:初次與POP服務(wù)器連接時(shí),服務(wù)器發(fā)送一個(gè)ASCII碼問候(一串字符串,唯一的,與當(dāng)前時(shí)間有關(guān)),客戶端程序把純文本口令添加到ASCII碼問候字符串之后,然后計(jì)算出該字符串的MD5單出函數(shù)消息摘要,再將賬號與MD5消息摘要作為APOP命令的參數(shù)一起發(fā)送給服務(wù)器.

【3】POP命令與服務(wù)器響應(yīng):

一、需要注意:

1、發(fā)送一個(gè)POP命令,服務(wù)器都會發(fā)送回來一個(gè)回應(yīng),表示成功與失敗.
2、郵件編碼:如郵件總數(shù)為5封,那么郵件編碼就是1~5.
3、下面的全部為字符串.

二、常用命令:

USER USER 郵箱賬號rn 登錄認(rèn)證 PASS PASS 郵箱密鑰rn 登錄認(rèn)證,登錄成功后,返回郵件總數(shù)和總字節(jié)數(shù) APOP APOP 用戶名,MD5消息摘要rn APOP方式登錄認(rèn)證 STAT STATrn 郵件總數(shù)和總字節(jié)數(shù) UIDL UIDL 郵件編號rn
UIDLrn 方式一:獲取指定郵件唯一標(biāo)識符(每一個(gè)郵件都有一個(gè)唯一標(biāo)識符)
方式二:獲取所有郵件的唯一標(biāo)識符(每一個(gè)編碼,對應(yīng)它的ID) LIST LIST 郵件編號rn
LISTrn 方式一:獲取指定郵件的字節(jié)大小(注意:不包括”.rn”的長度)
方式二:獲取所有郵件的字節(jié)大小(每一個(gè)編碼,對應(yīng)它的大小) RETR RETR 郵件編號rn 下載指定郵件,服務(wù)器會發(fā)送兩個(gè)封包,先發(fā)送長度(注意:不包括”.rn”的長度)
再發(fā)送整個(gè)郵件 DELE DELE 郵件編號rn 將指定郵件標(biāo)記為刪除,當(dāng)退出連接或QUIT命令時(shí)刪除指定的郵件
被標(biāo)識刪除的郵件,不能再使用其他命令對其進(jìn)行訪問 RSET RSETrn 撤銷所有DELE命令 TOP TOP 郵件編號 前n行rn 下載郵件的前n行內(nèi)容,服務(wù)器會發(fā)送兩個(gè)封包,先發(fā)送長度
(注意:是總長度,而且不包括”.rn”的長度)
再發(fā)送包括信頭的前n行郵件內(nèi)容 NOOP NOOPrn 讓服務(wù)器返回一個(gè)無意義的響應(yīng),僅能在操作狀態(tài)中使用 QUIT QUITrn 返回到確認(rèn)狀態(tài)(需重新身份驗(yàn)證),并將標(biāo)記為刪除的郵件都刪除

三、服務(wù)器響應(yīng):

OK :命令執(zhí)行成功
-ERR :錯(cuò)誤

【4】編寫郵件接收程序: (163郵箱為例)

一、注意:

1、每個(gè)郵件使用的字符集編碼可能是不同(UTF-8/GB2312),而且可能被Base64編碼加密.需要解析成明文.

二、客戶端步驟:
1、連接POP服務(wù)器,監(jiān)聽端口為110
2、發(fā)送USER和PASS進(jìn)行明文身份驗(yàn)證,PASS用的密鑰一般不是密碼了,是開啟POP服務(wù)時(shí),提供給你的密鑰.
3、PASS發(fā)送后,會返回郵件總個(gè)數(shù)和總字節(jié)數(shù).
4、身份認(rèn)證成功后,即可使用那幾條指令.(如:RETR命令查看指定的郵件).
5、QUIT退出并刪除標(biāo)記為刪除的郵件.
6、由于代碼過多,不好再這里直接貼出來,我為使用POP3協(xié)議寫了一個(gè)C 類,可以很簡單的使用登錄郵箱,查看郵件,郵件大小,郵件ID,顯示郵件內(nèi)容等,有意學(xué)習(xí)登錄過程,解析郵件封包不同編碼的處理,可以下載學(xué)習(xí)一下:

POP3郵箱收信例子源碼下載地址:http://download.csdn.net/download/aaron133/10048490

【5】實(shí)驗(yàn)效果:

如果,你對上面的內(nèi)容還有疑問,推薦選擇西部數(shù)碼企業(yè)云郵箱!有專人協(xié)助您解答郵箱疑問。

西部數(shù)碼企業(yè)云郵箱,采用分布式集群架構(gòu),數(shù)據(jù)多份寫入,規(guī)避單點(diǎn)故障,全球智能中繼,更安全穩(wěn)定。企業(yè)郵箱無限空間,極速收發(fā),支持層級子文件夾,郵件撤回,日程微信通知、郵件監(jiān)管、自定義工作報(bào)告功能、郵件歸檔、SSL部署等幾十項(xiàng)功能。而且價(jià)格實(shí)惠,還可以免費(fèi)試用!

企業(yè)郵箱免費(fèi)試用入口:http://bingfeng168.cn/services/mail/

贊(0)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享網(wǎng)絡(luò)內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-62778877-8306;郵箱:fanjiao@west.cn。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明出處:西部數(shù)碼知識庫 » 網(wǎng)絡(luò)編程之POP3協(xié)議郵箱收信

登錄

找回密碼

注冊