C#構(gòu)造POP3服務(wù)器概述
在向大家詳細(xì)介紹C#構(gòu)造POP3服務(wù)器之前,首先讓大家了解下Outlook本地存儲(chǔ)的密碼,然后全面介紹C#構(gòu)造POP3服務(wù)器。
許多人習(xí)慣于讓Outlook記住密碼,收郵件時(shí)便不必每次都輸入郵箱密碼,一切讓Outlook代勞。但時(shí)間一長(zhǎng),馬虎的人會(huì)把自己的郵箱密碼忘記,這樣就無(wú)法重新設(shè)置或者登錄Web界面收取郵件了。Outlook絕對(duì)不會(huì)告訴你郵箱的密碼是多少,即使你找到了注冊(cè)表中Outlook存儲(chǔ)帳戶和密碼信息的鍵值,由于密碼信息都是加密存儲(chǔ)的,你還是無(wú)法提取密碼。我們的對(duì)策就是針對(duì)郵箱服務(wù)中安全機(jī)制最薄弱的環(huán)節(jié)采取行動(dòng)……
眾所周知,POP3協(xié)議本質(zhì)上是一種明文協(xié)議,也就是說(shuō),雖然Outlook本地存儲(chǔ)的密碼是加密的,但當(dāng)它連接到POP3服務(wù)器準(zhǔn)備收取郵件時(shí),必須以明文的形式提供密碼。因此,只要我們開(kāi)發(fā)一個(gè)POP3服務(wù)器(不必是功能完善的POP3服務(wù)器,只要騙過(guò)Outlook即可),讓Outlook從該服務(wù)器收取郵件,Outlook就會(huì)乖乖地交出加密得嚴(yán)嚴(yán)實(shí)實(shí)的密碼。實(shí)際上,這種辦法不僅適用于Outlook,而且適用于所有使用POP3的郵件客戶程序,如Outlook Express、Foxmail等。
C#構(gòu)造POP3服務(wù)器
下面我們要用VS.NET 2003和C#開(kāi)發(fā)一個(gè)“偽”POP3服務(wù)器——之所以說(shuō)它“偽”,那是因?yàn)樗挥袠O其有限的功能,只進(jìn)行到騙出郵箱密碼就停止。
啟動(dòng)VS.NET 2003,新建一個(gè)C#項(xiàng)目,項(xiàng)目的模板選擇“控制臺(tái)應(yīng)用程序”,將項(xiàng)目命名為PServer,點(diǎn)擊“確定”創(chuàng)建項(xiàng)目。
新建C#項(xiàng)目
VS.NET自動(dòng)創(chuàng)建PServer名稱空間、 Class1類和Main函數(shù)骨架。在Class1.cs文件的頂端using System語(yǔ)句之后加入下列三個(gè)語(yǔ)句:
- using System.Net;
- using System.Net.Sockets;
- using System.Text;
接下來(lái)的任務(wù)就是修改Main函數(shù),使它作為一個(gè)POP3服務(wù)器監(jiān)聽(tīng)來(lái)自O(shè)utlook的請(qǐng)求,當(dāng)Outlook嘗試連接這個(gè)PServer服務(wù)器時(shí),根據(jù)POP3協(xié)議的要求,我們確認(rèn)一下Outlook用戶提供的帳戶名并要求提供密碼,Outlook提供密碼后,我們?cè)诳刂婆_(tái)上輸出密碼,這樣就算完成了C#構(gòu)造POP3服務(wù)器!
【編輯推薦】