从资源邮箱PHP-EWS会议主题

时间:2014-04-07 08:47:23

标签: php outlook exchangewebservices php-ews

嗨伙计们:)我正在尝试从资源会议框中接受所有会议,但是当我尝试接受这样的主题时$ subject = $ event->主题它显示创建会议的名称。 $ request-> ParentFolderIds-> DistinguishedFolderId-> Mailbox-> EmailAddress =" mail@domain.com"这是我如何选择资源会议框的代码。

我想通过其他方式参加会议主题,如果你能帮助我,我会很高兴:)

$request = new EWSType_FindItemType();
// Use this to search only the items in the parent directory in question or use ::SOFT_DELETED
// to identify "soft deleted" items, i.e. not visible and not in the trash can.
$request->Traversal = EWSType_ItemQueryTraversalType::SHALLOW;
// This identifies the set of properties to return in an item or folder response
$request->ItemShape = new EWSType_ItemResponseShapeType();
$request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::DEFAULT_PROPERTIES;
// Define the timeframe to load calendar items
$request->CalendarView = new EWSType_CalendarViewType();
$request->CalendarView->StartDate ='2014-03-28T15:00:00+04:00';// an ISO8601 date e.g. 2012-06-12T15:18:34+03:00   "Y-m-d\TH:i:sO"
$request->CalendarView->EndDate = '2015-03-28T15:00:00+04:00';// an ISO8601 date later than the above    "Y-m-d\TH:i:sO"

// Only look in the "calendars folder"
$request->ParentFolderIds = new EWSType_NonEmptyArrayOfBaseFolderIdsType();
$request->ParentFolderIds->DistinguishedFolderId = new EWSType_DistinguishedFolderIdType();
$request->ParentFolderIds->DistinguishedFolderId->Id = EWSType_DistinguishedFolderIdNameType::CALENDAR;
$request->ParentFolderIds->DistinguishedFolderId->Mailbox->EmailAddress = "meetingroom@gcfund.ge";

// Send request
$response = $ews->FindItem($request);
// Loop through each item if event(s) were found in the timeframe specified
if ($response->ResponseMessages->FindItemResponseMessage->RootFolder->TotalItemsInView > 0){
    $events = $response->ResponseMessages->FindItemResponseMessage->RootFolder->Items->CalendarItem;


//       $db_selected = mysql_select_db('meeting_room',$con); 
//       $res=mysql_query("SELECT ID FROM meeting");
//       while($row = mysql_fetch_array($res)){
//       echo $row['ID'];
//       echo "<br>";
//       }
    foreach ($events as $event){

        $id = $event->ItemId->Id;
        $change_key = $event->ItemId->ChangeKey;
        $start = $event->Start;
        $end = $event->End;
        $subject = $event->Subject;
        $location = $event->Location;

此主题显示创建会议的人员。我也想要这个信息,但我也想要主题..请帮助:)

1 个答案:

答案 0 :(得分:0)

这是Exchange的问题(不是您的代码,或PHP库或EWS)

一些博客,例如:http://www.slipstick.com/exchange/cmdlets/meeting-organizers-name-appears-in-subject-line/表示您可以执行一些PowerShell命令来更改Exchange服务器配置。请注意,如果您更改配置,它将适用于配置更改后添加的所有新会议/约会(现有会议/约会将按原样保留)。

如果您没有PowerShell访问Exchange服务器但通过其他系统具有管理员访问权限,则可以通过该系统的界面实现相同的配置更改。例如,在Parallels托管的交换系统上,以管理员身份登录Parallels,转到Exchange,转到资源邮箱,编辑会议室资源,并取消选中&#34;添加管理器以主题&#34; &#34;资源调度&#34;下的复选框标签。据我所知,这只是在幕后执行相同的PowerShell操作。

其他系统(例如Office 365)可能有类似的选项,但我还没有调查过。

说了这么多,我发现在我的情况下进行这种配置更改并没有帮助:我创建了一个针对房间资源的新会议,但是主题最终为&#34;&#34; (空字符串)而不是正确的主题或组织者的名称。在任何情况下,尝试配置更改,因为其他人显然已经成功使用它。