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