Хорошо, я только что написал свой первый макрос Outlook - так что не вините меня, если он удаляет все ваши письма. Сделайте резервную копию, прежде чем пытаться! :)
В Outlook перейдите в Инструменты> Макросы> Макрос. Введите имя, которое вы хотите дать макросу. Я назвал мой "Delete_Old_Notifications".
Вот код макроса, который я написал:
Sub Delete_Old_Notification()
Dim ns As Outlook.NameSpace
Set ns = Application.GetNamespace("MAPI")
Dim inbox As Outlook.MAPIFolder
Set inbox = ns.GetDefaultFolder(olFolderInbox)
Dim item As Object 'Outlook.MailItem
Dim Action As Integer
Dim Categories, Category
Action = 0
For Each item In inbox.Items
If Len(item.Categories & "") > 0 Then
Categories = Split(item.Categories, ";")
For Each Category In Categories
Select Case LCase(Trim(Category))
Case "notification":
If DateDiff("d", item.ReceivedTime, Now) > 14 Then
Action = 1
End If
End Select
Next
End If
Select Case Action
Case 1: MsgBox ("Delete '" & item.Subject & "'") 'item.Delete
End Select
Action = 0
Next
End Sub
(Может быть короче, да - но я построил его, чтобы быть расширяемым.)
Заметки:
- Это выглядит в стандартном почтовом ящике. Если вы хотите другую папку, вы должны изменить папку "Установить входящие". Чтобы посмотреть в подпапках папки "Входящие", добавьте .Папки ("foldername") в конце строки
- В настоящее время он проверяет, есть ли у почты категория "уведомление". Если вы хотите другую категорию, вставьте это в дело. Просто сделайте это строчными буквами, потому что я конвертирую их все в строчные буквы - просто чтобы быть уверенным.
- В настоящее время это влияет на почту в возрасте от 14 дней и выше. Смотрите это в строке If DateDiff.
В настоящее время он на самом деле не удаляется, он просто показывает уведомление. Чтобы это действительно заработало, вам нужно удалить MsgBox в нижней части Sub и сохранить строку так:
Case 1: item.Delete
Возможно, вы захотите посмотреть на эти два сообщения на форуме, чтобы узнать ...