Specifying Rule Conditions

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 conditions.

Rule conditions for a rule are represented by a RuleConditions collection object. A RuleConditions object has properties that correspond to each commonly used rule condition in a rule. For example, if a rule specifies two conditions - the message is important and the subject contains certain words - then the Importance and Subject properties of the rule's RuleConditions collection object will return respective rule condition objects that are enabled (RuleCondition.Enabled is True). Conditions that are not specified in a rule will not be enabled in the corresponding RuleCondition object (RuleCondition.Enabled is False). Rule condition objects are represented by either the RuleCondition object or customized objects derived from the RuleCondition object. In the last example, the RuleConditions.Importance property will return an ImportanceRuleCondition object, and the RuleConditions.Subject property will return a TextRuleCondition object, both of which are derived from the RuleCondition object. The RuleCondition object and its derived objects have the ConditionType property that will indicate the type of the rule condition, for example, ImportanceRuleCondition.ConditionType will indicate the value olConditionImportance, and TextRuleCondition.ConditionType will indicate olConditionSubject.

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 a condition that the Rules object model supports for rules created by the Wizard but not for those created by the object model is messages of certain level of sensitivity. You can use the Wizard to create a rule specifying sensitivity as a condition. Using the Rules object model, you can enumerate this kind of rule in the Rules collection - for each rule in the Rules collection, enumerate its RuleConditions collection and look for an enabled rule condition for sensitivity. In code, this would mean for each rule in the Rules collection, enumerate RuleConditions.Item(Index) using the Index from 1 to RuleConditions.Count and look for an enabled condition with RuleCondition.ConditionType equal to olConditionSensitivity. You can also enable or disable such a rule condition in a rule. However, you cannot programmatically create a rule that specifies the olConditionSensitivity condition.

The following table lists all the rule conditions supported by the Rules and Alerts Wizard, and whether each rule condition is supported when creating a rule using the Rules object model. A rule condition 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 condition applies to rules with the olRuleReceive rule type or olRuleSend rule type, or both.

Note

You cannot enable or disable a rule condition of the type olConditionOtherMachine. This type of rule condition indicates that the rule can run only on a certain computer, but the current computer is not that computer. This happens when the rule is created on one computer and the rule condition olConditionLocalMachineOnly is enabled, indicating that the rule can run only on that computer. In certain cases, olConditionLocalMachine is automatically set as a result of enabling another rule condition such as olConditionAccount. When you run the same rule on another computer, the rule will show that the condition olConditionOtherMachine is enabled.

Condition

Constant in olRuleConditionType

Supported when creating new rules programmatically?

Apply to olRuleReceive rules?

Apply to olRuleSend rules?

Account is the account specified in AccountRuleCondition.Account.

olConditionAccount

Yes

Yes

Yes

Message is assigned any category.

olCondtionAnyCategory

Yes

Yes

Yes

Body contains words specified in TextRuleCondition.Text.

olConditionBody

Yes

Yes

Yes

Body or subject contains words specified by TextRuleCondition.Text.

olConditionBodyOrSubject

Yes

Yes

Yes

Message is assigned the category or categories specified in CategoryRuleCondition.Categories.

olConditionCategory

Yes

Yes

Yes

Message has my name in the Cc box.

olConditionCc

Yes

Yes

Message was received between x and y, where x and y are Integer values.

olConditionDateRange

No

Yes

Yes

Message is flagged for the specified action.

olConditionFlaggedForAction

No

Yes

Yes

Message uses the form specified in FormNameRuleCondition.FormName.

olConditionFormName

Yes

Yes

Yes

Sender is in the recipient list specified in ToOrFromRuleCondition.Recipients.

olConditionFrom

Yes

Yes

No

Message is generated from any RSS subscription.

olCondtionFromAnyRssFeed

Yes

Yes

No

Message is generated from a specified RSS subscription.

olCondtionFromRssFeed

Yes

Yes

No

Message has an attachment.

olConditionHasAttachment

Yes

Yes

Yes

Message is marked with the specified level of importance.

olConditionImportance

Yes

Yes

Yes

Rule can run only on this machine.

olConditionLocalMachineOnly

Yes

Yes

Yes

Message is a meeting invitation or update.

olConditionMeetingInviteOrUpdate

Yes

Yes

Yes

Message header contains words specified in TextRuleCondition.Text.

olConditionMessageHeader

Yes

Yes

No

Message does not have my name in the To box.

olConditionNotTo

Yes

Yes

No

Message is sent only to me.

olConditionOnlyToMe

Yes

Yes

No

Message is an out-of-office message.

olConditionOOF

No

Yes

No

Rule can run only on a specific machine that is not the current one.

olConditionOtherMachine

No

Yes

Yes

Document property is exactly, contains, or does not contain specified properties.

olConditionProperty

No

Yes

Yes

Recipient address contains words specified in TextRuleCondition.Text.

olConditionRecipientAddress

Yes

Yes

Yes

Sender address contains words specified in TextRuleCondition.Text.

olConditionSenderAddress

Yes

Yes

No

Sender is in the address list specified in AddressRuleCondition.Address.

olConditionSenderInAddressBook

Yes

Yes

No

Message is marked with the specified level of sensitivity.

olConditionSensitivity

No

Yes

Yes

Sent to recipients (To, Cc) are in the recipient list specified in ToOrFromRuleCondition.Recipients.

olConditionSentTo

Yes

Yes

Yes

Message size is between x and y in units of KB, where x and y are Date values. For example, “10;50” sets the size condition between 10 and 50KB.

olConditionSizeRange

No

Yes

Yes

Subject contains words specified in TextRuleCondition.Text.

olConditionSubject

Yes

Yes

Yes

My name is in the To box.

olConditionTo

Yes

Yes

No

Message has my name in the To or Cc box.

olConditionToOrCc

Yes

Yes

No

Unrecognized rule condition.

olConditionUnknown

No

Yes

No