2014-07-03 22 views
0

我使用jamesiarmes/php-ews与Exchange服务器连接以获取电子邮件列表。php ews,获取发送的项目更多信息

$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 
) 

所以,我的问题是怎样才能得到一个电子邮件地址收件人?可能吗?

非常感谢您的帮助。

回答

0

当您使用FindItem请求时,不会返回邮件的收件人(以及许多其他合适的邮件),因此您需要对要获取收件人的特定ItemId发出GetItem请求http://msdn.microsoft.com/en-us/library/office/aa565934(v=exchg.150).aspx。如果您需要为大量的项目做到这一点,你可以批量的GetItems请求如http://blogs.msdn.com/b/exchangedev/archive/2010/03/16/loading-properties-for-multiple-items-with-one-call-to-exchange-web-services.aspx

干杯 格伦