最近在折腾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相关推荐

  1. 用POP3获取邮箱邮件内容,支持SSL验证登陆(完整C#源码)

    延续上一篇用POP3获取邮箱邮件内容(C#源码) 上一篇中提到一个问题,网上一般流传的是非SSL验证登陆的,适用163之类的邮箱,但是QQ邮箱一般都是登陆不上的.这次我来提供一个支持SSL验证登陆的方 ...

  2. python连接wws协议和http协议时ssl验证失败

    用python连接wss代码如下: from websocket import create_connection url = "wss://api.com" ws = creat ...

  3. 一个基于POP3协议进行邮箱账号验证的类

    最近老陈要针对企业邮箱做一些开发,以对接企业OA神马的,但企业邮箱唯独没有开放账号密码验证功能,很恼火!不得已,翻出早些年的Asp代码改编成了C#类,实现了一个C#下的通过POP3协议进行邮箱账号验证 ...

  4. tcp/ip协议详解——HTTP协议和POP3协议SSL加密协议

    http协议有两大特点: 1.哑服务:在链接进行之后,服务器不提示任何信息,所有命令需要客户端发出,服务器做出反应. 2.瞬时协议:客户端对服务器发出命令之后,服务器立刻做出反应,传输超文本,tcp链 ...

  5. Exchange Server 2007客户端访问协议部署SSL

    安全套接字层是用来加密客户端和服务器之间通讯的一种方法.Microsoft Exchange Server 2007 能够为所有的客户端访问协议部署SSL.这些协议包括Microsoft Exchan ...

  6. java smtp.126.com_Java Mail---SMTP、POP3协议-DOS下手动收发邮件演示过程

    转载请注明出处: http://blog.csdn.net/qq_26525215 本文源自 E-Mail协议简介: 邮件服务器,按照提供的服务类型,可以分为发送邮件的服务器我接收邮件的服务器. 发送 ...

  7. PHP使用POP3协议类收取邮件

    POP3协议类收取邮件 此测试代码需要到服务器邮箱开通pop协议,获取客户端授权密码(详见163内部获取): <?php//此处查看链接状态header("Content-type:t ...

  8. python pop3_PYTHON学习:使用POP3协议下载邮件

    以前使用电脑端访问邮箱时,知道有POP3.SMTP协议,随首技术的发展,最近又有了很多种选择,尤其是手机端,看到了每多种连接方式,比如IMAP.EXCHANGE方式,邮件还带同步的,比如电脑端改变了邮 ...

  9. Centos7+Open***使用用户及密码验证登陆

    Centos7+Open***使用用户及密码验证登陆 我们上一篇文章介绍了Centos7+Open***使用证书验证登陆介绍,今天我们介绍Centos7+Open***使用用户及密码登陆验证,具体就补 ...

  10. python:poplib --- POP3 协议客户端

    python:poplib --- POP3 协议客户端 简介 POP3 对象 POP3 示例 简介 本模块定义了一个 POP3 类,该类封装了到 POP3 服务器的连接过程,并实现了 RFC 193 ...

最新文章

  1. Python零基础自学会有哪些弊端
  2. Linux简介(一)
  3. python简单代码画曲线图教程-Python绘制折线图和散点图的详细方法介绍(代码示例)...
  4. centos连接jupyter方法并安装jupytext插件
  5. mysql中find_in_set_mysql中find_in_set()函数的使用详解
  6. MySQL排序优化(两次排序和单次排序)
  7. distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse(‘setupto
  8. 2016去哪儿编程题:字符替换
  9. Spark-on-YARN
  10. cas内外网同时访问_科普:CAS 和 ABA
  11. python图像分类需要什么环境_Python学习简单图像识别分类,python
  12. Visual Studio 2015编译wxWidgets
  13. 团队项目需求分析——NABCD
  14. Error: Could not open connection to jdbc:hive2://master:10000: java.net.ConnectException: Connection
  15. 平板边界层内的流速分布实验
  16. 多目标布谷鸟(MOCS)优化算法附Matlab代码
  17. 3个小时学会wordpress模板制作
  18. echarts 好看的柱形图
  19. 关于ELF格式文件里面的调试信息解读
  20. iOS UIFont 字体大全

热门文章

  1. 易腐食品行业调研报告 - 市场现状分析与发展前景预测
  2. 谷歌邮箱lmap服务器填什么_GMAIL邮箱IMAP设置
  3. 金域医学与华为云联合,AI辅助宫颈癌筛查方案获得阶段性突破
  4. 银河麒麟桌面系统V10解决微信无法登录
  5. python中、常见的结构化数据不包括_数据分析的主要内容仍是结构化计算_数据分析师...
  6. [学习日志]UI如何与数据绑定?
  7. python大神的成长之路普通话三分钟_我的成长之路普通话考试讲话三分钟范文
  8. php怎么查看当前地址,php二分法在IP地址查询中的应用
  9. 国外LEAD赚钱提现到WMZ,附赚钱项目
  10. LeetCode 罗马数字