通过vbs硬删除Exchange规则

时间:2015-07-08 08:14:00

标签: vbscript exchange-server mapi outlook-redemption

我正在尝试从交换中删除OOF规则。以下是vbs脚本

Set objsession = CreateObject("MAPI.session")
objsession.Logon "", "", False, False, 0, True, server & vbLf & mailbox
Set objInbox = objsession.Inbox
Set objHidden = objInbox.HiddenMessages
For i= 1 To objHidden.Count
Set objRule = objHidden.Item(i)
...Validation if the item actually is an oof-rule...
objRule .Item(i).Delete 

这适用于某些规则。但是,在大多数情况下,我在最后一行收到错误:" MAPI_W_PARTIAL_COMPLETION(40680)"

我在MFCMAPI中尝试了同样的操作,并在删除规则时收到了相同的错误消息。但是,如果我选择"永久删除传递DELETE_HARD_DELETE",它可以正常工作......

所以我的问题是:如何在vbs中传递Delete_hard_delete标志? 这甚至可能吗?

作为替代方案,我还可以使用其他编程语言和/或兑换

更新: 它适用于Redemption ...默认情况下,Redemption会传递该Flag。

了Vbs-代码:

Const olFolderInbox = 6
set Session = CreateObject("Redemption.RDOSession")
Session.LogonHostedExchangeMailbox _
"targetmailbox", _ 
"user", _ 
"password"
set Rules = Session.Stores.DefaultStore.Rules 
for each Rule in Rules
  Rule.Delete
next

1 个答案:

答案 0 :(得分:1)

赎回通过RDOExchangeMailboxStore.Rules集合公开规则。

如果要使用DELETE_HARD_DELETE标志,RDOMail.Delete将使用可选参数(redDeleteFlags)。其中一个枚举值是dfHardDelete(2)。