IMAP BAD [CLIENTBUG] 无效标签

IMAP BAD [CLIENTBUG] Invalid tag

我想发送 IMAP 命令以便接收 IMAP 响应。

如此简短的代码,易于理解但保存 space 以防止键入所有代码并更快地溢出 reader:

SSL_write("a0001 login user pass")

SSL_read = "* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH UTF8=ACCEPT
a0001 OK mrtallpuducherry@gmail.com authenticated (Success)

好的,现在一切正常,但这是一个小问题:

SSL_write("a0002 select inbox\r\n\r\n")

SSL_read = * BAD [CLIENTBUG] Invalid tag
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen $Phishing $NotPhishing)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen $Phishing $NotPhishing \*)] Flags permitted.
* OK [UIDVALIDITY 1] UIDs valid.
* 7958 EXISTS
* 0 RECENT
* OK [UIDNEXT 22979] Predicted next UID.
* OK [HIGHESTMODSEQ 2553479]
a0002 OK [READ-WRITE] inbox selected. (Success)

每次登录后,当我发送 IMAP 命令以获取 IMAP 响应时,我收到的第一件事总是

* BAD [CLIENTBUG] Invalid tag

在它告诉我 BAD 之后,它会给我适当的回应并告诉我(成功)。

我很困惑,因为我给出了正确的标签。我在 linux 平台上使用 OpenSSL。

此示例使用 gmail 服务器,但发生在所有经过测试的 IMAP 服务器上。登录是完美的,其他一切都以 "Invalid tag" 开头,然后给我正确的回复。

你知道我做错了什么以及如何预防吗?非常感谢你。谨致问候。

问题在这里:

SSL_write("a0002 select inbox\r\n\r\n")

只写一个CRLF:

SSL_write("a0002 select inbox\r\n")

您无意中发送了两个命令。一个是你想要的命令,一个是空命令,没有(无效的)标签。