2010-11-13 1 views
7

Итак, IMAP Gmail немного странный. Они используют папки IMAP для представления ярлыков. Обычно я считаю, что электронное письмо в IMAP может принадлежать только одной папке, однако с Gmail сообщение электронной почты может принадлежать многим «папкам», что дает нам очень тесную функциональность для ярлыков.Gmail IMAP: Любой способ найти все ярлыки (папки), в которых находится конкретное сообщение?

Мой вопрос заключается в том, что я пишу gmail-клиент (так что такие вещи, как «Звезда», «Удаление и архивирование» работают немного интуитивно, чем стандартный клиент imap), но я хотел бы иметь возможность отображать для данного электронной почты, в каких папках (ярлыках) он находится.

Насколько я могу судить, это непросто (мне нужно было бы перебирать каждое сообщение в каждой папке, чтобы увидеть, какие из них есть).

Кто-нибудь знает, какой способ сделать это? Или я прав, полагая, что нет простого пути?

ответ

7

Gmail предоставляет набор расширений IMAP, позволяющих авторам IMAP-клиентов предоставлять больше возможностей, связанных с Gmail, через IMAP. См. Gmail IMAP Extensions (X-GM-EXT-1).

Чтобы получить метки для определенного сообщения, вы можете вызвать команду IMAP FETCH с атрибутом X-GM-LABELS. См. Access to Gmail labels: X-GM-LABELS

+0

Спасибо, я обнаружил, что специальная страница IMAP в Gmail некоторое время назад, но никогда не возвращалась и не помещала ее сюда. – Redth

-1

Самый простой (хотя и не безупречный) способ - захватить значения заголовков сообщений Message-ID. Затем перебирать папки «LABEL» и выполнить IMAP SEARCH вдоль линий

A001 SEARCH HEADER MESSAGE-ID "your-msgid-value" 

Если вы получаете какие-либо результаты обратно в немаркированной SEARCH ответ, сообщение содержит выбранное «папку» метки 's.

 Смежные вопросы

  • Нет связанных вопросов^_^