我如何获得Flagged邮件交换

时间:2016-09-29 07:19:06

标签: mailkit

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));

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

1 个答案:

答案 0 :(得分:0)

您正在混淆两种“标记”消息的方式。 Outlook未设置MessageFlags.Flagged标记,这就是为什么Search()找不到它。

很可能Outlook根本不会在IMAP服务器上存储任何内容(并且该状态存储在.pst文件中) - 或者它在IMAP服务器上存储自定义UserFlags字符串,您将需要搞清楚。

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