Comment filtrer les e-mails Outlook en utilisant une règle avec un script VBA ?
J’ai cherché partout toutes les parties nécessaires pour faire fonctionner ce simple filtre. Les filtres procmail sous Unix sont tellement plus faciles à utiliser en comparaison. Tous les assistants de Microsoft Outlook se mettent en travers d’un simple filtre utilisant des caractères génériques. Bien que de nombreuses conditions de filtrage d’e-mails que Microsoft fournit par défaut soient utiles, rien ne peut battre la flexibilité et la personnalisation de l’exécution de code.
- Écrivez votre code.
Alt-F11 ouvre l’éditeur de code VBA. Double-cliquez sur ThisOutlookSession. Écrivez votre code. Dans mon cas, il utilise une expression régulière sur la ligne d’objet et déplace le message non pas vers le dossier par défaut mais vers mon propre fichier PST dans un sous-dossier.
Sub filter(Item As Outlook.MailItem)
Dim ns As Outlook.NameSpace
Dim MailDest As Outlook.Folder
Set ns = Application.GetNamespace("MAPI")
Set Reg1 = CreateObject("VBScript.RegExp")
Reg1.Global = True
Reg1.Pattern = "(.*Abc.20.*)"
If Reg1.Test(Item.Subject) Then
Set MailDest = ns.Folders("Personal Folders").Folders("one").Folders("a")
Item.Move MailDest
End If
End Sub
- Exécutez le code pour chaque e-mail entrant avec une règle.
Sous les règles, sélectionnez « Gérer les règles et les alertes… ». La nouvelle règle ressemblera à
Apply this rule after the message arrives run Project1.ThisOutlookSession.filter
Pour obtenir cela, pour Étape 1 : Sélectionner la ou les conditions : cliquez simplement sur Suivant. Confirmez que cela s’applique à tous les messages en cliquant sur OK. Pour Sélectionner la ou les actions, cochez « exécuter un script » puis cliquez pour choisir le script de filtre et sélectionnez Suivant ou Terminer. Pour Sélectionner la ou les exceptions, cliquez sur Suivant ou Terminer. Donnez-lui un bon nom comme vba-filter et cochez Activer cette règle. Cliquez sur Terminer. Comme cela copie vers un dossier local, cliquez sur OK lorsqu’il vous demande de confirmer que cette règle ne fonctionnera pas pour les e-mails que vous consultez en ligne ou depuis un autre appareil. Cliquez sur OK dans la boîte de dialogue Règles et alertes.
- Outlook n’aime pas quand les macros ne sont pas signées. Pour auto-signer vos macros, créez un certificat et utilisez-le.