Category Color

Thanks, encountered some strange behaviors, Outlook is truly a buggy product:
https://answers.microsoft.com/en-us/outlook_com/forum/all/outlook-category-colors-changed/54a9d386-eb3a-4614-af88-e3c346b40506

Plus, you’re right, the colors won’t always match with this table, this is a different method:

And finally, a dead-end again, wanted to test in my alpha test project and:

For Each MyMSG As MapiMessage In MyFolder.GetContents(MessageKind.Normal Or MessageKind.FolderAssociatedInformation)
Value of type ‘Aspose.Email.Storage.Pst.MessageInfo’ cannot be converted to ‘Aspose.Email.Mapi.MapiMessage’
Please kindly add this to the Mapi too :frowning:

@australian.dev.nerds,

For Each MyMSG As MapiMessage In MyFolder.GetContents(MessageKind.Normal Or MessageKind.FolderAssociatedInformation)
Value of type ‘Aspose.Email.Storage.Pst.MessageInfo’ cannot be converted to ‘Aspose.Email.Mapi.MapiMessage’

There is an error in your code: GetContents always returns the MessageInfo collection but not MapiMessage collection.
You can’t cast MessageInfo to a MapiMessage. To get a MapiMessage you must do the following:

For Each MyMsgInfo As MessageInfo In MyFolder.GetContents(MessageKind.Normal Or MessageKind.FolderAssociatedInformation)
    Dim MyMSG As MapiMessage = pst.ExtractMessage(MyMsgInfo)
Next

Just a reminder, MessageInfo is a class designed to keep brief message information, including an EntryId as well. MessageInfo allows getting a list of messages in a folder without expending resources to extract them.

1 Like

Peace, and thanks for the info, please let me post something here for my future reference only :slight_smile:

Hidden FAI item of type IPM.Configuration.* in the Associated Contents table of the blah folder. The item stores blah configuration in XML format in a PR_ROAMING_XMLSTREAM property. (PR = property; Roaming means that the information is available wherever the client connects, and XMLSTREAM indicates the type.) The x then updates the item any time a change occurs in the x assigned to the mailbox.

Exchange uses FAIs as a means to hold configuration and other data it needs to store in a mailbox but does not want to reveal to users when they run clients such as Outlook. The item the x creates holds details of the x that has been assigned to the mailbox. If the item does not exist in the mailbox, a client remains unaware that a x is in force. This is why the x has to process a mailbox before the client user interface is populated with details of the policy. In addition to the tags provisioned through the retention policy, the item also holds information about any personal tags the user has selected for his own use through Outlook Web App Options, you cannot see this information with a normal client, but you can with the MFCMAPI utility by opening a mailbox that has been assigned a x…

BTW, there are items like “IPM.Configuration.Autocomplete” (and many more) which saving them as MSG or the above method to save XML (RoamingXmlStream) will not give the related info (in this case, the list of recent addresses, although might be accessible from the registry) but just asking, since after opening this:
Untitled2.png (35.9 KB)
I wondered if anyone wrote a full pst/ost parser :))

I mean when there’s no xml stream in IPM.Configuration items, how to properly save them? :slight_smile:
Best

@australian.dev.nerds

IPM.Configuration. is something that is barely described in the spec. It isn’t always clear how to extract the info, because it isn’t known how the configuration items are designed internally.

It looks like the IPM.Configuration.Autocomplete object keeps useful info in some other property. Do you want us try investigating “IPM.Configuration.Autocomplete”?

Thanks.

1 Like

Hello and thanks so much for the valuable info, no, not at all, that’s something I can do from other channels, so should not waste your valuable time on that, and it’s not critical as well :slight_smile:
Just wanted to know what you know, nothing more :smiley: