POP3 GetMessages с UIDS - PullRequest
       25

POP3 GetMessages с UIDS

1 голос
/ 25 мая 2019

Я использую MailKit версии 1.18.1.1 и хочу перейти на последнюю версию, но не могу, потому что GetMessages больше не принимает список UIDS, но хочет список int32.Зачем?Нет ли возможности снова использовать старую версию GetMessages?Мой почтовый клиент использует для сравнения список UIDS в базе данных с списком, прочитанным на POP-сервере, чтобы определить, какие UIDS следует загружать.Спасибо за любые ответы и предложения

1 Ответ

0 голосов
/ 26 мая 2019

Я отбросил API, которые принимали UID, потому что требовал, чтобы MailKit сохранял свою собственную копию сопоставления UID с индексом, что не только требовало большего использования памяти, но также было сложнее поддерживать синхронизацию с сервером.

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

var uids = client.GetMessageUids ();
var indexes = new List<int> ();

for (int i = 0; i < uids.Length, i++) {
    if (!HaveSeen (uids[i]))
        indexes.Add (i);
}

// now you have a list of indexes that you want
...