Ok, acabei de escrever minha primeira macro do Outlook - por isso, não me culpe se excluir todos os seus e-mails. Backup antes de tentar! :)
No Outlook, vá para Ferramentas > Macros > Macro . Digite o nome que você deseja dar a macro. Eu nomeei o meu "Delete_Old_Notifications".
Aqui está o código de macro que escrevi:
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
(Pode ser mais curto, sim - mas eu o construí para ser extensível.)
Notas:
- Parece na caixa de entrada padrão. Se você quiser outra pasta, você tem que modificar a pasta "Definir caixa de entrada". Para procurar nas subpastas da caixa de entrada, adicione .Folders ("foldername") no final da linha
- Atualmente, verifica se o e-mail tem uma categoria "notificação". Se você quiser outra categoria, insira-a no Caso . Apenas deixe-a em letras minúsculas porque eu as converto todas em minúsculas - só para ter certeza.
- Atualmente, afeta os e-mails com uma idade de 14 dias ou mais. Veja isso na linha If DateDiff .
-
Atualmente, na verdade, ele não é excluído, apenas mostra uma notificação. Para fazê-lo realmente funcionar você precisa remover o MsgBox perto da parte inferior do Sub e manter a linha assim:
Case 1: item.Delete
Você pode querer ver esses dois posts no fórum para descobrir ...