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:
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.Use Store.GetRules para obter um conjunto de todas as regras na sessão atual.
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.
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 é deDan Wilson
.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".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".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.