在收件箱中搜索在特定时间范围后收到的项目时(如下面的代码中所述)。它搜索日期,但也返回具有指定时间戳的电子邮件。我只想要在指定时间戳之后发送电子邮件。
SearchFilter greaterthanfilter = new SearchFilter.IsGreaterThan(ItemSchema.DateTimeReceived,
Convert.ToDateTime(lastUploadedEmailtimeStamp));
mailItems = inbox.FindItems(greaterthanfilter, view);
不确定是否有人遇到过类似的问题?基本上我想搜索在特定mm/dd/yyyy hh:mm:ss
之后收到的项目。
低至毫秒,EWS 仅为您提供日期时间到秒的精度,但搜索筛选器的日期时间精度为毫秒。因此,如果您的日期时间戳的使用精度仅为秒,那么您需要使用这样的东西,例如您希望在 7:43 和 8 秒后收到的所有电子邮件
SearchFilter sfs = new SearchFilter.IsGreaterThan(ItemSchema.DateTimeReceived, DateTime.ParseExact("2014/12/29 07:43:08.999", "yyyy/MM/dd HH:mm:ss.fff", null));
FindItemsResults<Item> femaa = service.FindItems(WellKnownFolderName.Inbox,sfs, iItemView);
如果你想查看邮件的实际精度,你需要使用一个MAPI编辑器,如MFCMapi的OutlookSpy。然后,您可以查看PT_Systime值,即文件时间"8 字节;一个 64 位整数,表示自 1601 年 1 月 1 日以来的 100 纳秒间隔数"请参阅 http://msdn.microsoft.com/en-us/library/ee157583(v=EXCHG.80).aspx
干杯幽谷