Установить прочитанное письмо как непрочитанное, если ему не назначена категория

227
Danial Hanafian

Можно ли как-то заставить Outlook настроить прочитанное письмо, для которого не назначены категории, обратно непрочитанным?

1

2 ответа на вопрос

0
Richard

Попробуйте следующее:

Public Sub Mark_Unread_If_No_Category()  Dim objNS As Outlook.NameSpace: Set objNS = GetNamespace("MAPI") Dim olFolder As Outlook.MAPIFolder: Set olFolder = objNS.GetDefaultFolder(olFolderInbox) Dim Item As Object  For Each Item In olFolder.Items If Item.Class = 43 Then ' 43 = an email Dim oMail As Outlook.MailItem: Set oMail = Item If oMail.Categories = "" Then Debug.Print "Marking as unread: " & oMail.Subject oMail.UnRead = True oMail.Save End If Set oMail = Nothing End If DoEvents ' So Outlook doesn't lock up whilst running Next  Set olFolder = Nothing Set objNS = Nothing  End Sub 

Я знаю, что он правильно выглядит в папке «Входящие» и правильно находит электронные письма без категорий (это Debug.Printподтверждает), однако я не проверял, чтобы эти письма стали непрочитанными.

В результате вы должны сделать резервную копию своего почтового ящика, прежде чем начать.

Спасибо за ответ, как вы можете настроить это, чтобы сделать это только для одной определенной папки или входящей почты? Danial Hanafian 6 лет назад 0
Предполагая, что ваша папка (скажем, «Отчеты TPS») находится в папке «Входящие», вы должны изменить `objNS.GetDefaultFolder (olFolderInbox)` на `objNS.GetDefaultFolder (olFolderInbox) .Folders (« Отчеты TPS »)` Richard 6 лет назад 0
0
thims

Это довольно просто. Просто создайте пользовательскую папку поиска, назовите ее по своему вкусу (скажем, «Не классифицируйте»), выберите нужные папки, укажите критерии на вкладке « Дополнительно » следующим образом:

Поле: Все почтовые поля -> Категории
Состояние: пусто

Нажмите Добавить в список, а затем ОК, ОК.

Теперь вы можете выбрать все сообщения в этой папке и пометить их как непрочитанные.