这对我来说真是令人困惑。两天前,我让你的php-ews完全使用我的所有EWS文件使用限制:
$start = new DateTime('2014-06-05');
$Request->Restriction = new EWSType_RestrictionType();
$Request->Restriction->And = new EWSType_AndType();
$Request->Restriction->And->IsGreaterThan = new EWSType_IsGreaterThanType();
$Request->Restriction->And->IsGreaterThan->FieldURI = new stdClass;
$Request->Restriction->And->IsGreaterThan->FieldURI->FieldURI = 'item:DateTimeSent';
$Request->Restriction->And->IsGreaterThan->FieldURIOrConstant->Constant->Value = $start->format('c');
现在,每当我尝试运行此脚本时,我都会在标题中看到错误消息。我已经检查过,我的文件确实包含对SearchExpression和SearchExpressionType的引用。
如果有必要,我会非常乐意发布我的wsdl和xsd文件。有什么想法可以产生这个错误吗?
P.S。我正在使用2013年的服装,我可以收到很好的电子邮件,只是没有限制。
答案 0 :(得分:1)
尝试使用以下文件替换 messages.xsd,types.xsd 和 services.wsdl 3>
我发现文件types.xsd已被修改,它与您可以在 yopurexchangeserver / ews / services.wsdl上下载的原始文件不同
php soapclient可能存在问题。它与替换组和抽象元素无法正常工作。因此,他们稍微更改了 types.xsd 并解决了问题。
如果您想使用Exchange 2013中的新wsdl文件,则需要以类似的方式对其进行修改。
请勿忘记在此更改后关闭php中的wsdl缓存:
ini_set("soap.wsdl_cache_enabled", 0);
答案 1 :(得分:0)
我有同样的问题...... 我发现2010年和2013年之间在services.wsdl中存在差异所以请求需要不同。但我还没找到解决方案。
2010:
<!-- The type of object which actually encodes a restriction -->
<xs:complexType name="RestrictionType">
<xs:choice maxOccurs ="unbounded">
<xs:element ref="t:Contains"/>
<xs:element ref="t:Excludes"/>
<xs:element ref="t:Exists"/>
<xs:element ref="t:IsEqualTo"/>
<xs:element ref="t:IsNotEqualTo"/>
<xs:element ref="t:IsGreaterThan"/>
<xs:element ref="t:IsGreaterThanOrEqualTo"/>
<xs:element ref="t:IsLessThan"/>
<xs:element ref="t:IsLessThanOrEqualTo"/>
<xs:element ref="t:And"/>
<xs:element ref="t:Not"/>
<xs:element ref="t:Or"/>
</xs:choice>
</xs:complexType>
2013:
<!-- The type of object which actually encodes a restriction -->
<xs:complexType name="RestrictionType">
<xs:sequence>
<xs:element ref="t:SearchExpression"/>
</xs:sequence>
</xs:complexType>