我尝试删除带有EWS请求的电子邮件。所以我使用这个文档来完成我的请求https://msdn.microsoft.com/en-us/library/office/aa580484(v=exchg.150).aspx
这是我的肥皂要求
var soapToDeleteItem =
'<?xml version= "1.0" encoding= "utf-8" ?>' +
' <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"' +
' xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">' +
' <soap:Body>' +
' <DeleteItem DeleteType="MoveToDeletedItems" xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">' +
' <ItemIds>' +
' <t:ItemId Id="'+ item_id + '" ChangeKey="' + changeKey + '" />' +
' </ItemIds>' +
' </DeleteItem>' +
' </soap:Body >' +
' </soap: Envelope >';
我有这个答案
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<s:Fault>
<faultcode xmlns:a="http://schemas.microsoft.com/exchange/services/2006/types">a:ErrorAccessDenied</faultcode>
<faultstring xml:lang="en-US">The requested web method is unavailable to this caller or application.</faultstring>
<detail>
<e:ResponseCode xmlns:e="http://schemas.microsoft.com/exchange/services/2006/errors">ErrorAccessDenied</e:ResponseCode>
<e:Message xmlns:e="http://schemas.microsoft.com/exchange/services/2006/errors">The requested web method is unavailable to this caller or application.</e:Message>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
我了解我的加载项没有删除项目的权限。但是我的加载项已经有了ReadWriteMailbox permision。那么我可以做些什么来删除带有EWS请求的项目?
答案 0 :(得分:2)
根据https://msdn.microsoft.com/en-us/library/office/jj190901(v=exchg.150).aspx中的表1,使用makeEwsRequestAsync在Mail Apps for Outlook中无法使用DeleteItem操作,这就是您收到该错误的原因。您并不真的希望Mail Apps能够删除邮箱数据,因为应用程序编写错误的应用程序删除数据的风险无论是故意还是偶然。如果你有合法的理由删除数据,他们会使用Move,例如你可以移动和将Item移动到邮箱中的已处理文件夹中,然后使用文件夹保留标记等将内容从该文件夹中移除(你也可以只移动项目)进入邮箱中的DeleteItems文件夹作为解决方法)。