使用VBA永久删除Outlook中的MailMessage?

eid*_*lon 8 outlook vba message outlook-vba

我正在寻找一种方法来永久删除带有VBA代码的Outlook 2000中的MailMessage.我想这样做,而不必做第二个循环来清空已删除的项目.

本质上,我正在寻找一个等同于点击消息和点击SHIFT+ 的UI方法的代码DELETE.

有这样的事吗?

76m*_*mel 12

尝试先移动它然后删除它(适用于2000年的某些补丁)或使用RDO或CDO为你完成工作(你必须安装它们)

  Set objDeletedItem = objDeletedItem.Move(DeletedFolder)
  objDeletedItem.Delete
Run Code Online (Sandbox Code Playgroud)

CDO方式

Set objCDOSession = CreateObject("MAPI.Session")
objCDOSession.Logon "", "", False, False
Set objMail = objCDOSession.GetMessage(objItem.EntryID, objItem.Parent.StoreID)
objMail.Delete
Run Code Online (Sandbox Code Playgroud)

RDO

set objRDOSession = CreateObject("Redemption.RDOSession")
objRDOSession.MAPIOBJECT = objItem.Session.MAPIOBJECT 
set objMail = objRDOSession.GetMessageFromID(objItem.EntryID>)
objMail.Delete
Run Code Online (Sandbox Code Playgroud)

您还可以在删除邮件之前先将邮件标记,然后循环显示已删除邮件文件夹,然后再次将邮件删除.使用Userproperty标记它.

objMail.UserProperties.Add "Deleted", olText
objMail.Save
objMail.Delete
Run Code Online (Sandbox Code Playgroud)

循环浏览已删除的项目,查找该userprop

 Set objDeletedFolder = myNameSpace.GetDefaultFolder(olFolderDeletedItems)
    For Each objItem In objDeletedFolder.Items
        Set objProperty = objItem.UserProperties.Find("Deleted")
        If TypeName(objProperty) <> "Nothing" Then
            objItem.Delete
        End If
    Next
Run Code Online (Sandbox Code Playgroud)