node-imap открыть дочерний почтовый ящик

Я пытаюсь открыть дочерние почтовые ящики своего основного почтового ящика, но это не работает. Я получаю следующую ошибку в режиме отладки.

«A5 НЕТ [НЕСУЩЕСТВУЮЩИЙ] Неизвестный почтовый ящик: INBOX/[Gmail] (сбой)»

Но когда я перечисляю почтовые ящики, я вижу, что ящик [Gmail] существует, поэтому я не понимаю, что не так.

<= '* LIST (\\HasNoChildren) "/" "INBOX"'
<= '* LIST (\\HasChildren \\Noselect) "/" "[Gmail]"'

Вот код, который создает ошибку (я использую imap-simple):

const connection = await imaps.connect(this.imapConfig);
const inbox = await connection.openBox('INBOX/[Gmail]');

Не могли бы вы мне помочь, пожалуйста?


person Arthur Kalman    schedule 18.02.2021    source источник


Ответы (1)


Имя почтового ящика во втором ответе LIST — [Gmail], а не INBOX/[Gmail]. LIST ответы содержат полное и правильное имя; если есть иерархия, сервер сообщит вам полное имя всего, поэтому вам не нужно ничего объединять.

(Вы, наверное, слышали или читали, что все находится в INBOX, что на некоторых серверах, но не на всех.)

person arnt    schedule 18.02.2021
comment
Это больше не работает. Я получил: [НЕСУЩЕСТВУЮЩИЙ] Неизвестный почтовый ящик: [Gmail] (ошибка)' - person Arthur Kalman; 18.02.2021
comment
Большинство людей получают в ответ не просто [Gmail], а более длинную строку, которая зависит от языка и, возможно, других настроек. Возможно, вы захотите перепроверить, что вы случайно не удаляете часть полученной строки. Вот пример того, что видят большинство людей. - person arnt; 18.02.2021
comment
[Gmail] сама по себе не является папкой, это папка-из-папок (это флаг \HasChildren) и не может быть выбрана сама по себе (это флаг \NoSelect). Если вам нужен ВХОДЯЩИЙ ЯЩИК, это просто INBOX. - person Max; 18.02.2021
comment
Ой, почему я не поймал \noselect. Извиняюсь. - person arnt; 19.02.2021