2014-07-03 21 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

乾杯 格倫