MS Exchange Web Services: How to Get Items with a Flag Set?

Does anyone know how to get all items marked inside the inbox using Microsoft Exchange web services?

Apparently, they are not in the Tasks folder (even if they appear in Outlook), and they do not have IsReminderSetfor true.

The following attempts return only assignments or only true jobs, but not marked messages:

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

or

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

does not work.

+3
source share
1 answer

, , , , ( ) : 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("-----------------------------------------------");
    }
}
0

All Articles