Как мне заставить Chilkat IMAP ListMailBoxes сообщать о доступных именах почтовых ящиков?

#delphi #office365 #chilkat

#delphi #office365 #chilkat

Вопрос:

Я пытаюсь заставить компонент Chilkat IMAP прикрепляться к общей папке, которую пользователь может видеть в Outlook.

Как только я подключаюсь к своему IMAP-серверу как этот пользователь, и я выдаю:

 IMAP.SelectMailbox('Inbox')
  

Я могу видеть содержимое моего почтового ящика, как и ожидалось.

Общая папка, которую я вижу в Outlook, называется «Elekta Orders», и Outlook сообщает, что она расположена в \public Folders - simon.wood@chemigraphic.co.ukAll Public

https://cknotes.com/imap-select-public-folders / предполагает, что мне, возможно, потребуется установить SelectMailBox аргумент на что-то вроде: "public folders/elekta orders" или "public folders - simon.wood@chemigraphic.co.uk/elekta orders" . Когда я делаю это, SelectMailBox метод возвращает следующее:

ChilkatLog:
 SelectMailbox:
 Дата публикации: 25 июня 2020
 Версия chilkat: 9.5.0.83
 UnlockPrefix: CHEMIGRAPHIMAPMAILQ
 Архитектура: строчный порядковый номер; 32-разрядный
 Язык: ActiveX
 Подробный журнал: 0 
 почтовый ящик: общие папки - simon.wood@chemigraphic.co.uk/elekta заказы 
 Выберите mailboxinner:
 mailboxPath: общие папки - simon.wood@chemigraphic.co.uk/elekta заказы 
 Символ разделителя: .
 Экранирование кавычек и обратной косой черты в имени почтового ящика...
 utf7EncodedMailboxPath: общие папки - simon.wood@chemigraphic.co.uk/elekta заказы 
 isOk:
 ServerResponse: aaad НЕТ "общих папок - simon.wood@chemigraphic.co.uk/elekta "заказы" не существует.
 --isOk
 --selectMailboxInner
 Повторите попытку, используя / для символа-разделителя...
 Выберите mailboxinner:
 mailboxPath: общие папки - simon.wood@chemigraphic.co.uk/elekta заказы 
 separatorChar: /
 Экранирование кавычек и обратной косой черты в имени почтового ящика...
 utf7EncodedMailboxPath: общие папки - simon.wood@chemigraphic.co.uk/elekta приказы 
 исОК:
 ServerResponse: aaae НЕТ "общих папок - simon.wood@chemigraphic.co.uk/elekta "заказы" не существует.
 --isOk
 --selectMailboxInner
 Повторите попытку использования . вместо / в пути к почтовому ящику...
 Выберите mailboxinner:
 mailboxPath: общие папки - simon.wood@chemigraphic.co.uk.elekta заказы 
 Символ разделителя: .
 Экранирование кавычек и обратной косой черты в имени почтового ящика...
 utf7EncodedMailboxPath: общие папки - simon.wood@chemigraphic.co.uk.elekta заказы 
 isOk:
 Ответ сервера: aaaf НЕТ "общих папок - simon.wood@chemigraphic.co.uk.elekta "заказы" не существует.
 --isOk
 --selectMailboxInner
 Не удалось выбрать / проверить почтовый ящик 
 почтовый ящик: общие папки - simon.wood@chemigraphic.co.uk/elekta заказы 
 imapSelectResponse: aaaf НЕТ "общих папок - simon.wood@chemigraphic.co.uk.elekta "заказы" не существует.
 Сбой.
 --SelectMailbox
--Чилкатлог

Итак, я подумал, что мне стоит изучить ListMailBoxes метод, чтобы увидеть, какие почтовые ящики на самом деле видны на сервере IMAP.

При выпуске mboxes := imap.listMailboxes , LastErrorText отображается следующее:

ChilkatLog:
 ListMailboxes:
 Дата публикации: 25 июня 2020
 Версия chilkat: 9.5.0.83
 UnlockPrefix: CHEMIGRAPHIMAPMAILQ
 Архитектура: строчный порядковый номер; 32-разрядный
 Язык: ActiveX
 Подробный журнал: 0 
 listMailboxes:
 bSubscribedOnly: 0 
 ссылка: 
 почтовый ящик: *
 Экранирование кавычек и обратной косой черты в имени почтового ящика...
 utf7EncodedMailboxPath: *
 isOk:
 ServerResponse: aaah OK СПИСОК завершен.
 --isOk
 Успех.
 --listMailboxes
 Успех.
 --ListMailboxes
--ChilkatLog

Мне кажется, что команда выполнена правильно, однако, когда я смотрю на значение mboxes.count() , сообщаемое число является чем-то нелепым, например 18398748, и я не могу использовать mboxes.GetName() для возврата каких-либо имен папок.

Что я здесь делаю не так?