繁体   English   中英

无法使用 c# ExchangeWebServices 访问 Exchange 公用文件夹日历

[英]Cannot access Exchange Public Folder Calendar with c# ExchangeWebServics

我正在尝试读取公用文件夹日历事件但没有成功。 我正在根据 Microsoft 文档使用仅应用程序进行身份验证,并且我能够获得访问令牌。

https://learn.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-authenticate-an-ews-application-by-using-oauth

我在 Exchange 管理中心创建了一个公用文件夹日历,在其上创建了一个测试事件,并启用了它的 email,结果如下所示:CalendarName@MSDx123456.onmicrosoft.com

下面是给出异常的代码部分:“SMTP 地址没有与之关联的邮箱。”

我创建了一个公用文件夹邮箱,但我无法在 Exchange 管理中心的任何地方找到将公用文件夹邮箱关联到公用文件夹的位置。

        calendarFolderId = new FolderId(WellKnownFolderName.Calendar,CalendarConfig.CalendarEmail);
        FolderView folderView = new FolderView(1);
        var folders = await ewsClient.FindFolders(calendarFolderId, folderView);

原来问题是我在配置 ewsClient 时冒充了错误的用户。 在 ImpersonatedUserId 中,我使用的是公用文件夹邮箱。 我不得不使用另一个有权访问公用文件夹的用户邮箱。

        ewsClient = new ExchangeService();
        ewsClient.Url = new Uri(config.ServiceId);
        ewsClient.Credentials = new OAuthCredentials(authResult.AccessToken);
        ewsClient.ImpersonatedUserId =
            new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "publicFolderMail@MSDx123456.onmicrosoft.com");

        ewsClient = new ExchangeService();
        ewsClient.Url = new Uri(config.ServiceId);
        ewsClient.Credentials = new OAuthCredentials(authResult.AccessToken);
        ewsClient.ImpersonatedUserId =
            new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "Impersonated-User-Mailbox@MSDx123456.onmicrosoft.com");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM