При использовании outlook 2010 и Gmail / IMAP использование правила для перемещения сообщения в папку также помечает его как прочитанное. Есть предыдущий вопрос по этой теме, но нет ответов, которые мне подходят. Первый ответ говорит, что это не должно происходить (неправильно при использовании gmail / IMAP), а второй предлагает вариант VBA, который, похоже, ничего не делает. Я попробовал этот код без удачи:

Sub unread(MyItem As MailItem) MyItem.unread = True End Sub

Любые предложения, кроме как не использовать Outlook с Gmail (который я хотел бы вариант)? Нужно ли переместить сообщение также с помощью vba?

РЕДАКТИРОВАТЬ: Нет, пометить как прочитанное не проверяется.

1 ответ1

0

Вы можете использовать предметы.ItemAdd событие

Как обрабатывать входящие сообщения в Microsoft Outlook

Код идет во встроенном модуле ThisOutlookSession.

Вы контролируете каждую папку отдельно!

Объявите объект коллекции Items для каждой папки WithEvents

Создайте экземпляр каждого объекта коллекции Items в обработчике события Application_Startup

Добавьте обработчик события ItemAdd для каждого объекта коллекции Items

Option Explicit

' Sample folder directly under the inbox
Private WithEvents SubfolderAItems As Items

' Sample folder directly under SubfolderA 
Private WithEvents SubfolderBItems As Items 

Private Sub Application_Startup()

    Dim objNS As NameSpace
    Set objNS = Application.Session

    ' instantiate objects declared WithEvents
    Set SubfolderAItems = objNS.GetDefaultFolder(olFolderInbox).Folders("SubfolderA").Items
    Set SubfolderBItems = objNS.GetDefaultFolder(olFolderInbox).Folders("SubfolderA").Folders("SubfolderB").Items

    Set objNS = Nothing

End Sub

' Note: Changes behaviour of dragging items into the folder as well.
Private Sub SubfolderAItems_ItemAdd(ByVal Item As Object)
    Item.unread = True
End Sub  

Private Sub SubfolderBItems_ItemAdd(ByVal Item As Object)
    Item.unread = True
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .