Defina a mensagem lida como não lida se eles não tiverem a categoria atribuída

1

Existe alguma maneira de fazer com que o Outlook defina o email lido que não tem categorias atribuídas a ele de volta para não-lidas?

    
por Danial Hanafian 15.01.2018 / 16:50

2 respostas

0

Tente o seguinte:

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

Sei que ele procura corretamente na caixa de entrada e encontra corretamente os emails sem as categorias (o Debug.Print confirma isso), mas não verifiquei se esses emails não foram lidos.

Como resultado, você deve fazer backup da sua caixa de entrada antes de tentar.

    
por 15.01.2018 / 18:38
0

Isso é bem fácil. Basta criar uma Pasta de pesquisa personalizada , nomeá-la como quiser (digamos, "Não categorizado"), selecione a (s) pasta (s) exigida (s) e especifique Critérios no Avançado aba da seguinte forma:

Campo: Todos os campos de correio - > Categorias
Condição: está vazio

Clique em Adicionar à lista e, em seguida, em OK.

Agora você pode selecionar todas as mensagens nesta pasta e marcá-las como Não lidas.

    
por 25.01.2018 / 18:16