問題が見つかりました:応答の一部(メッセージ本文)に「」が含まれています。 は無効なXML文字です。任意のアイデアをどのようにそれを削除するには?EWSコールで特定の電子メールのみを取得できませんでした。
Exchange Webサービスを使用して、受信トレイから多数の電子メールを取得しています。それは最初の1141の電子メールのために働いたが、それは1142で失敗している(先行する1143にうまくいっていない)。私は電子メールを取得するために失敗している理由はわかりませんが、私は取得していますエラーはこれです:私は1142年と1143年のために、ファイルへの応答のXMLを出力し、そして唯一の違いは、ItemIdをラインだった
Uncaught SoapFault exception: [Client] looks like we got no XML document
(予想通り)。
メールには奇妙な文字(奇妙な四角い記号で表される)が含まれていますが、受信トレイにはメールがあります。
私は、少し修正したphp-ewsライブラリを使用しています。ここに私のコードの一部です:
<?php
$response = $ews->FindItem($Request);
$items = $response->ResponseMessages->FindItemResponseMessage->RootFolder->Items->Message;
foreach ($items as $item) {
$ItemRequest = new EWSType_FindItemType();
$ItemRequest->ItemShape = new EWSType_ItemResponseShapeType();
$ItemRequest->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::ALL_PROPERTIES;
$ItemRequest->ItemShape->BodyType = EWSType_BodyTypeResponseType::TEXT;
$ItemRequest->ItemShape->BodyTypeSpecified = true;
$ItemRequest->ItemIds = new EWSType_NonEmptyArrayOfBaseItemIdsType();
$ItemRequest->ItemIds->ItemId = new EWSType_ItemIdType();
$ItemRequest->ItemIds->ItemId->Id = $item->ItemId->Id;
$response = $ews->GetItem($ItemRequest); // Code fails here
}
私はなぜ要求が失敗するか分かりません。私はオプション "例外" => 0、 "トレース" => 1、dを追加しようとしました__last_responseに期待された応答が含まれていることがわかります。私は正しい答えを取り戻したのになぜ不思議に失敗したのですか?