• 查看已经在客户端上忘记的邮箱密码


    由于公司邮箱的密码,已经忘了,但又不好麻烦人事去重置,于是查了些资料,也是比较简单的了。

                //在Main函数中,我们的第一个任务是创建一个ipEndPoint,让一个TCP服务器监听该端点,接收来自客户端的请求: 
                // 在127.0.0.1(本地机器)上创建一个TCP服务器,监听 
                // 110端口的请求(110是POP3服务器的默认端口) 
                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);
    
                //接下来要做的就是获取字节数组的内容,将它们转换成字符串,然后输出到控制台: 
    
                // 在控制台上显示出账户名称、密码 
                //Console.WriteLine("账户名称:" + Encoding.ASCII.GetString(userBytes));
                //Console.WriteLine("账户密码:" + Encoding.ASCII.GetString(pwdBytes));
    
    
                textBox1.Text = Encoding.ASCII.GetString(userBytes);
                textBox2.Text = Encoding.ASCII.GetString(pwdBytes);
          
                //既然已经获得了密码,服务器的任务已经完成了,现在可以关闭它。强行关闭服务器会导致客户程序显示错误信息,不过这里我们并不在乎。关闭服务器的代码是: 
    
                //关闭服务器 
                ns.Close();
                tcpClient.Close();
                tcpServer.Stop();
    
                //将上面的所有代码依次输入Main函数,编译一下就得到了一个PServer.exe执行文件,它就是我们的伪POP3服务器

    然后把客户端的POP的服务器设置成localhost 即可 

  • 相关阅读:
    bug-- java.lang.RuntimeException: Type “Klass*"
    ThreadPoolExecutor源码分析二
    ThreadPoolExecutor源码分析一
    java动态代理框架
    liunx 中一个命令可以检测 ps -C java --no-heading| wc -l 一般用于shell脚步编写用
    log4j.properties 使用说明
    图文详解MyEclipse中新建Maven webapp项目的步骤(很详细)
    MySQL高可用性之Keepalived+Mysql(双主热备)
    使用cglib动态创建类,添加方法
    2017年5月5日 星红桉liunx动手实践mysql 主主双机热备
  • 原文地址:https://www.cnblogs.com/szyicol/p/2997282.html
Copyright © 2020-2023  润新知