Criar uma regra para mover emails específicos para uma pasta

Este tópico mostra um exemplo de código no VBA (Visual Basic for Applications) que usa o modelo de objeto Rules para criar uma regra. O exemplo de código usa os objetos RuleAction e RuleCondition para especificar uma regra que move mensagens de um remetente específico para uma pasta específica, a menos que a mensagem contenha determinados termos no assunto. Observe que o exemplo de código supõe que já há uma pasta chamada "Dan" na Caixa de Entrada.

A seguir, as etapas usadas para criar a regra:

  1. Especifique a pasta oMoveTarget de destino para mover mensagens específicas conforme determinado pela condição de condição e exceção. A pasta de destino é uma subpasta chamada "Dan" sob a Caixa de Entrada e supõe-se que ela ainda existe.

  2. Use Store.GetRules para obter um conjunto de todas as regras na sessão atual.

  3. Usando a coleção Regras retornada da última etapa, use Rules.Create para adicionar uma nova regra. A nova regra especifica alguma ação no recebimento de uma mensagem e, portanto, é do tipo olRuleReceive.

  4. Usando o objeto Rule retornado da última etapa, use a propriedade RuleConditions.From para obter um objeto ToOrFromRuleCondition , oFromCondition. oFromCondition especifica a condição da regra: quando uma mensagem é de Dan Wilson.

  5. Usando o mesmo objeto Rule , use a propriedade RuleActions.MoveToFolder para obter um objeto MoveOrCopyRuleAction , oMoveRuleAction. oMoveRuleAction especifica a ação para a regra: mover a mensagem para a pasta de destino "Dan".

  6. Usando o mesmo objeto Rule , use a propriedade RuleConditions.Subject para obter um objeto TextRuleCondition , oExceptSubject. oExceptSubject especifica a condição de exceção: se o assunto contiver os termos "diversão" ou "chat", não aplique a regra para mover a mensagem para a pasta "Dan".

  7. Use Rules.Save para salvar a nova regra junto com o restante das regras do repositório atual.

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 

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.