2012-04-25 38 views
3

是否有人知道如何使用Microsoft Exchange Web服務獲取收件箱中標記的所有項目?MS Exchange Web服務:如何獲取設置了「標誌」的項目?

顯然,它們既不在Tasks文件夾內(儘管它們出現在Outlook中),也沒有IsReminderSet設置爲true

繼嘗試要麼返回唯一的約會或唯一真正的任務,但不帶標記的郵件:

var msgsView = new ItemView(100); 
var msgsFilter = new SearchFilter.IsEqualTo(ItemSchema.IsReminderSet, true); 
var flagged = exSvc.FindItems(WellKnownFolderName.Inbox, msgsFilter, msgsView); 

var taskView = new ItemView(100); 
var tasks = exSvc.FindItems(WellKnownFolderName.Tasks, taskView); 

既不工作。

回答

0

我知道這個問題是舊的,但我發現名單的示例代碼,它看起來像它可能做的伎倆(我還沒有測試它自己還) 來源:http://independentsoft.de/exchangewebservices/tutorial/findmessageswithflag.html

IsEqualTo restriction1 = new IsEqualTo(MessagePropertyPath.FlagStatus, "1"); //FlagStatus.Complete 
    IsEqualTo restriction2 = new IsEqualTo(MessagePropertyPath.FlagStatus, "2"); //FlagStatus.Marked 

    Or restriction3 = new Or(restriction1, restriction2); 

    FindItemResponse response = service.FindItem(StandardFolder.Inbox 
       , MessagePropertyPath.AllPropertyPaths, restriction3); 

for (int i = 0; i < response.Items.Count; i++) 
{ 
    if (response.Items[i] is Message) 
    { 
     Message message = (Message)response.Items[i]; 

     Console.WriteLine("Subject = " + message.Subject); 
     Console.WriteLine("FlagStatus = " + message.FlagStatus); 
     Console.WriteLine("FlagIcon = " + message.FlagIcon); 
     Console.WriteLine("FlagCompleteTime = " + message.FlagCompleteTime); 
     Console.WriteLine("FlagRequest = " + message.FlagRequest); 
     Console.WriteLine("-----------------------------------------------"); 
    } 
} 
相關問題