指定规则操作
Rules 对象模型支持最常用的规则操作和条件。 每个 Rule 对象都有一个 Actions 属性,该属性表示该规则的规则操作,以及一个 Conditions 属性和一个 Exceptions 属性,表示该规则的条件。 本主题说明 Rules 对象模型如何支持规则操作。
规则的规则操作由 RuleActions 集合对象表示。 对于规则中的每个常用规则操作,RuleActions 对象都有与之对应的属性。 例如,如果规则指定了两个操作(将邮件移动到特定文件夹并播放声音),则规则的 RuleActions 集合对象的 MoveToFolder 和 PlaySound 属性将返回相应的规则操作对象,这些对象 (RuleAction.Enabled 为 True) 。
对应的 RuleAction 对象中将不启用规则中未指定的操作(RuleAction.Enabled 为 False)。 这些规则操作对象由 \ RuleAction 对象或派生自 RuleAction 对象的自定义对象表示。 在最后一个示例中,具体来说, RuleActions.MoveToFolder 属性将返回 MoveOrCopyRuleAction 对象, RuleActions.PlaySound 属性将返回 一个 PlaySoundRuleAction 对象,这两个对象都派生自 RuleAction 对象。 RuleAction 对象及其派生对象都具有 ActionType 属性,该属性将指示规则操作的类型。 例如, MoveOrCopyRuleAction.ActionType 将指示值 olRuleActionMoveToFolder, 而 PlaySoundRuleAction.ActionType 将指示 olRuleActionPlay。
注意
Rules 对象模型与“规则和警报向导”保持部分奇偶一性。 这意味着,在您可以使用该向导来创建用于指定您在该向导中看到的任何操作和条件的规则时,您也可以用编程方式创建使用其中一部分(而非全部)操作和条件的规则。 以请求服务器答复这个操作为例,Rules 对象模型支持对该向导创建的规则使用这一操作,但不支持对该对象模型创建的那些规则使用它。 使用向导创建规则,将特定服务器答复指定为操作。
使用 Rules 对象模型,可以在 Rules 集合中枚举这些类型的规则 - 对于 Rules 集合中的每个规则,枚举其 RuleActions 集合,并为服务器回复查找已启用的规则操作。 在代码中,这意味着对于 Rules 集合中的每个规则,使用 Index 1 到 RuleActions.Count 枚举 RuleActions.Item (Index) ,并查找 ActionType 等于 olRuleActionServerReply 的已启用操作。 您还可以在规则中启用或禁用这样的规则操作。 但是,不能以编程方式创建指定 olRuleActionServerReply 操作的规则。
下表列出了规则和警报向导支持的所有规则操作,以及使用 Rules 对象模型创建规则时是否支持每个规则操作。 规则对象模型创建的规则中不支持的规则操作,仅支持编程枚举,并在规则和警报向导创建的现有规则中启用或禁用。 该表还说明了规则操作是否适用于规则类型为 olRuleReceive 或/和 olRuleSend 的规则。
操作 | olRuleActionType 中的常量 | 以编程方式创建新规则时是否受支持? | 是否适用于 olRuleReceive 规则? | 是否适用于 olRuleSend 规则? |
---|---|---|---|---|
将消息分配给 AssignToCategoryRuleAction.Categories 属性中指定的类别 | olRuleActionAssignToCategory | 是 | 是 | 是 |
将邮件抄送到 SendRuleAction.Recipients 属性中指定的收件人列表 | olRuleActionCcMessage | 是 | 否 | 是 |
清除邮件的所有类别。 | olRuleActionClearCategories | 是 | 是 | 是 |
将邮件复制到 MoveOrCopyRuleAction.Folder 属性中指定的文件夹 | olRuleActionCopyToFolder | 是 | 是 | 是 |
运行自定义操作 | olRuleActionCustomAction | 否 | 是 | 是 |
将传递推迟指定的分钟数 | olRuleActionDefer | 否 | 否 | 是 |
删除邮件 | olRuleActionDelete | 是 | 是 | 否 |
永久删除邮件 | olRuleActionDeletePermanently | 是 | 是 | 否 |
显示桌面通知 | olRuleActionDesktopAlert | 是 | 是 | 否 |
清除邮件标志 | olRuleActionFlagClear | 否 | 是 | 否 |
用指定的颜色标志邮件 | olRuleActionFlagColor | 否 | 是 | 否 |
将邮件标志为在指定的天数内操作 | olRuleActionFlagForActionInDays | 否 | 是 | 是 |
将邮件转发到在 SendRuleAction.Recipients 属性中指定的收件人列表 | olRuleActionForward | 是 | 是 | 否 |
将邮件作为附件转发到在 SendRuleAction.Recipients 属性中指定的收件人列表 | olRuleActionForwardAsAttachment | 是 | 是 | 否 |
按指定的重要性标记邮件 | olRuleActionImportance | 否 | 是 | 是 |
使用 MarkAsTaskRuleAction 对象的 FlagTo 和 MarkInterval 属性将邮件标记为后续任务 | olRuleActionMarkAsTask | 是 | 是 | 否 |
标记为已读 | olRuleActionMarkRead | 否 | 是 | 否 |
将邮件移动到 oveOrCopyRuleAction.Folder 属性中指定的文件夹 | olRuleActionMoveToFolder | 是 | 是 | 否 |
显示 NewItemAlertRuleAction.Text 属性中指定的消息 | olRuleActionNewItemAlert | 是 | 是 | 否 |
通知邮件已被送达 | olRuleActionNotifyDelivery | 是 | 否 | 是 |
通知邮件已被阅读 | olRuleActionNotifyRead | 是 | 否 | 是 |
播放 PlaySoundRuleAction.FilePath 属性中指定的 .wav 文件 | olRuleActionPlaysound | 是 | 是 | 否 |
将邮件打印到默认打印机 | olRuleActionPrint | 否 | 是 | 否 |
将邮件重定向到在 SendRuleAction.Recipients 属性中指定的收件人列表 | olRuleActionRedirect | 是 | 是 | 否 |
启动脚本 | olRuleActionRunScript | 否 | 是 | 否 |
按指定的敏感度标记邮件 | olRuleActionSensitivity | 否 | 否 | 是 |
使服务器用指定邮件进行答复 | olRuleActionServerReply | 否 | 是 | 否 |
启动 .exe | olRuleActionStartApplication | 否 | 是 | 否 |
停止处理更多规则 | olRuleActionStop | 是 | 是 | 是 |
使用指定的模板 (.oft) 文件进行答复 | olRuleActionTemplate | 否 | 是 | 否 |
无法识别的规则操作 | olRuleActionUnknown | 否 | 是 | 否 |
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。