php ews, получить отправленные элементы подробнее

Я использую jamesiarmes/php-ews для подключения к серверу Exchange, чтобы получить список адресов электронной почты.

$ews = new ExchangeWebServices('[host]', '[username]', '[password]');

$request = new EWSType_FindItemType();

$request->ItemShape = new EWSType_ItemResponseShapeType();
$request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::DEFAULT_PROPERTIES;

$request->Traversal = EWSType_ItemQueryTraversalType::SHALLOW;

$request->ParentFolderIds = new EWSType_NonEmptyArrayOfBaseFolderIdsType();
$request->ParentFolderIds->DistinguishedFolderId = new EWSType_DistinguishedFolderIdType();
$request->ParentFolderIds->DistinguishedFolderId->Id = EWSType_DistinguishedFolderIdNameType::SENT_ITEMS;

// sort order
$request->SortOrder = new EWSType_NonEmptyArrayOfFieldOrdersType();
$request->SortOrder->FieldOrder = array();
$order = new EWSType_FieldOrderType();
// sorts mails so that oldest appear first
// more field uri definitions can be found from types.xsd (look for UnindexedFieldURIType)
$order->FieldURI->FieldURI = 'item:DateTimeReceived'; 
$order->Order = 'Ascending'; 
$request->SortOrder->FieldOrder[] = $order;

$response = $ews->FindItem($request);
echo '<pre>'.print_r($response, true).'</pre>';

Я хочу получать отправленные товары:

EWSType_DistinguishedFolderIdNameType::SENT_ITEMS;

Этот скрипт печатает

  [0] => stdClass Object
(
    [ItemId] => stdClass Object


(
        [Id] => AQAeAGptYXJzY2hhbGwAQGdyb3VwLm1va2F0ZS5jb20ucGwARgAAA9S15wLis8lApRvdnAdC+XoHAC51TyudPmVDoXWXKV00MAYAAAIBCgAAAC51TyudPmVDoXWXKV00MAYAAAIedwAAAA==
        [ChangeKey] => CQAAABYAAAAudU8rnT5lQ6F1lyldNDAGAAAAAB6h
    )

    [Subject] => test
    [Sensitivity] => Normal
    [Size] => 3534
    [DateTimeSent] => 2014-07-03T06:56:17Z
    [DateTimeCreated] => 2014-07-03T06:56:17Z
    [HasAttachments] => 
    [From] => stdClass Object
        (
            [Mailbox] => stdClass Object
                (
                    [Name] => [name]
                    [EmailAddress] => /O=GROUP TEST/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=59219DC26E6D463AB22C558CC646227D-name
                    [RoutingType] => EX
                )

        )

    [IsRead] => 1
)

Итак, мой вопрос: как я могу получить адрес электронной почты для получателя? Является ли это возможным?

Большое спасибо за твою помощь.


person hoobert    schedule 03.07.2014    source источник


Ответы (1)


Получатели сообщения (и ряд других свойств) не возвращаются, когда вы используете запрос FindItem, который вам нужен для запроса GetItem http://msdn.microsoft.com/en-us/library/office/aa565934%28v=exchg.150%29.aspx для конкретного ItemId, для которого вы хотите получить получателей. Если вам нужно сделать это для большого количества элементов, вы можете выполнить пакетный запрос GetItems, например http://blogs.msdn.com/b/exchangedev/archive/2010/03/16/loading-properties-for-multiple-items-with-one-call-to-exchange-web-services.aspx

Ура Глен

person Glen Scales    schedule 04.07.2014