我之前从未尝试过这个,但我正在尝试使用PHP获取有关交换帐户的数据(例如收件箱中的电子邮件数量和收件箱中未读电子邮件的数量).仅供记录,PHP服务器与Exchange服务器位于不同的域.
我的PHP服务器正在运行:
- 系统:Linux
- PHP版本5.3.3
- cURL信息7.19.7
- cURL NTLM是
- 启用Soap客户端和服务器
Excahnge正在运行:
- 版本14.1或Exchange 2010 SP1
我已经尝试了3个PHP库,它们都返回了一个非常相似的错误.用于PHP,PHP-EWS和EWSWrapper库的Heartspring Exchange Web服务.
正如所有3个库都需要的那样,我从交换服务器下载了这三个文件并将它们放在PHP服务器web目录的相应位置:
- Services.wsdl(使用大写和lovercase首字母)
- messages.xsd
- types.xsd
我还添加了ExchangeServiceBindingto 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 …Run Code Online (Sandbox Code Playgroud)