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));
我可以收到被标记的邮件,我不知道为什么,我怎样才能收到被标记的邮件?
答案 0 :(得分:0)
您正在混淆两种“标记”消息的方式。 Outlook未设置MessageFlags.Flagged
标记,这就是为什么Search()
找不到它。
很可能Outlook根本不会在IMAP服务器上存储任何内容(并且该状态存储在.pst文件中) - 或者它在IMAP服务器上存储自定义UserFlags
字符串,您将需要搞清楚。
如果您知道IMAP服务器上具有此自定义标志的特定消息,则可以使用Fetch()
方法和MessageSummaryItems.Flags
来请求设置了哪些标志。然后,您可以检查item.UserFlags
并希望找到您要找的内容。