如何使用 Exchange Web 服务为其他用户查找日历项目
How to use Exchange Web Services to find calendar items for other users
我想编写一些代码来查询 Exchange 服务器以查找一组用户的日历条目。这可能吗?
我刚开始使用 EWS。我发现很难找到任何好的概述文档来指导我如何使用它。
无论如何,我正在尝试的代码是这样的:
DateTime startDate = new DateTime(2015, 8, 1);
DateTime endDate = new DateTime(2015, 11, 1);
CalendarView calView = new CalendarView(startDate, endDate);
Mailbox mb = new Mailbox(@"somebodyelse@corp.testcompany.com");
FolderId fid = new FolderId(WellKnownFolderName.Calendar, mb);
FindItemsResults<Item> instanceResults = service.FindItems(fid, calView);
最后一行抛出 ServiceResponseException:"The specified folder could not be found in the store."
上述方法是否接近正确?无论如何,也许有一种完全不同且更好的方法来做到这一点?
请注意,我上面的服务对象是一个 ExchangeService 对象,我使用 administrator@corp.testcompany.com 的凭据设置了它。我希望管理员用户有权查看其他用户的日历,但也许这也必须在 Exchange 的某个地方明确设置?
你的代码没问题。您收到的错误可能与目标邮箱的访问权限有关。默认情况下,管理员无法访问其他用户邮箱。
要使一个用户能够访问另一个用户的邮箱,您可以使用powershell或exchange管理控制台:
通过电源shell:
打开交换管理shell和运行以下命令:
Add-MailboxPermission -Identity "User1" -User "User2" -AccessRights FullAccess -InheritanceType All
这将使用户 2 能够访问用户 1 的邮箱。
查看 this 了解更多详情。
通过交易所管理控制台:
打开exchange管理控制台,进入收件人配置->邮箱,然后select目标用户。右键单击用户并单击管理完全访问权限。
从那里添加您要访问邮箱的用户,然后单击 "Manage"。
请注意,这是基于 Exchange 2010。在不同的 exchange 版本上,这可能会有所不同。我猜 powershell 命令是一样的,但是基于 GUI 的配置可能不同。
我想编写一些代码来查询 Exchange 服务器以查找一组用户的日历条目。这可能吗?
我刚开始使用 EWS。我发现很难找到任何好的概述文档来指导我如何使用它。
无论如何,我正在尝试的代码是这样的:
DateTime startDate = new DateTime(2015, 8, 1);
DateTime endDate = new DateTime(2015, 11, 1);
CalendarView calView = new CalendarView(startDate, endDate);
Mailbox mb = new Mailbox(@"somebodyelse@corp.testcompany.com");
FolderId fid = new FolderId(WellKnownFolderName.Calendar, mb);
FindItemsResults<Item> instanceResults = service.FindItems(fid, calView);
最后一行抛出 ServiceResponseException:"The specified folder could not be found in the store."
上述方法是否接近正确?无论如何,也许有一种完全不同且更好的方法来做到这一点?
请注意,我上面的服务对象是一个 ExchangeService 对象,我使用 administrator@corp.testcompany.com 的凭据设置了它。我希望管理员用户有权查看其他用户的日历,但也许这也必须在 Exchange 的某个地方明确设置?
你的代码没问题。您收到的错误可能与目标邮箱的访问权限有关。默认情况下,管理员无法访问其他用户邮箱。
要使一个用户能够访问另一个用户的邮箱,您可以使用powershell或exchange管理控制台:
通过电源shell:
打开交换管理shell和运行以下命令:
Add-MailboxPermission -Identity "User1" -User "User2" -AccessRights FullAccess -InheritanceType All
这将使用户 2 能够访问用户 1 的邮箱。
查看 this 了解更多详情。
通过交易所管理控制台:
打开exchange管理控制台,进入收件人配置->邮箱,然后select目标用户。右键单击用户并单击管理完全访问权限。
从那里添加您要访问邮箱的用户,然后单击 "Manage"。
请注意,这是基于 Exchange 2010。在不同的 exchange 版本上,这可能会有所不同。我猜 powershell 命令是一样的,但是基于 GUI 的配置可能不同。