Как получить помеченный почтовый обмен

Когда я отмечаю сообщение таким образом

Я использую метод

var uids= папка.Поиск (SearchQuery.DeliveredAfter (DateTime.Parse ("2016-9-29")).And (SearchQuery.Помеченный)); 

не удается получить помеченную почту,
но когда я использую метод

папка.AddFlags (new UniqueId (1693), MessageFlags.Flagged, false);
папка.Вычеркивать();

почта будет помечена и когда я использую метод

var uids= папка.Поиск (SearchQuery.DeliveredAfter (DateTime.Parse ("2016-9-29")).And (SearchQuery.Помеченный));

Я могу получить помеченную почту, я не знаю почему, и как я могу получить помеченную почту?

1 ответ

  1. Вы объединяете 2 различных способа «пометки» сообщения. Outlook не устанавливает MessageFlags.Flaggedфлаг, поэтому Search()не находит его.

    Скорее всего, Outlook либо вообще ничего не хранит на сервере IMAP (и это состояние хранится локально в нем .PST-файл) — или-он хранит пользовательскую UserFlagsстроку на сервере IMAP, которую вам нужно будет выяснить.

    Если вы знаете о конкретном сообщении на сервере IMAP, которое имеет этот пользовательский флаг, вы можете использовать Fetch()метод withMessageSummaryItems.Flags, чтобы запросить, какие флаги установлены. Затем вы можете исследовать item.UserFlagsи надеяться, что найдете то, что ищете.