C#POP3协议实现SSL验证登陆GMAIL
最近在折腾POP3协议,登陆pop.qq.com和pop.163.com没有什么问题,于是就想着登陆pop.gmail.com,结果失败了。经查,发现gmail的pop3端口不是110,而是995。于是改了端口,但是登陆还是失败了。后面查了资料,发现原来是gmail采用的是ssl验证,不能直接连接。那C#要如何实现SSL连接呢?查了很多资料后,发现可以通过SslStream来实现。
下面是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相关推荐
- 用POP3获取邮箱邮件内容,支持SSL验证登陆(完整C#源码)
延续上一篇用POP3获取邮箱邮件内容(C#源码) 上一篇中提到一个问题,网上一般流传的是非SSL验证登陆的,适用163之类的邮箱,但是QQ邮箱一般都是登陆不上的.这次我来提供一个支持SSL验证登陆的方 ...
- python连接wws协议和http协议时ssl验证失败
用python连接wss代码如下: from websocket import create_connection url = "wss://api.com" ws = creat ...
- 一个基于POP3协议进行邮箱账号验证的类
最近老陈要针对企业邮箱做一些开发,以对接企业OA神马的,但企业邮箱唯独没有开放账号密码验证功能,很恼火!不得已,翻出早些年的Asp代码改编成了C#类,实现了一个C#下的通过POP3协议进行邮箱账号验证 ...
- tcp/ip协议详解——HTTP协议和POP3协议SSL加密协议
http协议有两大特点: 1.哑服务:在链接进行之后,服务器不提示任何信息,所有命令需要客户端发出,服务器做出反应. 2.瞬时协议:客户端对服务器发出命令之后,服务器立刻做出反应,传输超文本,tcp链 ...
- Exchange Server 2007客户端访问协议部署SSL
安全套接字层是用来加密客户端和服务器之间通讯的一种方法.Microsoft Exchange Server 2007 能够为所有的客户端访问协议部署SSL.这些协议包括Microsoft Exchan ...
- java smtp.126.com_Java Mail---SMTP、POP3协议-DOS下手动收发邮件演示过程
转载请注明出处: http://blog.csdn.net/qq_26525215 本文源自 E-Mail协议简介: 邮件服务器,按照提供的服务类型,可以分为发送邮件的服务器我接收邮件的服务器. 发送 ...
- PHP使用POP3协议类收取邮件
POP3协议类收取邮件 此测试代码需要到服务器邮箱开通pop协议,获取客户端授权密码(详见163内部获取): <?php//此处查看链接状态header("Content-type:t ...
- python pop3_PYTHON学习:使用POP3协议下载邮件
以前使用电脑端访问邮箱时,知道有POP3.SMTP协议,随首技术的发展,最近又有了很多种选择,尤其是手机端,看到了每多种连接方式,比如IMAP.EXCHANGE方式,邮件还带同步的,比如电脑端改变了邮 ...
- Centos7+Open***使用用户及密码验证登陆
Centos7+Open***使用用户及密码验证登陆 我们上一篇文章介绍了Centos7+Open***使用证书验证登陆介绍,今天我们介绍Centos7+Open***使用用户及密码登陆验证,具体就补 ...
- python:poplib --- POP3 协议客户端
python:poplib --- POP3 协议客户端 简介 POP3 对象 POP3 示例 简介 本模块定义了一个 POP3 类,该类封装了到 POP3 服务器的连接过程,并实现了 RFC 193 ...
最新文章
- Python零基础自学会有哪些弊端
- Linux简介(一)
- python简单代码画曲线图教程-Python绘制折线图和散点图的详细方法介绍(代码示例)...
- centos连接jupyter方法并安装jupytext插件
- mysql中find_in_set_mysql中find_in_set()函数的使用详解
- MySQL排序优化(两次排序和单次排序)
- distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse(‘setupto
- 2016去哪儿编程题:字符替换
- Spark-on-YARN
- cas内外网同时访问_科普:CAS 和 ABA
- python图像分类需要什么环境_Python学习简单图像识别分类,python
- Visual Studio 2015编译wxWidgets
- 团队项目需求分析——NABCD
- Error: Could not open connection to jdbc:hive2://master:10000: java.net.ConnectException: Connection
- 平板边界层内的流速分布实验
- 多目标布谷鸟(MOCS)优化算法附Matlab代码
- 3个小时学会wordpress模板制作
- echarts 好看的柱形图
- 关于ELF格式文件里面的调试信息解读
- iOS UIFont 字体大全
热门文章
- 易腐食品行业调研报告 - 市场现状分析与发展前景预测
- 谷歌邮箱lmap服务器填什么_GMAIL邮箱IMAP设置
- 金域医学与华为云联合,AI辅助宫颈癌筛查方案获得阶段性突破
- 银河麒麟桌面系统V10解决微信无法登录
- python中、常见的结构化数据不包括_数据分析的主要内容仍是结构化计算_数据分析师...
- [学习日志]UI如何与数据绑定?
- python大神的成长之路普通话三分钟_我的成长之路普通话考试讲话三分钟范文
- php怎么查看当前地址,php二分法在IP地址查询中的应用
- 国外LEAD赚钱提现到WMZ,附赚钱项目
- LeetCode 罗马数字