当前位置:  开发笔记 > 编程语言 > 正文

从文件夹中删除重复的Outlook项目

如何解决《从文件夹中删除重复的Outlook项目》经验,为你挑选了1个好方法。

问题

    当我将项目从在线存档移动到pst文件时,Outlook 2016已损坏.

    PST文件已被恢复....但许多项目(~7000)重复5次

    有一系列项目类型,标准消息,会议请求等

我尝试了什么,我
看了现有的解决方案和工具,包括:

    重复删除工具 - 除了一次删除10个项目的试用选项之外,其中没有一个是免费的.

    各种代码解决方案包括:
    Jacob Hilderbrand 在Outlook中从Excel 宏运行
    以删除重复电子邮件的努力 -

我决定采用代码路由,因为它相对简单,并且可以更好地控制重复报告的方式.

我将在下面发布自己的解决方案,因为它可能会帮助其他人

我希望看到其他可能的方法(也许是PowerShell)来解决这个问题,这可能比我的更好.



1> brettdj..:

方法如下:

    为用户提供选择要处理的文件夹的提示

    Subject,Sender,CreationTimeSize的基础上检查重复项

    将任何重复项移动(而不是删除)到正在处理的文件夹的子文件夹(已删除项目)中.

    创建一个CSV文件 - 存储在路径下,StrPath以创建已移动电子邮件的Outlook外部参考.

更新:检查大小令人惊讶地错过了一些欺骗,即使是其他相同的邮件.我已将测试更改为subjectbody

在Outlook 2016上测试过

Const strPath = "c:\temp\deleted msg.csv"
Sub DeleteDuplicateEmails()

Dim lngCnt As Long
Dim objMail As Object
Dim objFSO As Object
Dim objTF As Object

Dim objDic As Object
Dim objItem As Object
Dim olApp As Outlook.Application
Dim olNS As NameSpace
Dim olFolder As Folder
Dim olFolder2 As Folder
Dim strCheck As String

Set objDic = CreateObject("scripting.dictionary")
Set objFSO = CreateObject("scripting.filesystemobject")
Set objTF = objFSO.CreateTextFile(strPath)
objTF.WriteLine "Subject"

Set olApp = Outlook.Application
Set olNS = olApp.GetNamespace("MAPI")
Set olFolder = olNS.PickFolder

If olFolder Is Nothing Then Exit Sub

On Error Resume Next
Set olFolder2 = olFolder.Folders("removed items")
On Error GoTo 0

If olFolder2 Is Nothing Then Set olFolder2 = olFolder.Folders.Add("removed items")


For lngCnt = olFolder.Items.Count To 1 Step -1

Set objItem = olFolder.Items(lngCnt)

strCheck = objItem.Subject & "," & objItem.Body & ","
strCheck = Replace(strCheck, ", ", Chr(32))

    If objDic.Exists(strCheck) Then
       objItem.Move olFolder2
       objTF.WriteLine Replace(objItem.Subject, ", ", Chr(32))
    Else
        objDic.Add strCheck, True
    End If
Next

If objTF.Line > 2 Then
    MsgBox "duplicate items were removed to ""removed items""", vbCritical, "See " & strPath & " for details"
Else
    MsgBox "No duplicates found"
End If
End Sub

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有