MarkAsJunk操作错误代码9020。获取“发生内部服务器错误。操作失败。”

时间:2019-08-21 07:04:48

标签: soap exchangewebservices outlook-addin office-js outlook-web-addins

我正在尝试仅对带有Office.context.mailbox.makeEwsRequestAsync SOAP 请求使用MarkAsJunk操作。为此,我还使用了easyEWS模块,该模块是OfficeJS的包装。我用来发送 SOAP 的代码如下:

this.markAsJunk = function (itemId) {
    var soap = '<m:MarkAsJunk IsJunk="true" MoveItem="true"' +
            '          
    xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">' +
            '    <ItemIds>' +
            '        <t:ItemId Id="' + itemId + '"/>' +
            '    </ItemIds>' +
            '</m:MarkAsJunk>';
    soap = getSoapHeader(soap);

    asyncEws(soap, function (data) { });
};

我发送的 SOAP 看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
               xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
               xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
               xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
   <soap:Header>
        <RequestServerVersion Version="Exchange2013" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" soap:mustUnderstand="0" />
   </soap:Header>
   <soap:Body>
        <m:MarkAsJunk IsJunk="true" MoveItem="true"
        xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
            <ItemIds>
                <t:ItemId Id="AAMkADg2OGZmNDkzLWVjNDYtNGI2MC1iMGI3LWE3YmEzMDk5MThiNABGAAAAAAC3FQIsRYg6SZwlyqfCFdA0BwBTNDtA08+GRo/QPlH0XaGpAAAAAAEMAABTNDtA08+GRo/QPlH0XaGpAADEMDCVAAA="/>
            </ItemIds>
        </m:MarkAsJunk>
    </soap:Body>
</soap:Envelope>

1 个答案:

答案 0 :(得分:0)

ItemIds存在于名称空间xmlns:m =“ http://schemas.microsoft.com/exchange/services/2006/messages”中,因此您需要使用“ m:ItemIds”。 有关SOAP请求格式,请参阅教程here