我遇到了解决如何通过EWS Api获取资源(房间)日历的问题。作为PHP Wrapper / Library,我使用以下代码:https://github.com/jamesiarmes/php-ews
$ews = new ExchangeWebServices('server', 'user', 'pw');
$request = new EWSType_FindItemType();
$request->Traversal = EWSType_ItemQueryTraversalType::SHALLOW;
$request->ItemShape = new EWSType_ItemResponseShapeType();
$request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::DEFAULT_PROPERTIES;
$request->CalendarView = new EWSType_CalendarViewType();
$request->CalendarView->StartDate = '2014-02-05T15:18:34+03:00';
$request->CalendarView->EndDate = '2014-06-12T15:18:34+03:00';
$request->ParentFolderIds = new EWSType_NonEmptyArrayOfBaseFolderIdsType();
$request->ParentFolderIds->DistinguishedFolderId = new EWSType_DistinguishedFolderIdType();
$request->ParentFolderIds->DistinguishedFolderId->Id = EWSType_DistinguishedFolderIdNameType::CALENDAR;
$request->ParentFolderIds->DistinguishedFolderId->Mailbox->EmailAddress = "roomname@adress.xxx";
$response = $ews->FindItem($request);
我尝试将Mailbox-> EmailAddress添加到请求中,但是我收到以下错误:
[MessageText] => SMTP地址没有与之关联的邮箱。 [ResponseCode] => ErrorNonExistentMailbox
我想这里的问题是,房间没有与自身相关的具体邮箱,因此无法找到它。这有什么工作吗? 我可以直接访问该文件夹吗?但是,如何找到该房间日历的ID?
答案 0 :(得分:0)
这个房间资源是否是新建的?在Exchange中定义新房间时,它不会立即创建与其关联的所有对象。根据我的经验,它必须首先被“访问”,例如通过OWA。之后,应该有一个与SMTP关联的实际邮箱。因此,请尝试在Outlook或OWA中查看此房间,然后查看是否仍然出现该错误。