C#获取邮件客户端保存的邮箱密码
生活随笔
收集整理的這篇文章主要介紹了
C#获取邮件客户端保存的邮箱密码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有時候郵件客戶端記錄了郵箱密碼,但自己卻忘記了,此時可以使用C#建立一個臨時的“郵件服務器”,截取密碼:
IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 110);TcpListener tcpServer = new TcpListener(ipEndPoint);tcpServer.Start();// 等待來自POP3客戶程序(如Outlook)的連接請求TcpClient tcpClient = tcpServer.AcceptTcpClient();//當一個POP3客戶程序連接該服務器時,服務器必須按照POP3協議的要求對客戶程序作出應答。根據POP3協議RFC 1939規范的定義,服務器首先要做的是返回一個歡迎信息:// 向客戶程序返回歡迎信息NetworkStream ns = tcpClient.GetStream();byte[] outbytes = Encoding.ASCII.GetBytes("+OK Welcome" + Environment.NewLine);ns.Write(outbytes, 0, outbytes.Length);//客戶程序接收到歡迎信息后,同樣也會按照POP3協議的要求發送帳戶名稱。我們把這個帳戶名稱記錄下來以便以后使用,代碼如下:// 接收和記錄郵箱帳戶名稱byte[] userBytes = new byte[255];ns.Read(userBytes, 0, userBytes.Length);//收到帳戶名稱信息后,我們要告訴Outlook說這個名稱沒有問題,客戶程序一收到這個信息就會發送密碼,然后我們再把密碼也記錄下來。實現代碼是:// 告訴客戶程序帳戶名稱正確outbytes = Encoding.ASCII.GetBytes("+OK" + Environment.NewLine);ns.Write(outbytes, 0, outbytes.Length);// 接收和記錄帳戶密碼byte[] pwdBytes = new byte[255];ns.Read(pwdBytes, 0, pwdBytes.Length);//接下來要做的就是獲取字節數組的內容,將它們轉換成字符串,然后輸出到控制臺:// 在控制臺上顯示出帳戶名稱、密碼textBox1.Text = string.Format("帳戶名稱:{0}", Encoding.ASCII.GetString(userBytes));textBox1.Text += string.Format("帳戶密碼:{0}", Encoding.ASCII.GetString(pwdBytes));//既然已經獲得了密碼,服務器的任務已經完成了,現在可以關閉它。強行關閉服務器會導致客戶程序顯示錯誤信息,不過這里我們并不在乎。關閉服務器的代碼是:// 關閉服務器ns.Close();tcpClient.Close();tcpServer.Stop();MessageBox.Show("ok");轉載于:https://www.cnblogs.com/apollokk/p/6713844.html
總結
以上是生活随笔為你收集整理的C#获取邮件客户端保存的邮箱密码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NSArray和NSMutableArr
- 下一篇: asp.net MVC 路由机制 Rou