как получить x-gm-ярлыки для электронной почты - PullRequest
1 голос
/ 01 апреля 2012

Я пытаюсь понять, как я могу получить ярлыки gmail (x-gm-labels) для письма в C. Я проверил, что сборки libetpan поддерживают расширение x-gm-labels.

Любая идея, как написатьпример кода, чтобы собрать все вместе?

Ответы [ 2 ]

3 голосов
/ 12 апреля 2012

Понял. Отследив эту регистрацию от первоначального автора , я обнаружил код, встроенный в стандартное поведение обработки libetpan поддержки IMAP.

Что ж, получается, что автор предоставляет пример того, как успешно установить соединение IMAP. Вместо того, чтобы выдавать весь код, вот бит, который вам следует беспокоиться:

static char * get_msg_att_msg_content(struct mailimap_msg_att * msg_att,
  size_t * p_msg_size)
{
    clistiter * cur;

    /* iterate on each result of one given message */
    for(cur = clist_begin(msg_att->att_list) ; cur != NULL ;
      cur = clist_next(cur)) {
        struct mailimap_msg_att_item * item;

        item = clist_content(cur);
        if (item->att_type != MAILIMAP_MSG_ATT_ITEM_STATIC) {
            continue;
        }

    ...

Согласно моему обратному следу кода, ваш билет struct mailimap_msg_att_item. att_type, который вы ищете здесь, это MAILIMAP_MSG_ATT_ITEM_EXTENSION, и оттуда вы должны пройтись по структурам данных, пока не найдете MAILIMAP_EXTENSION_XGMLABELS.

Что-то вроде этого должно их изолировать:

if (item->att_type == MAILIMAP_MSG_ATT_ITEM_EXTENSION) {
    if (item->att_data.att_extension_data->ext_type == 
      MAILIMAP_EXTENSION_XGMLABELS) {
        // ... do something ...
    }
}

( Предупреждение: непроверенный код. )

Отсюда вы можете выполнить более глубокий вопросительный анализ используемых конструкций. Все существенные файлы содержатся в src/low-level/imap, за исключением тестового файла . Удачи!

0 голосов
/ 11 апреля 2012

Существует множество расширений IMAP .. см. Расширения Gmail IMAP и Ярлыки Gmail

несколько примеров:

Перечислите все ярлыки Gmail

Сообщение ярлыка с меткой системы Gmail

Также проверьте комментарий MrGomez, который дает хорошее объяснение по поводу запрашиваемой вами функциональности..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...