【发布时间】:2018-06-13 16:44:41
【问题描述】:
我正在尝试了解普通身份验证在 IMAP 服务器上的工作原理。
我在 JavaScript(Node.JS) 中实现了一个简单的 IMAP 服务器。
我尝试使用 Mozilla Thunderbird 登录,但无法通过连接的 AUTHENTICATION 部分。
这是服务器和客户端之间的通信方式:
C: 1 capability
S: * CAPABILITY IMAP4rev1 SASL-IR AUTH=PLAIN
S: 1 OK - CAPABILITY completed
C: 2 authenticate PLAIN
S: +
到目前为止,还有 AUTHENTICATE 处理程序:
function authenticate() {
socket.write('+ ')
}
如果我理解正确,Thunderbird 应该向我发送类似“\0login\0password”的消息,但它什么也没做,它停留在“登录邮件@127.0.0.1:发送登录信息...”
【问题讨论】:
-
您是否在回复后发送新行?
-
是的,我在每次响应后发送 \r\n ,但不在
+字符之后发送。如您所见,它只是一个socket.write('+ '),请注意“+”后面的空格。 -
它仍然需要换行。
标签: javascript authentication imap