Compartir a través de


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:

  1. 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.

  2. Use Store.GetRules para obtener un conjunto de todas las reglas de la sesión actual.

  3. 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.

  4. 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 de Dan Wilson.

  5. 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".

  6. 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".

  7. 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.