Как фильтровать с помощью UID в IMapX

Я могу успешно фильтровать почту, используя эти фильтры

imapXInboxFolder.Messages.Download(
    "SENTBEFORE 02-Feb-2016", 
     ImapX.Enums.MessageFetchMode.Tiny, 1                      
);         
// To get 1 mail sent before the date

,

imapXInboxFolder.Messages.Download(
    "FROM 'atlantatechvillage'", 
     ImapX.Enums.MessageFetchMode.Tiny, 1                      
);         
// To get 1 latest mail from a specific sender

,

imapXInboxFolder.Messages.Download(
    "UID 2345 FROM 'atlantatechvillage'", 
     ImapX.Enums.MessageFetchMode.Tiny, 1                      
);         
// Having UID 2345 and From the specific sender

Поэтому, если я использую только UID 2345, я могу без проблем получать почту с UID 2345.

С помощью вышеупомянутого фильтра запроса код проверяет почту с UID 2345 и соответствует ли она условию адреса FROM. Если не существует, возвращает ноль

Что мне действительно нужно, так это запрос, который может искать UID больше или меньше определенного, который соответствует конкретному запросу с адреса.

Я искал по всему интернету документацию iMapX и все, но не повезло.

1 ответ

Решение

Вот как вы можете изменить свою последнюю версию, чтобы сделать то, что вы хотите сделать:

// search for messages with a UID <= 2345:
imapXInboxFolder.Messages.Download(
    "UID 1:2345 FROM 'atlantatechvillage'", 
     ImapX.Enums.MessageFetchMode.Tiny, -1                      
);

// search for messages with a UID >= 2345:
imapXInboxFolder.Messages.Download(
    "UID 2345:* FROM 'atlantatechvillage'", 
     ImapX.Enums.MessageFetchMode.Tiny, -1                      
);

Надеюсь, это поможет.

Другие вопросы по тегам