Outlook 2007 在 X 时间后自动删除特定类别的电子邮件

Outlook 2007 在 X 时间后自动删除特定类别的电子邮件

我收到两种电子邮件:讨论和通知。通知是针对代码更新、问题跟踪更新等内容自动生成的电子邮件。我设置了过滤器,为它们分配了“通知”类别。

我想无限期地保留讨论,因为你永远不知道什么时候可能需要六个月前的电子邮件中的信息。但是,通知是短暂的,没有必要让它们堵塞磁盘空间。

有没有办法让 Outlook 根据类别自动存档/自动删除/清除/过期/执行这些电子邮件的操作?

答案1

好的,我刚刚编写了我的第一个 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

(是的,可以更短 - 但我将其构建为可扩展的。)

笔记:

  1. 它会在标准收件箱中查找。如果您想要其他文件夹,则必须修改“设置收件箱”文件夹。要查看收件箱的子文件夹,请添加.Folders(“文件夹名称”)在行的末尾
  2. 目前,它会检查邮件是否具有“通知”类别。如果您想要其他类别,请将其插入到案件。只需将其改为小写,因为我将它们全部转换为小写 - 以确保万无一失。
  3. 目前,它会影响已发送 14 天或以上的邮件。请参阅如果日期差异线。
  4. 目前它实际上并没有删除,它只是显示一个通知。要使其真正起作用,您需要删除 Sub 底部附近的 MsgBox 并保留如下行:

        Case 1: item.Delete
    

您可能想看看这两个论坛帖子来了解详情...

相关内容