Partager via


Créer une règle pour déplacer des e-mails spécifiques vers un dossier

Cette rubrique présente un exemple de code en Visual Basic pour Applications (VBA) qui utilise le modèle objet Rules pour créer une règle. L’exemple de code utilise les objets RuleAction et RuleCondition pour spécifier une règle qui déplace les messages d’un expéditeur spécifique vers un dossier spécifique, sauf si le message contient certains termes dans l’objet. Notez que dans l’exemple présenté, on suppose qu’un dossier « Dan » existe déjà dans la Boîte de réception.

Les étapes présentées ci-après permettent de créer cette règle.

  1. Spécifiez le dossier oMoveTarget cible pour déplacer des messages spécifiques en fonction de la condition et de la condition d’exception. Le dossier cible est un sous-dossier nommé « Dan » sous la boîte de réception et est supposé exister.

  2. Utilisez Store.GetRules pour obtenir un ensemble de toutes les règles de la session active.

  3. À l’aide de la collection Rules retournée à la dernière étape, utilisez Rules.Create pour ajouter une nouvelle règle. La nouvelle règle spécifie certaines actions à effectuer lors de la réception d’un message, elle est donc de type olRuleReceive.

  4. À l’aide de l’objet Rule retourné à la dernière étape, utilisez la propriété RuleConditions.From pour obtenir un objet ToOrFromRuleCondition , oFromCondition. oFromCondition spécifie la condition pour la règle : lorsqu’un message provient de Dan Wilson.

  5. À l’aide du même objet Rule , utilisez la propriété RuleActions.MoveToFolder pour obtenir un objet MoveOrCopyRuleAction , oMoveRuleAction. oMoveRuleAction spécifie l’action de la règle : déplacer le message vers le dossier cible « Dan ».

  6. À l’aide du même objet Rule , utilisez la propriété RuleConditions.Subject pour obtenir un objet TextRuleCondition , oExceptSubject. oExceptSubject spécifie la condition d’exception : si l’objet contient les termes « fun » ou « chat », n’appliquez pas la règle pour déplacer le message vers le dossier « Dan ».

  7. Utilisez Rules.Save pour enregistrer la nouvelle règle avec le reste des règles du magasin actuel.

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 

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.