如果已读邮件未指定类别,则将其设置为未读

如果已读邮件未指定类别,则将其设置为未读

有没有办法让 Outlook 将没有分配任何类别的已读电子邮件重新设置为未读?

答案1

请尝试以下操作:

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确认了这一点)但我还没有检查这些电子邮件是否未读。

因此,在尝试之前您应该备份您的收件箱。

答案2

这很简单。只需创建自定义搜索文件夹,根据需要命名(例如,“未分类”),选择所需的文件夹,指定标准先进的选项卡如下:

场地:所有邮件字段 -> 类别
健康)状况:是空的

点击添加到列表然后好的,好的。

现在您可以选择此文件夹中的所有邮件并将其全部标记为未读。

相关内容