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



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

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

我在Exchange管理中心创建了一个公用文件夹日历,在上面创建了一次测试活动,并启用了它的电子邮件,结果如下: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");

最新更新