我收到两种电子邮件:讨论和通知。通知是针对代码更新、问题跟踪更新等内容自动生成的电子邮件。我设置了过滤器,为它们分配了“通知”类别。
我想无限期地保留讨论,因为你永远不知道什么时候可能需要六个月前的电子邮件中的信息。但是,通知是短暂的,没有必要让它们堵塞磁盘空间。
有没有办法让 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
(是的,可以更短 - 但我将其构建为可扩展的。)
笔记:
- 它会在标准收件箱中查找。如果您想要其他文件夹,则必须修改“设置收件箱”文件夹。要查看收件箱的子文件夹,请添加.Folders(“文件夹名称”)在行的末尾
- 目前,它会检查邮件是否具有“通知”类别。如果您想要其他类别,请将其插入到案件。只需将其改为小写,因为我将它们全部转换为小写 - 以确保万无一失。
- 目前,它会影响已发送 14 天或以上的邮件。请参阅如果日期差异线。
目前它实际上并没有删除,它只是显示一个通知。要使其真正起作用,您需要删除 Sub 底部附近的 MsgBox 并保留如下行:
Case 1: item.Delete
您可能想看看这两个论坛帖子来了解详情...