O Outlook 2007 elimina automaticamente os e-mails em uma determinada categoria após a duração de X

1

Eu recebo dois tipos de e-mail: Discussão e Notificações. Notificações são e-mails gerados automaticamente para coisas como atualizações de código, atualizações de rastreamento de problemas e assim por diante. Eu tenho filtros configurados que dão a eles uma categoria de "Notificação".

Eu quero manter as discussões indefinidamente, já que você nunca sabe quando pode precisar das informações de um e-mail seis meses atrás. Mas, as notificações são efêmeras e não há necessidade de que elas obstruam o espaço em disco.

Existe uma maneira de fazer com que o arquivamento automático do Outlook / auto-excluir / eliminar / expirar / seja qual for esses e-mails com base na categoria?

    
por Max Cantor 16.02.2011 / 20:40

1 resposta

1

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:

  1. 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
  2. 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.
  3. Atualmente, afeta os e-mails com uma idade de 14 dias ou mais. Veja isso na linha If DateDiff .
  4. 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 ...

por 15.12.2011 / 14:38