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