C#POP3协议实现SSL验证登陆GMAIL
2013-07-30 18:22
357 查看
最近在折腾POP3协议,登陆pop.qq.com和pop.163.com没有什么问题,于是就想着登陆pop.gmail.com,结果失败了。经查,发现gmail的pop3端口不是110,而是995。于是改了端口,但是登陆还是失败了。后面查了资料,发现原来是gmail采用的是ssl验证,不能直接连接。那C#要如何实现SSL连接呢?查了很多资料后,发现可以通过SslStream来实现。
下面是SslStream实现连接的代码
其中pop3StreamReader_ 是用来接收响应的数据的。
那SSL连接成功后,要如何发送数据呢?可以利用SslStream的write方法。下面是发送数据的实现
那发了数据之后,又要如何接收呢?可以利用pop3StreamReader_的ReadLine方法。
下面是接收数据的实现
下面是对于上面方法的一个简单调用
在实际应用时,建议对SSL连接增加一个disconnect的断开连接函数,以方便管理。
下面是SslStream实现连接的代码
private StreamReader pop3StreamReader_ = null; private SslStream pop3Stream_ = null; public void connect(string host, int port) { try { TcpClient popServer = new TcpClient(host, port); pop3Stream_ = new SslStream(popServer.GetStream(), false); pop3Stream_.AuthenticateAsClient(host); isConnected_pro = true; pop3StreamReader_ = new StreamReader(pop3Stream_, encoding_pro); } catch (System.Exception ex) { exception_pro = ex; isConnected_pro = false; } }
其中pop3StreamReader_ 是用来接收响应的数据的。
那SSL连接成功后,要如何发送数据呢?可以利用SslStream的write方法。下面是发送数据的实现
public bool send(string sendStr) { try { exception_pro = null; pop3Stream_.Write(encoding_pro.GetBytes(sendStr)); return true; } catch (System.Exception ex) { exception_pro = ex; return false; } }
那发了数据之后,又要如何接收呢?可以利用pop3StreamReader_的ReadLine方法。
下面是接收数据的实现
/// <summary> /// Receive one line data. /// </summary> /// <returns></returns> public string receive() { string receiveStr = ""; receiveStr = pop3StreamReader_.ReadLine(); return receiveStr; }
下面是对于上面方法的一个简单调用
private void buttonSsl_Click(object sender, EventArgs e) { SslSp sslSp = new SslSp(); sslSp.connect("pop.gmail.com", 995); string receiveStr = sslSp.receive(); MessageBox.Show(receiveStr); sslSp.send("user mysuer\r\n"); receiveStr = sslSp.receive(); MessageBox.Show(receiveStr); sslSp.send("pass mypassword\r\n"); receiveStr = sslSp.receive(); MessageBox.Show(receiveStr); }
在实际应用时,建议对SSL连接增加一个disconnect的断开连接函数,以方便管理。
相关文章推荐
- C#POP3协议实现SSL验证登陆GMAIL
- C#实现邮箱搬家功能(1):Pop3协议介绍
- 用C#实现HTTP协议下的多线程文件传输
- c# 实现网页上用户自动登陆|asp.net 模拟网站登录
- [转]c#登陆实现验证码-图形编程
- QT版的POP3协议实现
- C#实现http协议下的多线程文件传输
- 【转】C# 实现http协议GET、POST请求
- C#用Jamil类库通过pop3协议收邮件
- 验证码识别实践2:自己动手C#实现,对CSDN资源上传验证码识别率100%,久游网登陆90%
- 用JavaMail实现POP3协议
- Smtp协议与Pop3协议的简单实现
- 用C#实现HTTP协议下的多线程文件传输
- 用 C# 实现 HTTP 协议多线程下载文件
- c#实现gmail邮件发送
- [导入]C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- 用C#实现用免费smtp服务器(GMail)发邮件
- NET(C#)接入Dubbo服务,Zookeeper作为Dubbo服务的注册中心,实现thrift协议访问接口(1)
- 使用C#发送Http 请求实现模拟登陆(以博客园为例)
- 基于WebClient实现Http协议的Post与Get对网站进行模拟登陆和浏览实例