首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Exchange邮箱上返回规则?

如何在Exchange邮箱上返回规则?
EN

Stack Overflow用户
提问于 2017-01-25 01:30:19
回答 1查看 1.5K关注 0票数 1

我有用于检索Outlook 2013的规则的代码。它不能在运行Outlook 2016的机器上工作。

代码语言:javascript
复制
Set colRules = Session.DefaultStore.GetRules()
    
For Each oRule In colRules
    ruleName = oRule.Name
    If Left(ruleName, 21) = "AutoCategorize into *" Then
        oRule.Execute (True)
    End If
Next

根据我的调试,问题在返回的colRules对象中。

2016年,它显示出有26个项目,但没有任何项目:

2016年调试视图图像

在Outlook 2013上,同一个对象显示了2013年的所有26项(规则):调试视图映像

  • 规则向导在这两台机器上都显示了所有26条规则;
  • 其中一些规则是在运行Outlook 2013的计算机上定义的,因此它们在2016年规则向导中显示为(对于其他计算机);
  • OutlookSpy存储->函数->GetRules返回相同的结果:(无法发布图像,声誉不足)。

我找到了原因,但没有找到解决办法。

rules对象包含“来自另一台计算机的规则”。

我删除了所有标记为“从另一台计算机中”来测试的规则。

现在它确实找到了所有剩下的规则。OutlookSpy也一样。

它不能保持这样,因为它是Exchange邮箱,所以它也从另一台计算机中删除了规则。我在另一个帐户上测试了这个,得到了同样的结果。

EN

回答 1

Stack Overflow用户

发布于 2017-01-25 20:42:26

请尝试下面的宏,我在挣扎之后,帮助我理解我的规则在我的Outlook 2016安装中的位置,因为它们不是我想的那样。

除两个外,我的所有商店都生成消息:“440此商店不支持规则。无法完成操作。“对于所有这些存储,规则位于默认存储区“outlook数据文件”中。但是一家商店有自己的规则。

通过安装我的Outlook,具有自己规则的存储具有“OST”扩展,表示它是脱机存储。“outlook数据文件”和所有其他商店都有“PST”的扩展名。

我想知道这个宏为您生成了什么。您的规则是否在OST存储中,而不是您所期望的默认存储中?

代码语言:javascript
复制
Public Sub DemoRules()

  Dim ColRules As Outlook.Rules
  Dim ErrDesc As String
  Dim ErrNum As Long
  Dim InxStoreCrnt As Long
  Dim RuleCrnt As Outlook.Rule

  With Session
    For InxStoreCrnt = 1 To .Stores.Count
      With .Stores(InxStoreCrnt)
        Debug.Print .DisplayName
        Set ColRules = Nothing
        On Error Resume Next
        Set ColRules = .GetRules()
        ErrNum = Err.Number
        ErrDesc = Err.Description
        On Error GoTo 0
        If ErrNum <> 0 Then
          Debug.Print "  " & ErrNum & " " & ErrDesc
        Else
          If Not ColRules Is Nothing Then
            If ColRules.Count = 0 Then
              Debug.Print "  no rules in this store"
            Else
              For Each RuleCrnt In ColRules
                Debug.Print "  " & RuleCrnt.Name
              Next
            End If
          Else
            Debug.Print " No error but GetRules returned Nothing"
          End If
        End If
      End With
      Set ColRules = Nothing
    Next
  End With

End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41841957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档