在Outlook中通过php-ews设置类别颜色

时间:2015-10-21 07:47:19

标签: php outlook exchangewebservices php-ews

您好,我目前在创建或更新日历活动时,如何通过php-ews设置类别颜色。

我正在使用Exchange 2013服务器。

请参阅下面的基本示例:

<?php
$ews = new ExchangeWebServices($host, $username, $password, $version);

// Start building the request.
$request = new EWSType_CreateItemType();
$request->Items = new EWSType_NonEmptyArrayOfAllItemsType();
$request->Items->CalendarItem = new EWSType_CalendarItemType();

// Set the subject.
$request->Items->CalendarItem->Subject = 'Basic Calendar Item Insertion';

// Set the start and end times.
$date = new DateTime('8:00 AM');
$request->Items->CalendarItem->Start = $date->format('c');
$date->modify('+1 hour');
$request->Items->CalendarItem->End = $date->format('c');

// Set no reminders
$request->Items->CalendarItem->ReminderIsSet = false;

// Or use this to specify when reminder is displayed (if this is not set, the default is 15 minutes)
$request->Items->CalendarItem->ReminderMinutesBeforeStart = 15;

// Build the body.
$request->Items->CalendarItem->Body = new EWSType_BodyType();
$request->Items->CalendarItem->Body->BodyType = EWSType_BodyTypeType::HTML;
$request->Items->CalendarItem->Body->_ = 'This is <b>the</b> body';

// Set the item class type (not required).
$request->Items->CalendarItem->ItemClass = new EWSType_ItemClassType();
$request->Items->CalendarItem->ItemClass->_ = EWSType_ItemClassType::APPOINTMENT;

// Set the sensativity of the event (defaults to normal).
$request->Items->CalendarItem->Sensitivity = new EWSType_SensitivityChoicesType();
$request->Items->CalendarItem->Sensitivity->_ = EWSType_SensitivityChoicesType::NORMAL;

// Add some categories to the event.
$request->Items->CalendarItem->Categories = new EWSType_ArrayOfStringsType();
$request->Items->CalendarItem->Categories->String = array('Testing', 'php-ews');

// Set the importance of the event.
$request->Items->CalendarItem->Importance = new EWSType_ImportanceChoicesType();
$request->Items->CalendarItem->Importance->_ = EWSType_ImportanceChoicesType::NORMAL;

// Don't send meeting invitations.
$request->SendMeetingInvitations = EWSType_CalendarItemCreateOrDeleteOperationType::SEND_TO_NONE;

$response = $ews->CreateItem($request);

如您所见,我可以添加多个类别。

有谁知道是否可以包含类别颜色?

我是否必须调整php-ews库以包含类似C#示例here的代码?

1 个答案:

答案 0 :(得分:3)

类别的颜色取决于主类别列表,该列表是每个邮箱配置项。您使用EWS访问/设置它们,请参阅http://www.infinitec.de/post/2011/07/28/Working-with-the-Master-Category-List%E2%80%93EWS-edition.aspx,但这是基于每个邮箱完成的。

干杯 格伦