これまで試したことはありませんが、PHPを使用してExchangeアカウントに関するデータ(たとえば、受信トレイ内の電子メールの数や受信トレイ内の未読電子メールの量)を取得しようとしています。念のために言っておきますが、PHPサーバーはExchangeサーバーとは別のドメインにあります。
私のPHPサーバーは次の場所で実行されています:
-システム:Linux
-PHPバージョン5.3.3
-cURL情報7.19.7
-cURLNTLMはい-Soap
クライアントとサーバーが有効
Excahngeが実行されています:
-バージョン14.1またはExchange 2010 SP1
私は3つのPHPライブラリを試しましたが、すべて非常によく似たエラーを返します。PHP 、PHP-EWS、およびEWSWrapperライブラリ用のHeartspringExchangeWebサービス。
3つのライブラリすべてに必要なため、Exchangeサーバーから3つのファイルをダウンロードし、PHPサーバーのWebディレクトリの適切な場所に配置しました
。--Services.wsdl(大文字と恋人の両方の最初の文字を使用)
--messages.xsd
--types.xsd
また、Exchangeサーバーにを追加しExchangeServiceBinding
てServices.wsdl
ポイントしました(リンクをテストしましたが、正しいです)。soap:address location
Exchange.asmx
3つのライブラリすべてで非常によく似たエラーメッセージが表示されます。これがEWSWrapperからの完全なエラーです。
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR:
Parsing Schema: can't import schema from
'/var/www/vhosts/domain.com/EWSWrapper/wsdl/types.xsd'in
/var/www/vhosts/domain.com/EWSWrapper/NTLMSoapClient/Exchange.php:52
Stack trace: #0
/var/www/vhosts/domain.com/EWSWrapper/NTLMSoapClient/Exchange.php(52):
SoapClient->SoapClient('/var/www/vhosts...', Array)
#1
/var/www/vhosts/domain.com/EWSWrapper/ExchangeWebServices.php(483):
NTLMSoapClient_Exchange->__construct('/var/www/vhosts...', Array)
#2
/var/www/vhosts/domain.com/EWSWrapper/ExchangeWebServices.php(235):
ExchangeWebServices->initializeSoapClient()
#3
/var/www/vhosts/domain.com/EWSWrapper/EWSWrapper.php(529):
ExchangeWebServices->FindFolder(Object(EWSType_FindFolderType))
#4
/var/www/vhosts/domain.com/EWSWrapper/test in
/var/www/vhosts/domain.com/EWSWrapper/NTLMSoapClient/Exchange.php on line 52
Exchange.php:52は次のことを示しています。
parent::__construct($wsdl, $options);
ExchangeWebServices.php(483)は次のことを示しています。
protected function initializeSoapClient() {
return new NTLMSoapClient_Exchange(
dirname(__FILE__).'/wsdl/services.wsdl',
array(
'user' => $this->username,
'password' => $this->password,
'location' => 'https://'.$this->server.'/EWS/Exchange.asmx',
)); // end return
} // end function initializeSoapClient()
そこで、services.wsdlへのサーバーパス(/ var / www / ...)とWeb URLパス(http://domain.com / ...)、およびサーバーの場所を設定してみましたが、何も変わりません。上記のエラーコードのURLを除きます。
ExcahngeWebServices.php(235)は次のことを示しています。
public function FindFolder($request) {
$request->getAsSOAP();
return $this->initializeSoapClient()->{__FUNCTION__}($request);
} // end function FindFolder()
次のトレースEWSWrapper.php(529)が示すように、$requestに問題がある可能性があります。
// make the actual call
$response = $this->ews->FindFolder($request);
return $response;
グーグルとスタックエクスチェンジの大規模な検索は役に立たなかったので、どんな助けでもありがたいです。types.xsd
への道が間違っているか、何かが間違っていると思います$request
。