3.1.4.8 Performing a Conversation Action
The following user actions performed on a conversation SHOULD<37> modify the conversation actions, as specified in section 2.2.8, on a conversation and trigger special handling logic:
Ignore
Stop Ignoring
Move to Folder
Stop Move
Add Category
Remove Category
Clear All Categories
When the user performs one of these actions on a conversation, the client SHOULD identify all unique values of the PidTagConversationId property ([MS-OXOMSG] section 2.2.1.2) on the E-mail objects and do the following for each conversation ID:
The client SHOULD locate the conversation action FAI message in the Conversation Actions Settings special folder with bytes 6-21 of the PidTagConversationIndex property (section 2.2.8.8) corresponding to the given conversation ID. If no such FAI message exists, proceed to step 4.
If the user is performing a Stop Ignoring action and the FAI message does not indicate that there is an Ignore conversation action (as specified in sections 2.2.8.3 and 2.2.8.4), the client SHOULD NOT perform the Stop Ignoring action for this conversation ID.
If the user is performing a Stop Move action and the FAI message does not indicate that there is a Move to Folder conversation action (as specified in sections 2.2.8.3 and 2.2.8.4), the client SHOULD NOT perform the Stop Move action for this conversation ID.
If no existing FAI message is found, a new FAI message SHOULD be created with the properties specified in section 2.2.8.
The client SHOULD<38> locate all E-mail objects on the message store with a PidTagConversationId property value matching the given conversation ID. If the operation cannot be done in a timely fashion, the client can proceed as though no E-mail objects were found.
The client SHOULD perform the appropriate action on all located E-mail objects, as specified in the second column of the table following this procedure.
The client SHOULD set the latest value of the PidTagMessageDeliveryTime property ([MS-OXOMSG] section 2.2.3.9) from the located E-mail objects as the PidLidConversationActionMaxDeliveryTime property (section 2.2.8.2) on the FAI message. If no messages were found, the PidLidConversationActionMaxDeliveryTime property SHOULD be set to 00:00:00 (UTC) April 1, 1601.
The client SHOULD set the current time (in UTC) as the PidLidConversationActionLastAppliedTime property (section 2.2.8.1) on the FAI message.
The client SHOULD perform the appropriate action on the FAI message, as specified in the third column of the table following this procedure.
If the server returned a version less than 14.0.324.0, as described in section 1.7, and the PidLidConversationActionMoveFolderEid (section 2.2.8.3) and PidNameKeywords (section 2.2.8.7) properties are both not set, the client SHOULD delete the FAI message.
Appropriate actions for the client to perform for each user action are specified in the following table.
User action |
Action to perform on each E-mail object |
Action to perform on the FAI message object |
---|---|---|
Ignore |
If the E-mail object is not in the Sent Items special folder, move the E-mail object to the Deleted Items special folder. |
Set the PidLidConversationActionMoveFolderEid property to an array of size 0. Delete the value of the PidLidConversationActionMoveStoreEid property (section 2.2.8.4). |
Stop Ignoring |
If the E-mail object is in the Deleted Items special folder, move the E-mail object to the Inbox folder. |
Delete the value of PidLidConversationActionMoveFolderEid property and of the PidLidConversationActionMoveStoreEid property. |
Move to Folder |
If the E-mail object is not in the Sent Items special folder, move the E-mail object to the user-specified folder. |
Set the PidLidConversationActionMoveFolderEid property to the EntryID of the user-specified folder. If the user-specified folder is in the same message store as the FAI message, delete the value of the PidLidConversationActionMoveStoreEid property. Otherwise, set the PidLidConversationActionMoveStoreEid property to the EntryID of the user-specified message store. |
Stop Move |
None. |
Delete the value of the PidLidConversationActionMoveFolderEid property and the PidLidConversationActionMoveStoreEid property. |
Add Category |
Append the user-specified category to the PidNameKeywords property of each E-mail object. |
Append the user-specified category to the PidNameKeywords property of the FAI message. |
Remove Category |
Remove the user-specified category from the PidNameKeywords property of each E-mail object. If this operation would leave the PidNameKeywords property empty, delete the PidNameKeywords property instead. |
Remove the user-specified category from the PidNameKeywords property of the FAI message. If this operation would leave the PidNameKeywords property empty, delete the PidNameKeywords property instead. |
Clear All Categories |
Delete the PidNameKeywords property from each E-mail object. |
Delete the value of the PidNameKeywords property from the FAI message. |