EWS 异常:没有 public 个可用的文件夹服务器

EWS Exception: There are no public folder servers available

我正在尝试从我的 outlook 邮箱中获取 Public 文件夹电子邮件。目前,我可以从我的根文件夹中的文件夹中获取邮件。我使用以下代码:

      Folder rootfolder = Folder.Bind(exchange, WellKnownFolderName.MsgFolderRoot);

      //Folder rootfolder = Folder.Bind(exchange, WellKnownFolderName.PublicFoldersRoot); // gives error                 


      rootfolder.Load();
      foreach (Folder folder in rootfolder.FindFolders(new FolderView(100)))
       {
           Console.WriteLine(folder.DisplayName);
       }

当我将 WellKnownFolderName.MsgFolderRoot 替换为 WellKnownFolderName.PublicFoldersRoot 时,出现错误 "There are no public folder servers available." 我也参考了 here 中的@Mimi Gentz 解决方案,但我仍然收到错误.

我的代码中是否遗漏了什么?请帮忙。

您需要首先添加正确的路由 headers https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-route-public-folder-hierarchy-requests 。另一件事是,默认情况下不会有 public 文件夹 OnPrem 或 Office365,因此管理员必须先设置它们。

我的电子邮件在 Office365 上,而 public 文件夹是 OnPrem,这就是我收到 no public folder servers 错误的原因。