Я написал программу, которая создает правила для фильтрации сообщений и навигации по ним в папке. Я создал папку с именем субъекта «abcd» в папке «Входящие». Затем я создам правило с именем «abcd», которое скажет, что любое электронное письмо, имеющее тему «abcd», должно идти в папку «abcd». Я выполнил всю функцию, но это правило не будет работать каждый раз. Но если я создаю правило вручную, оно работает. что я тут делаю не так
Sub CreateRule(subject)
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
Set oInbox = Application.Session.GetDefaultFolder(olFolderInbox)
Set oMoveTarget = oInbox.Folders(subject)
Set colRules = Application.Session.DefaultStore.GetRules()
Dim check_rule As Boolean
check_rule = False
Dim rlRules As rule
For Each rlRules In colRules
If Not rlRules.Actions.MoveToFolder.Folder Is Nothing Then
If rlRules.Actions.MoveToFolder.Folder = subject Then
check_rule = True
End If
End If
Next
'Create the rule by adding a Receive Rule to Rules collection
If check_rule = False Then
Set oRule = colRules.Create(subject, olRuleReceive)
Set oMoveRuleAction = oRule.Actions.MoveToFolder
With oMoveRuleAction
.Enabled = True
.Folder = oMoveTarget
End With
Set oConditionSubject = oRule.Conditions.subject
With oConditionSubject
.Enabled = True
.text = Array(subject)
End With
colRules.Save
End If
End Sub