如何使用RDOJunkEmailOptions删除Outlook中的阻止发件人?
解决RDOJunkEmailOptions批量/逐个删除阻止发件人的问题
逐个删除的正确实现
你尝试的Remove方法方向正确,但要注意Redemption的RDOBlockedSenderAddresses集合没有Clear或Delete方法,正确的逐个删除代码如下:
Dim oJunkOpt As RDOJunkEmailOptions Dim lCtr As Long Set oJunkOpt = '替换为你的RDOJunkEmailOptions实例 '从后往前遍历,避免删除元素后索引偏移 For lCtr = oJunkOpt.BlockedSenders.Count To 1 Step -1 oJunkOpt.BlockedSenders.Remove lCtr Next lCtr oJunkOpt.Save '保存更改
执行前请确保已正确关联到目标RDOAccount的JunkEmailOptions对象。
批量清空的高效方案
如果要快速清空整个列表,无需遍历,直接修改对应的MAPI属性即可。阻止发件人列表存储在PR_BLOCKED_SENDERS_W属性(标签&H001D001E)中,将其设为空数组就能一次性清空:
Dim oJunkOpt As RDOJunkEmailOptions Set oJunkOpt = '替换为你的RDOJunkEmailOptions实例 '直接设置为空数组批量清空 oJunkOpt.Fields("http://schemas.microsoft.com/mapi/proptag/0x001D001E").Value = Array() oJunkOpt.Save '必须调用Save生效
这种方法效率远高于逐个删除,适合处理较大的阻止发件人列表。
注意事项
无论使用哪种方法,最后都必须调用oJunkOpt.Save才能将更改同步到Outlook客户端。
内容的提问来源于stack exchange,提问作者Steve A
相关产品推荐
相关产品推荐

