美文网首页
NodeJs原生库接收邮件

NodeJs原生库接收邮件

作者: DrS6 | 来源:发表于2016-06-18 17:53 被阅读1515次
    流程图

    NodeJs 提供了SSL/TLS 这样的安全连接协议库,so 我们可以用这样的协议与邮件服务器通讯。要写完一个完整的收邮件的工具还是需要一定的时间,流程大致如上面的流程图了。
    那么什么是SSL?什么是TLS?

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

    SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

    安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。
    TLS 的最大优势就在于:TLS 是独立于应用协议。高层协议可以透明地分布在 TLS 协议上面。然而,TLS 标准并没有规定应用程序如何在 TLS 上增加安全性;它把如何启动 TLS 握手协议以及如何解释交换的认证证书的决定权留给协议的设计者和实施者来判断。

    可以看出为了邮件的安全性,采用SSL/TLS的通讯技术还是有必要的。废话不说,看代码:
    首先引入库 var tls = require('tls');
    var options = {
    host: 'pop.qq.com',
    port: 995,
    user: 'XXXXXXXXXXX@qq.com',
    pass: 'XXXXXXXXXX'
    }
    var Socket = tls.connect(options.port, options.host, cb_connected);
    //注册事件-连接回调
    Socket.on('connect', cb_connecting);
    //注册事件-服务器返回数据处理
    Socket.on('data', cb_Server_DataBack);

    上面的cb_XXXX都是回调函数。至于端口和服务器地址大家参看邮件服务提供商的帮助了,是不是很简单,3行代码。
    剩余的就是用户的操作,输入命令,执行,显示操作结果即可。

    利用socket将命令写到服务端,like this : Socket.write("命令 \r\n"); 顺带一提命令以\r\n作为结束标记一定要写。

    pop3协议的通信是一问一答的模式,想要做批量命令操作的小伙伴就要动点脑了。

    有兴趣的小伙伴可以自行完成剩余的代码。

    好吧,本来是要写个android的收邮件客户端的,脑子一热,用了nodejs,细思极恐,还要写页面,还要写一堆东西,毕竟我还不是全栈,android的APP有机会再分享。感谢阅读,如有错漏,还请留言赐教。

    相关文章

      网友评论

          本文标题:NodeJs原生库接收邮件

          本文链接:https://www.haomeiwen.com/subject/kitvdttx.html