Share via


Specifying Rule Actions

Outlook Developer Reference

The Rules object model supports the most commonly used rule actions and conditions. Each Rule object has an Actions property that represents the rule actions for that rule, as well as a Conditions property and an Exceptions property that represent the conditions for that rule. This topic describes how the Rules object model supports rule actions.

Rule actions for a rule are represented by a RuleActions collection object. A RuleActions object has properties that correspond to each commonly used rule action in a rule. For example, if a rule specifies two actions - moving the message to a specific folder and plays a sound - then the MoveToFolder and PlaySound properties of the rule's RuleActions collection object will return respective rule action objects that are enabled (RuleAction.Enabled is True). Actions that are not specified in a rule will not be enabled in the corresponding RuleAction object (RuleAction.Enabled is False). These rule action objects are represented by either the RuleAction object or customized objects derived from the RuleAction object. In the last example, specifically, the RuleActions.MoveToFolder property will return a MoveOrCopyRuleAction object, and the RuleActions.PlaySound property will return a PlaySoundRuleAction object, both of which are derived from the RuleAction object. The RuleAction object and its derived objects have the ActionType property that will indicate the type of the rule action. For example, MoveOrCopyRuleAction.ActionType will indicate the value olRuleActionMoveToFolder, and PlaySoundRuleAction.ActionType will indicate olRuleActionPlay.

Note that the Rules object model maintains partial parity with the Rules and Alerts Wizard. This means that while you can use the Wizard to create rules that specify any action and condition that you see in the Wizard, you can programmatically create rules that use some but not all of these actions and conditions. An example of an action that the Rules object model supports for rules created by the Wizard but not for those created by the object model is requesting a server reply. You can use the Wizard to create a rule specifying a certain server reply as an action. Using the Rules object model, you can enumerate these kinds of rules in the Rules collection - for each rule in the Rules collection, enumerate its RuleActions collection and look for an enabled rule action for a server reply. In code, this would mean for each rule in the Rules collection, enumerate Rule.Actions.Item(Index) using the Index from 1 to Rule.Actions.Count, and look for an enabled action with ActionType equal to olRuleActionServerReply. You can also enable or disable such a rule action in a rule. However, you cannot programmatically create a rule that specifies the olRuleActionServerReply action.

The following table lists all the rule actions supported by the Rules and Alerts Wizard, and whether each rule action is supported when creating a rule using the Rules object model. A rule action that is not supported in rules created by the Rules object model is supported only for programmatic enumeration and enabling or disabling in existing rules created by the Rules and Alerts Wizard. The table also shows whether the rule action applies to rules with the olRuleReceive rule type or olRuleSend rule type, or both.

Action Constant in olRuleActionType Supported when creating new rules programmatically? Apply to olRuleReceive rules? Apply to olRuleSend rules?
Assign the message to the categories specified in the AssignToCategoryRuleAction.Categories property olRuleActionAssignToCategory Yes Yes Yes
Cc the message to the recipient list specified in the SendRuleAction.Recipients property olRuleActionCcMessage Yes No Yes
Clear all categories for the message. olRuleActionClearCategories Yes Yes Yes
Copy the message to folder specified in the MoveOrCopyRuleAction.Folder property olRuleActionCopyToFolder Yes Yes Yes
Run a custom action olRuleActionCustomAction No Yes Yes
Defer the delivery by a specified number of minutes olRuleActionDefer No No Yes
Delete the message olRuleActionDelete Yes Yes No
Permanently delete the message olRuleActionDeletePermanently Yes Yes No
Display a desktop alert olRuleActionDesktopAlert Yes Yes No
Clear the message flag olRuleActionFlagClear No Yes No
Flag the message with the color specified olRuleActionFlagColor No Yes No
Flag the message for action in days specified olRuleActionFlagForActionInDays No Yes Yes
Forward the message to the recipient list specified in the SendRuleAction.Recipients property olRuleActionForward Yes Yes No
Forward the message as an attachment to the recipient list specified in the SendRuleAction.Recipients property olRuleActionForwardAsAttachment Yes Yes No
Mark the message with the specified Importance olRuleActionImportance No Yes Yes
Mark message as a task for followup using the FlagTo and MarkInterval properties of the MarkAsTaskRuleAction object olRuleActionMarkAsTask Yes Yes No
Mark as read olRuleActionMarkRead No Yes No
Move the message to the folder specified in the MoveOrCopyRuleAction.Folder property olRuleActionMoveToFolder Yes Yes No
Display the message specified in the NewItemAlertRuleAction.Text property olRuleActionNewItemAlert Yes Yes No
Notify that the message has been delivered olRuleActionNotifyDelivery Yes No Yes
Notify that the message has been read olRuleActionNotifyRead Yes No Yes
Play the .wav file specified in the PlaySoundRuleAction.FilePath property olRuleActionPlaysound Yes Yes No
Print the message to the default printer olRuleActionPrint No Yes No
Redirect the message to the recipient list specified in the SendRuleAction.Recipients property olRuleActionRedirect Yes Yes No
Start a script olRuleActionRunScript No Yes No
Mark the message with the specified sensitivity olRuleActionSensitivity No No Yes
Have server reply using the specified message olRuleActionServerReply No Yes No
Start an .exe olRuleActionStartApplication No Yes No
Stop processing more rules olRuleActionStop Yes Yes Yes
Reply using the specified template (.oft) file olRuleActionTemplate No Yes No
Unrecognized rule action olRuleActionUnknown No Yes No

See Also