可是......大家都很忙.......长时间不用输入密码等一些关键性信息难免忘记,
那...还可以去网站上找回密码吖....嗯..是个好办法....
我这里还有个方法.即使不用上网也可以找会密码哈
我们开始吧```````
发送邮件使用的是POP协议.虽然邮件的内容经过了编码,可是在开始的连接服务器并进行身份验证是.用户名和密码仍然是明文发送的.所以.我们要做的就是建立一个"冒牌"的POP服务器,来欺骗OUTLOOK,或者是FOXMAIL等,方法是
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace POPserver
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
simulatePOP();
}
/// <summary>
/// 伪装POP
/// </summary>
static public void simulatePOP()
{
//创建一个终结点
IPEndPoint ipep=new IPEndPoint(IPAddress.Parse("127.0.0.1"),110);
//在本地计算机上创建一个监听器
TcpListener tcpS=new TcpListener(ipep);
tcpS.Start();
//等待客户端连接
TcpClient tcpC=tcpS.AcceptTcpClient();
//和客户端交互
NetworkStream ns=tcpC.GetStream();
//向客户端发送欢迎消息
byte[] outbytes=Encoding.ASCII.GetBytes("+OK Welcome
simulatePOP"+Environment.NewLine);
ns.Write(outbytes,0,outbytes.Length);
//客户端接受后输入用户名
byte[] userBytes=new byte[1024];
ns.Read(userBytes,0,userBytes.Length);
//服务器回应(回复OK 客户端才会发送密码)
outbytes=Encoding.ASCII.GetBytes("+OK"+Environment.NewLine);
ns.Write(outbytes,0,outbytes.Length);
//客户端发送密码
byte[] pwd=new byte[1024];
ns.Read(pwd,0,pwd.Length);
//打印
Console.WriteLine("用户名:"+Encoding.ASCII.GetString(userBytes));
Console.WriteLine("密码:"+Encoding.ASCII.GetString(pwd));
ns.Close();
tcpC.Close();
tcpS.Stop();
}
}
}
.net 1.1中编译通过.使用正常.
使用时,在邮件收发软件中.把pop服务器地址改为127.0.0.1即可
^_^ ^_^ ^_^
欢迎指导``````嗯```NONO```期待指导```````````