【问题标题】:is it possible to detect IMAP protocol version?是否可以检测 IMAP 协议版本?
【发布时间】:2014-03-22 20:09:14
【问题描述】:

我正在使用 Nodejs 为电子邮件客户端建立 IMAP IDLE 连接。建立连接时是否有可能检测IMAP协议版本。

【问题讨论】:

  • 谁是客户端,谁是服务器? Node.js 的作用是什么?
  • 我有自己的客户端程序。 Node.js 将是我的客户端程序和 IMAP 服务器之间的中介。在这里,我将使用 Gmail IMAP 连接。但它并不总是特定于 gmail。它可以是任何邮件服务器。所以当我通过 Nodejs 连接特定的邮件服务器时,我想获得连接的 IMAP 服务器协议版本。

标签: node.js imap


【解决方案1】:

今天所有的 IMAP 服务器都运行相同的版本 4rev1。版本 1、2、3 和 4 早已不复存在。

此外,今天的所有服务器都支持一个或多个扩展。 CAPABILITY 命令返回扩展列表。对于 gmail:

openssl s_client -connect imap.gmail.com:993 -crlf

a capability
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN
a OK Thats all she wrote! j14mb28178795bkd

所以 gmail 支持 IDLE 和大约十几个扩展。

【讨论】:

    【解决方案2】:

    IMAP 使用CAPABILITY 命令请求有关服务器功能的信息。这比版本号更有用,因为它允许客户端检查它可能需要的 IMAP 基本协议的特定扩展。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-04
      • 1970-01-01
      • 1970-01-01
      • 2017-09-25
      • 1970-01-01
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多