我怎样才能得到标记的邮件交换

How can I get the Flagged mail Exchange

When I mark the message in this way

我用的方法

var  uids= folder.Search(SearchQuery.DeliveredAfter(DateTime.Parse("2016-9-29")).And(SearchQuery.Flagged)); 

无法获取标记的邮件, 但是当我使用方法

folder.AddFlags(new UniqueId(1693), MessageFlags.Flagged, false);
folder.Expunge();
邮件将被标记,当我使用方法

var  uids= folder.Search(SearchQuery.DeliveredAfter(DateTime.Parse("2016-9-29")).And(SearchQuery.Flagged));

我可以收到被标记的邮件,我不知道为什么,我怎样才能得到被标记的邮件?

您将 "flagging" 消息的两种不同方式混为一谈。 Outlook 没有设置 MessageFlags.Flagged 标志,这就是 Search() 找不到它的原因。

很可能 Outlook 要么根本不在 IMAP 服务器上存储任何内容(并且该状态存储在本地的 .pst 文件中)-要么- 它在 IMAP 服务器上存储自定义 UserFlags 字符串你需要弄清楚。

如果您知道 IMAP 服务器上的特定邮件具有此自定义标志,则可以使用 Fetch() 方法和 MessageSummaryItems.Flags 来请求设置了哪些标志。然后,您可以检查 item.UserFlags 并希望找到您要查找的内容。