2016-10-28 63 views
0

我想從存儲在Exchange 2010服務器上的公用文件夾中的電子郵件中獲取附件,並且在將附件保存到文件後,我想將電子郵件標記爲「已完成」。如何使用EWS將項目設置爲「已完成」

這是很容易獲得的郵件列表,並作爲用於過濾搜索結果TaskSchema.IsComplete工作的性質:(「posteingang」是公用文件夾我想搜索)

FindItemsResults<Item> findItemResults; 
    ItemView    view = new ItemView(50); 

    findItemResults = service.findItems(posteingang.getId(), 
             new SearchFilter.SearchFilterCollection(
              LogicalOperator.And, 
              new SearchFilter.ContainsSubstring(ItemSchema.Subject, "example"),             
              new SearchFilter.IsNotEqualTo(TaskSchema.IsComplete, true) 
             ), 
             view); 

     service.loadPropertiesForItems(findItemResults, PropertySet.FirstClassProperties); 
     for (Item item : findItemResults) { 

       EmailMessage msg = (EmailMessage) item; 
       msg.setIsRead(true); 
       msg.setCategories(SL_DARVIN); 
       msg.setImportance(Importance.Low); 
       msg.update(ConflictResolutionMode.AlwaysOverwrite); 

     } 

然而,當它涉及到我想將電子郵件標記爲完整的部分,我不知道如何去做。鑄造itemtask不會:-(

工作,沒有任何人有一個想法

PS:代碼示例是用Java,但得益於EWS API,他們應該在C#幾乎相同。

回答

0

您應該能夠使用擴展屬性標記爲完成如像

 ExtendedPropertyDefinition PidTagFlagStatus = new ExtendedPropertyDefinition(0x1090, MapiPropertyType.Integer); 
     ExtendedPropertyDefinition PidTagFlagCompleteTime = new ExtendedPropertyDefinition(0x1091, MapiPropertyType.SystemTime); 
     ExtendedPropertyDefinition PidLidTaskComplete = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Task, 0x811C,MapiPropertyType.Boolean);    
     ExtendedPropertyDefinition PidLidCommonEnd = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Common, 0x8517, MapiPropertyType.SystemTime); 
     ExtendedPropertyDefinition PidLidTaskStatus = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Task, 0x8101, MapiPropertyType.Integer); 
     ExtendedPropertyDefinition PidLidPercentComplete = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Task, 0x8102, MapiPropertyType.Double); 
     ExtendedPropertyDefinition TaskDateCompleted = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Task, 0x810F, MapiPropertyType.SystemTime); 
     ExtendedPropertyDefinition PidTagFollowupIcon = new ExtendedPropertyDefinition(0x1095, MapiPropertyType.Integer); 


     Message.SetExtendedProperty(PidTagFlagStatus, 0x00000001); 
     Message.SetExtendedProperty(PidTagFlagCompleteTime, DateTime.Now); 
     Message.SetExtendedProperty(PidLidTaskComplete, true); 
     Message.SetExtendedProperty(PidLidCommonEnd, DateTime.Now); 
     Message.SetExtendedProperty(PidLidTaskStatus, 2); 
     Message.SetExtendedProperty(PidLidPercentComplete, 1); 
     Message.SetExtendedProperty(TaskDateCompleted, DateTime.Now); 
     Message.SetExtendedProperty(PidTagFollowupIcon, 3); 
     Message.Update(ConflictResolutionMode.AlwaysOverwrite); 
相關問題