Я получаю BAD...
ошибка при запуске LIST
команда против сервера IMAP, который я не понимаю и с которым мне нужна помощь. Я запускаю почти идентичную команду непосредственно перед ней, чтобы перечислить корневые почтовые ящики и у меня нет проблем, но когда я начинаю перебирать эти почтовые ящики и пытаюсь составить список их дочерних почтовых ящиков, я получаю сообщение об ошибке. Странно то, что даже если первая строка, возвращаемая сервером 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.8 примеры под LIST
...
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...
error не ссылается на конкретную команду, как должно, поэтому мне действительно не о чем здесь рассказывать. Во-вторых, если он не работает, то почему он все еще выполняет оставшуюся часть запроса?
Мне действительно нужна помощь, спасибо!
РЕДАКТИРОВАТЬ 1: Я получаю ту же необъяснимую ошибку от двух разных серверов IMAP, с которыми я тестирую, и они оба демонстрируют одинаковое поведение ... возвращают правильные записи, но не раньше, чем включают BAD...
ошибка в первую очередь. Значит, это должно быть что-то в синтаксисе моего LIST...
запросов, но мне кажется, что я использую те же примеры, что и в RFC, поэтому я в растерянности.