Crear una regla para mover correos electrónicos específicos a una carpeta
En este tema se muestra un ejemplo de código en Visual Basic para Aplicaciones (VBA) que usa el modelo de objetos Rules para crear una regla. En el ejemplo de código se usan los objetos RuleAction y RuleCondition para especificar una regla que mueve los mensajes de un remitente específico a una carpeta concreta, a menos que el mensaje contenga determinados términos en el asunto. Observe que en el ejemplo de código se supone que ya existe una carpeta denominada "Dan" en la Bandeja de entrada.
A continuación se describen los pasos necesarios para crear la regla:
Especifique la carpeta
oMoveTarget
de destino para mover mensajes específicos determinados por la condición y la condición de excepción. La carpeta de destino es la subcarpeta denominada "Dan" bajo la Bandeja de entrada y se supone que ya existe.Use Store.GetRules para obtener un conjunto de todas las reglas de la sesión actual.
Con la colección Rules devuelta desde el último paso, use Rules.Create para agregar una nueva regla. La nueva regla especifica alguna acción al recibir un mensaje, por lo que es del tipo olRuleReceive.
Con el objeto Rule devuelto desde el último paso, use la propiedad RuleConditions.From para obtener un objeto ToOrFromRuleCondition ,
oFromCondition
.oFromCondition
especifica la condición de la regla: cuando un mensaje procede deDan Wilson
.Con el mismo objeto Rule , use la propiedad RuleActions.MoveToFolder para obtener un objeto MoveOrCopyRuleAction ,
oMoveRuleAction
.oMoveRuleAction
especifica la acción de la regla: mover el mensaje a la carpeta de destino denominada "Dan".Con el mismo objeto Rule , use la propiedad RuleConditions.Subject para obtener un objeto TextRuleCondition ,
oExceptSubject
.oExceptSubject
especifica la condición de excepción: si el asunto contiene los términos "fun" o "chat", no aplique la regla para mover el mensaje a la carpeta "Dan".Use Rules.Save para guardar la nueva regla junto con el resto de las reglas del almacén actual.
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
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.