在类似的“LIST”命令成功完成后,IMAP 服务器以“BAD...”错误响应“LIST...”

在类似的“LIST”命令成功完成后,IMAP 服务器以“BAD...”错误响应“LIST...”

BAD...我在对 IMAP 服务器运行命令时遇到错误LIST,我不理解,需要一些帮助。我在此之前运行了一个几乎相同的命令来列出根邮箱并且没有问题,但是当我开始遍历这些邮箱并尝试列出它们的子邮箱时,我得到了错误。奇怪的是,即使 IMAP 服务器返回的第一行是响应BAD...,它仍然满足了其余的查询,好像什么都没有错一样?!?!

首先,您需要了解namespace相关服务器的详细信息...

NAMESPACE

Array
(
    [0] => * NAMESPACE (("" ".")) NIL NIL
)

此服务器使用空根命名空间.,以及邮箱的句点( )分隔符

这是我使用的命令列表...

LIST "" "%" RETURN (SUBSCRIBED CHILDREN SPECIAL-USE STATUS (MESSAGES UNSEEN)) 

我得到了预期的回应......

Array
(
    [0] => * LIST (\Subscribed \HasChildren) "." Archives
    [1] => * STATUS Archives (MESSAGES 0 UNSEEN 0)
    ...
)

我应该提到,所有RETURN元功能都是根据先前的CAPABILITIES请求建立的。

因此,根据结果,我开始对它们进行迭代以获得儿童邮箱,第一个是Archives。我使用的语法几乎与RFC 3501#6.3.8LIST...下的示例

LIST "Archives." "%" RETURN (SUBSCRIBED CHILDREN SPECIAL-USE STATUS (MESSAGES UNSEEN)) 

我希望它列出与该Archives邮箱相关的所有子邮箱,它确实如此,但是它首先列出了BAD...回复......

Array
(
    [0] => * BAD Error in IMAP command : Unknown command (0.000 + 0.000 secs).
    [1] => * LIST (\Subscribed \HasNoChildren) "." Archives.2017
    [2] => * STATUS Archives.2017 (MESSAGES 0 UNSEEN 0)
    [3] => * LIST (\Subscribed \HasNoChildren) "." Archives.2016
    [4] => * STATUS Archives.2016 (MESSAGES 192 UNSEEN 0)
    [5] => * LIST (\Subscribed \HasNoChildren) "." Archives.2019
    [6] => * STATUS Archives.2019 (MESSAGES 1 UNSEEN 0)
)

首先,我不明白我做错了什么,而且,错误BAD...并没有像它应该的那样引用一个特定的命令,所以我真的没有什么可以继续的。其次,如果它失败了,那为什么它仍然完成请求的其余部分?

确实需要一些帮助,谢谢!


编辑1:我在测试的两个不同的 IMAP 服务器上都遇到了同样的无法解释的错误,而且它们都表现出了相同的行为……返回了正确的记录,但在此之前先包含了一个BAD...错误。所以这肯定是我LIST...请求的语法出了问题,但我觉得我使用的示例与 RFC 定义的相同,所以我很困惑。

相关内容