2016-02-05 163 views
0

我正在使用特定日期搜索邮件。我使用参数DateTimeCreated,DateTimeReceived和lastModifiedTime的过滤器。我也搜索一个特定的属性。EWS C#属性LastModifiedTime读取或未读消息后未更新

搜索查询正在处理在特定日期之后收到或修改(即移动到其他文件夹)的消息。

我注意到在特定日期之前创建的消息以及在特定日期之后更改为读取或未读取的消息未被检索。我期望消息在lastModifiedTime属性更改后更改为已读或未读消息。下面的代码 我使用:

List<SearchFilter> SearchFilterOrColletion = new List<SearchFilter>(); 
    SearchFilterOrColletion.Add(new SearchFilter.IsGreaterThanOrEqualTo(ItemSchema.DateTimeCreated, UTCfromDate)); 
          SearchFilterOrColletion.Add(new SearchFilter.IsGreaterThanOrEqualTo(ItemSchema.DateTimeReceived, UTCfromDate)); 
          SearchFilterOrColletion.Add(new SearchFilter.IsGreaterThanOrEqualTo(ItemSchema.LastModifiedTime, UTCfromDate)); 
          SearchFilter SearchOrFilter = new SearchFilter.SearchFilterCollection(LogicalOperator.Or, SearchFilterOrColletion.ToArray()); 
    List<SearchFilter> SearchAndFilter = new List<SearchFilter>(); 
    SearchAndFilter.Add(SearchOrFilter); 
    SearchAndFilter.Add(SearchFilterXprProperty); 
    SearchFilter.SearchFilterCollection FinalSearchFilter = new SearchFilter.SearchFilterCollection(LogicalOperator.And, SearchAndFilter.ToArray()); 

有没有办法得到的消息被设置为已读或未读的时间? 即:

1 - Message A received 3:30 pm 
2 - Message B received 4:00 pm 
3 - Message A read 4:10 pm 
Using my search with the time 3:50pm is returning only the message B. I was expecting the message A would be found too (due to the lastModifiedTime) property. 

谢谢你在前进,

+0

添加一些信息跟踪:我观察到,使用Outlook当我将邮件设置为读取或未读时,LastModifiedTime属性正在更改。使用Office 365的OWA它不会发生。对我来说,看起来像是OWA中的一个bug。 – Jaquinei

回答

0

它没有更新的消息不会改变最后修改时间的阅读状态中的错误(这一直是交换的情况下),一异常是当您回复或转发消息时,这将修改PR_LAST_VERB_EXECUTED属性,然后该属性将更新上次修改时间。

如果您想在消息被读取,你需要使用http://blogs.technet.com/b/exchange/archive/2010/01/13/exchange-2010-delivery-reports.aspx或者您可以使用EWS通知和订阅OnRead通知

干杯 格伦

+0

感谢您的信息。我已经在使用EWS通知。它工作正常。我担心的是EWSNotification不可用。我想获取我未收到通知的特定时间段的阅读状态。 – Jaquinei