Поделиться через


Создание правила для перемещения определенных электронных писем в папку

В этом разделе показан пример кода в Visual Basic для приложений (VBA), в котором для создания правила используется объектная модель Rules. В примере кода используются объекты RuleAction и RuleCondition для указания правила, перемещающего сообщения от определенного отправителя в определенную папку, если сообщение содержит в теме определенные термины. Обратите внимание, что пример кода предполагает, что папка с именем "Dan" уже существует в папке "Входящие".

Ниже описаны этапы создания правила:

  1. Укажите целевую папку oMoveTarget для перемещения определенных сообщений в соответствии с условием и условием исключения. Целевая папка — это папка с именем "Dan" в папке "Входящие". Предполагается, что она уже существует.

  2. Используйте Store.GetRules , чтобы получить набор всех правил в текущем сеансе.

  3. Используя коллекцию Rules , возвращенную на последнем шаге, используйте Rules.Create , чтобы добавить новое правило. Новое правило задает действия, выполняемые после получения сообщения, поэтому имеет тип olRuleReceive.

  4. Используя объект Rule , возвращенный на последнем шаге, используйте свойство RuleConditions.From , чтобы получить объект ToOrFromRuleCondition , oFromCondition. oFromCondition определяет условие для правила: если отправитель сообщения — Dan Wilson.

  5. Используя тот же объект Rule , используйте свойство RuleActions.MoveToFolder для получения объекта MoveOrCopyRuleAction , oMoveRuleAction. oMoveRuleAction указывает действие для правила: переместить сообщение в целевую папку "Dan".

  6. Используя тот же объект Rule , используйте свойство RuleConditions.Subject для получения объекта TextRuleCondition , oExceptSubject. oExceptSubject указывает условие исключения: если тема содержит термины "fun" или "chat", то не применяйте правило для перемещения сообщения в папку "Dan".

  7. Используйте rules.Save , чтобы сохранить новое правило вместе с остальными правилами для текущего хранилища.

Sub CreateRule() 
    Dim colRules As Outlook.Rules 
    Dim oRule As Outlook.Rule 
    Dim colRuleActions As Outlook.RuleActions 
    Dim oMoveRuleAction As Outlook.MoveOrCopyRuleAction 
    Dim oFromCondition As Outlook.ToOrFromRuleCondition 
    Dim oExceptSubject As Outlook.TextRuleCondition 
    Dim oInbox As Outlook.Folder 
    Dim oMoveTarget As Outlook.Folder 
 
    'Specify target folder for rule move action 
    Set oInbox = Application.Session.GetDefaultFolder(olFolderInbox) 
    'Assume that target folder already exists 
    Set oMoveTarget = oInbox.Folders("Dan") 
     
    'Get Rules from Session.DefaultStore object 
    Set colRules = Application.Session.DefaultStore.GetRules() 
     
    'Create the rule by adding a Receive Rule to Rules collection 
    Set oRule = colRules.Create("Dan's rule", olRuleReceive) 
 
    'Specify the condition in a ToOrFromRuleCondition object 
    'Condition is if the message is from "Dan Wilson" 
    Set oFromCondition = oRule.Conditions.From 
    With oFromCondition 
        .Enabled = True 
        .Recipients.Add ("Dan Wilson") 
        .Recipients.ResolveAll 
    End With 
 
    'Specify the action in a MoveOrCopyRuleAction object 
    'Action is to move the message to the target folder 
    Set oMoveRuleAction = oRule.Actions.MoveToFolder 
    With oMoveRuleAction 
        .Enabled = True 
        .Folder = oMoveTarget 
    End With 
 
    'Specify the exception condition for the subject in a TextRuleCondition object 
    'Exception condition is if the subject contains "fun" or "chat" 
    Set oExceptSubject = _ 
        oRule.Exceptions.Subject 
    With oExceptSubject 
        .Enabled = True 
        .Text = Array("fun", "chat") 
    End With 
 
    'Update the server and display progress dialog 
    colRules.Save 
End Sub 

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.