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