无法使用 c# ExchangeWebServics 访问 Exchange Public 文件夹日历
Cannot access Exchange Public Folder Calendar with c# ExchangeWebServics
我正在尝试读取 public 文件夹日历事件,但没有成功。
我正在根据 Microsoft 文档使用仅限应用程序进行身份验证,并且我能够获得访问令牌。
我在 Exchange 管理中心创建了一个 public 文件夹日历,在上面创建了一个测试事件,并启用了它的电子邮件,结果如下所示:CalendarName@MSDx123456.onmicrosoft.com
下面是给出异常的代码部分:“SMTP 地址没有与之关联的邮箱。”
我创建了一个 public 文件夹邮箱,但我无法在 Exchange 管理中心的任何地方找到将 public 文件夹邮箱关联到 public 文件夹的地方。
calendarFolderId = new FolderId(WellKnownFolderName.Calendar,CalendarConfig.CalendarEmail);
FolderView folderView = new FolderView(1);
var folders = await ewsClient.FindFolders(calendarFolderId, folderView);
原来问题是我在配置 ewsClient 时模拟了错误的用户。
在 ImpersonatedUserId 中,我使用的是 public 文件夹邮箱。
我不得不使用另一个有权访问 public 文件夹的用户邮箱。
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");
我正在尝试读取 public 文件夹日历事件,但没有成功。 我正在根据 Microsoft 文档使用仅限应用程序进行身份验证,并且我能够获得访问令牌。
我在 Exchange 管理中心创建了一个 public 文件夹日历,在上面创建了一个测试事件,并启用了它的电子邮件,结果如下所示:CalendarName@MSDx123456.onmicrosoft.com
下面是给出异常的代码部分:“SMTP 地址没有与之关联的邮箱。”
我创建了一个 public 文件夹邮箱,但我无法在 Exchange 管理中心的任何地方找到将 public 文件夹邮箱关联到 public 文件夹的地方。
calendarFolderId = new FolderId(WellKnownFolderName.Calendar,CalendarConfig.CalendarEmail);
FolderView folderView = new FolderView(1);
var folders = await ewsClient.FindFolders(calendarFolderId, folderView);
原来问题是我在配置 ewsClient 时模拟了错误的用户。 在 ImpersonatedUserId 中,我使用的是 public 文件夹邮箱。 我不得不使用另一个有权访问 public 文件夹的用户邮箱。
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");