如何从电子邮件中获取Flag属性?

时间:2016-06-06 14:27:40

标签: exchangewebservices ewsjavaapi

我可以以某种方式从EmailMessage或Item对象获取Flag属性吗?没有getFlag()方法,我也没有在item.getPropertyBag()中找到它。我正在使用ews-java-api-2.0。 flag setting on outlook web app

1 个答案:

答案 0 :(得分:0)

2013年EWS中有一个强类型标志属性,因此您可以修改EWS Java源以满足该属性。否则,如果您使用基础扩展属性,则可以获得相同的信息,例如

        ExtendedPropertyDefinition PR_FLAG_STATUS = new ExtendedPropertyDefinition(0x1090, MapiPropertyType.Integer);
        ExtendedPropertyDefinition FlagRequest = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Common, 0x8530, MapiPropertyType.String);
        PropertySet fiFindItemPropset = new PropertySet(BasePropertySet.FirstClassProperties);
        fiFindItemPropset.Add(FlagRequest);
        fiFindItemPropset.Add(PR_FLAG_STATUS);
        FolderId FolderToAccess = new FolderId(WellKnownFolderName.Inbox, MailboxToAccess);
        ItemView ivItemView = new ItemView(1000);
        ivItemView.PropertySet = fiFindItemPropset;
        FindItemsResults<Item> FindItemResults = null;
        do
        {
            FindItemResults = service.FindItems(FolderToAccess, ivItemView);
            foreach (Item itItem in FindItemResults.Items)
            {
                Console.WriteLine(itItem.Subject);
                Object FlagValue = null;
                if (itItem.TryGetProperty(FlagRequest, out FlagValue))
                {
                    Console.WriteLine("Flag : " + FlagValue);
                }
                Object PR_FLAG_STATUS_Value = null;
                if (itItem.TryGetProperty(PR_FLAG_STATUS, out PR_FLAG_STATUS_Value))
                {
                    Console.WriteLine("PR_FLAG_STATUS : " + PR_FLAG_STATUS_Value);
                }
            }
            ivItemView.Offset += FindItemResults.Items.Count;
        } while (FindItemResults.MoreAvailable);

Theres标志属性的完整列表https://msdn.microsoft.com/en-us/library/ee201258(v=exchg.80).aspx