Bonjour,

J'ai créé un script vbscript pour ajouter un filtre outlook concernant du spam, afin de ne pas devoir le deployer à la main sur tous les postes.

Cependant alors que dans mes tests tout semblait fonctionner, en production certains utilisateurs rencontre des erreurs OUTLOOK : 80040201 et 8004010F impossible de trouver un objet.

L'erreur désigne la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
If colRules.item(i).Name = "X-Spam-Level: XXX" Then
Je me dis que l'objet Outlook.Application a besoin d'une bibliothèque ?

J'ai fais quelque recherches dessus et je n'ai pas trouvé, comme la programmation n'est pas mon domaine j'espère que vous pourrez m'aider. Merci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
'Ajoute un filtre à Outlook qui déplace les courriers ayant un marqueur x-spam-level minimum niveau 3 dans les indésirables
'Si le filtre existe, le script se ferme
 
 
Const olFolderInbox = 6
Const olFolderJunk = 23
 
strHeaderText = "X-Spam-Level: XXX"
 
Set objOutlook = CreateObject("Outlook.Application")
 
If Not (objOutlook Is Nothing) Then
 
    Set objSession = objOutlook.Session
    Set objFolderInbox = objSession.GetDefaultFolder(olFolderInbox)
    Set objFolderJunk = objSession.GetDefaultFolder(olFolderJunk)
 
    Set colRules = objSession.DefaultStore.GetRules()
 
	For i = 1 To colRules.Count
 
    If colRules.item(i).Name = "X-Spam-Level: XXX" Then
        WScript.Quit 1
	    End If
 
Next
	MsgBox "Creation du nouveau filtre X-SPAM-Level"
  	Set objRule = colRules.Create("X-Spam-Level: XXX", olRuleReceive)
 
    Set objConditionMessageHeader = objRule.Conditions.MessageHeader
    objConditionMessageHeader.Enabled = True
    objConditionMessageHeader.Text = Array(strHeaderText)
 
    Set objActionMoveToFolder = objRule.Actions.MoveToFolder
    objActionMoveToFolder.Enabled = True
    Set objActionMoveToFolder.Folder = objFolderJunk 
 
    objRule.Enabled = True
 
    colRules.Save
 
    Set objRule = Nothing
    Set colRules = Nothing
    Set objOutlook = Nothing
 
End If