0
Exchange 서버에서 EWS를 사용하여 읽지 않은 메일을 가져 가고 있습니다. 아래는 출력입니다.EWS 메일의 출력에서 변수 값을 가져오고 싶습니다.
stdClass Object ([ResponseMessages] => stdClass Object
([FindItemResponseMessage] => stdClass Object
([ResponseCode] => NoError
[ResponseClass] => Success
[RootFolder] => stdClass Object
([Items] => stdClass Object
([Message] => stdClass Object
([ItemId] => stdClass Object
([Id] => AAMkADllYWVjYjE3LWMzNWItNDczYy05YzllLWEzMzM2YWUzNDY3NQBGAAAAAAA3RNrc1+NeRYdPKpmLrF8OBwDmmObTCfhpSqYuvnMiDlrXAAAAFjg7AADmmObTCfhpSqYuvnMiDlrXAAD0o9sFAAA=
[ChangeKey] => CQAAABYAAADmmObTCfhpSqYuvnMiDlrXAAD0o+gX
)
[Subject] => CR-1167-Approved
[Sensitivity] => Normal
[Size] => 2992
[DateTimeSent] => 2016-09-22T10:55:12Z
[DateTimeCreated] => 2016-09-22T10:55:13Z
[HasAttachments] => [IsAssociated] => [From] => stdClass Object
([Mailbox] => stdClass Object
([Name] => Basudev Kumar Sadhu (Assistant Manager, Technology)
[MailboxType] => OneOff
)
)
[IsRead] =>
))
[IndexedPagingOffset] => 1
[IncludesLastItemInRange] => 1
[TotalItemsInView] => 1
))))
이제이 출력에서 값을 파싱하고 싶습니다. 이 출력에서 제목과 이름을 캡처하고 싶습니다.
다음은 메일을 읽는 데 사용한 원래 코드입니다.
<?php
require_once ('../mail3/php-ews-master/ExchangeWebServices.php');
require_once ('../mail3/php-ews-master/EWS_Exception.php');
require_once ('../mail3/php-ews-master/EWSType.php');
require_once ('../mail3/php-ews-master/NTLMSoapClient.php');
function __autoload($class_name)
{
// Start from the base path and determine the location from the class name,
$base_path = '../mail3/php-ews-master';
$include_file = $base_path . '/' . str_replace('_', '/', $class_name) . '.php';
return (file_exists($include_file) ? require_once $include_file : false);
}
//$message_id = ''; // Id of the email message
$ews = new ExchangeWebServices("webmail.bkash.com", "cr.tool", "[email protected]",ExchangeWebServices::VERSION_2010);
$request = new EWSType_FindItemType();
$itemProperties = new EWSType_ItemResponseShapeType();
$itemProperties->BaseShape = EWSType_DefaultShapeNamesType::DEFAULT_PROPERTIES;
$itemProperties->BodyType = EWSType_BodyTypeResponseType::TEXT;
$request->ItemShape = $itemProperties;
$fieldType = new EWSType_PathToUnindexedFieldType();
$fieldType->FieldURI = 'message:IsRead';
$constant = new EWSType_FieldURIOrConstantType();
$constant->Constant = new EWSType_ConstantValueType();
$constant->Constant->Value = "0";
$IsEqTo = new EWSType_IsEqualToType();
$IsEqTo->FieldURIOrConstant = $constant;
$IsEqTo->Path = $fieldType;
$request->Restriction = new EWSType_RestrictionType();
$request->Restriction->IsEqualTo = new EWSType_IsEqualToType();
$request->Restriction->IsEqualTo->FieldURI = $fieldType;
$request->Restriction->IsEqualTo->FieldURIOrConstant = $constant;
$request->IndexedPageItemView = new EWSType_IndexedPageViewType();
$request->IndexedPageItemView->BasePoint = 'Beginning';
$request->IndexedPageItemView->Offset = 0;
$request->ParentFolderIds = new EWSType_NonEmptyArrayOfBaseFolderIdsType();
$request->ParentFolderIds->DistinguishedFolderId = new EWSType_DistinguishedFolderIdType();
$request->ParentFolderIds->DistinguishedFolderId->Id = EWSType_DistinguishedFolderIdNameType::INBOX;
$request->Traversal = EWSType_ItemQueryTraversalType::SHALLOW;
$result = new EWSType_FindItemResponseMessageType();
$result = $ews->FindItem($request);
if ($result->ResponseMessages->FindItemResponseMessage->ResponseCode == 'NoError' && $result->ResponseMessages->FindItemResponseMessage->ResponseClass == 'Success'){
$count = $result->ResponseMessages->FindItemResponseMessage->RootFolder->TotalItemsInView;
if($count > 0) {
echo $count . " email(s)";
print_r($result);
} else {
echo 'No email(s)';
}
}
?>
변화는 나를 위해 일한이 라인과 같을 것이다 :'$는 MailItem = $ API->의 getItem ($ mailItem->주는 getItemId());' – user2092317
야 Gareth, in sendmail.php 메일이 보내 졌는지 아닌지 어떻게 확인합니까? '$ return = $ api-> sendMail ($ message);' – user2092317
서버가 오류를 반환하면 예외가 발생하고이를 포착 할 수 있습니다. 정상적인 응답이있는 경우 응답으로 응답을받을 수 있습니다. 내 추측 (비록 실패 할 테스트하지 않은, 나는 그것이 실패 할 때 확실하지 않다) 실패는 예외가 발생하게 될 것입니다 –