【问题标题】:How to list public folder mailboxes via EWS?如何通过 EWS 列出公用文件夹邮箱?
【发布时间】:2018-09-21 15:20:48
【问题描述】:

我找不到使用 SOAP api 正确列出所有公用文件夹邮箱和公用文件夹的任何解决方案。我发现只有 powershell 命令或 C# 方法。如果有人知道如何获取/列出所有公用文件夹,请提供解决方案。

【问题讨论】:

    标签: outlook office365 exchangewebservices


    【解决方案1】:

    要枚举公共文件夹,您需要使用 FindFolder 操作,然后从根开始对每个文件夹级别进行浅遍历查询(因为您不能进行深度遍历),例如

        <?xml version="1.0" encoding="utf-8"?>
        <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
        <soap:Body>
            <FindFolder Traversal="Shallow" xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
            <FolderShape>
                <t:BaseShape>Default</t:BaseShape>
            </FolderShape>
            <ParentFolderIds>
                <t:DistinguishedFolderId Id="publicfoldersroot"/>
            </ParentFolderIds>
            </FindFolder>
        </soap:Body>
        </soap:Envelope>
    

    您无法使用 EWS 获取公用文件夹邮箱您应该在 Office365 上执行的操作是发现正确的 PublicFolder 邮箱以包含在路由标头中,因此您应该通读 https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-route-public-folder-hierarchy-requestshttps://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-route-public-folder-content-requests(它们都有 XML 示例用于您需要的电话)。

    【讨论】:

    • 你能给我一个请求区分正确的主公用文件夹邮箱的例子吗?
    • 我确实喜欢它:POST outlook.office365.com/ews/exchange.asmx user@test.onmicrosoft.comschemas.microsoft.com/exchange/autodiscover/outlook/…> 并得到响应:500“发生内部服务器错误。操作失败的。”我不知道出了什么问题
    • 自动发现请求需要发送到自动发现端点,例如 autodiscover-s.outlook.com//autodiscover/autodiscover.xml 或 /autodiscover/autodiscover.svc 取决于它是否是 POX(普通旧 XML)或基于 SOAP 的请求
    • 谢谢,但我从您建议的端点得到的响应是 500找不到电子邮件地址。。我确定提供的电子邮件地址是正确的。
    【解决方案2】:

    首先,您需要使用 SOAP 确定 X-AnchorMailbox 标头的值,并发出 Autodiscover 请求以确定 X-PublicFolderInformation 值。

    其次,使用FindFolder,然后从Root开始遍历每个文件夹级别的查询,例如:

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Header>
        <t:RequestServerVersion Version="Exchange2013_SP1" />
      </soap:Header>
      <soap:Body>
        <m:FindFolder Traversal="Shallow">
          <m:FolderShape>
            <t:BaseShape>AllProperties</t:BaseShape>
          </m:FolderShape>
          <m:IndexedPageFolderView MaxEntriesReturned="1" Offset="0" BasePoint="Beginning" />
          <m:Restriction>
            <t:IsEqualTo>
              <t:FieldURI FieldURI="folder:DisplayName" />
              <t:FieldURIOrConstant>
                <t:Constant Value="My Public Contacts" />
              </t:FieldURIOrConstant>
            </t:IsEqualTo>
          </m:Restriction>
          <m:ParentFolderIds>
            <t:FolderId Id="AQEuAAADy/LIWjRCp0GFb0W6aGPbwwEARg5aCLUc8k6wLfl1c0a/2AAAAwIAAAA=" ChangeKey="AQAAABYAAABGDloItRzyTrAt+XVzRr/YAABdo/XB" />
          </m:ParentFolderIds>
        </m:FindFolder>
      </soap:Body>
    </soap:Envelope>
    

    参考来源:

    Route public folder hierarchy requests

    Route public folder content requests

    【讨论】:

      猜你喜欢
      • 2014-03-21
      • 1970-01-01
      • 2017-04-16
      • 2015-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多