使用EWS XML请求

时间:2015-07-21 12:59:00

标签: xml outlook exchangewebservices

我需要编写Outlook App,我需要在扩展属性中添加一些信息。我在我的JS代码中使用Office.context.mailbox.item.saveAsync()将消息保存到草稿文件夹中。 然后我生成EWS XML请求以获取已在item.saveAsync()回调中收到的已保存草稿的ChangeKey。 现在我正在尝试通过以下XML请求添加扩展属性:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"      xmlns:t=http://schemas.microsoft.com/exchange/services/2006/types      xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header>
        <t:RequestServerVersion Version="Exchange2007_SP1" />
        <t:TimeZoneContext>
            <t:TimeZoneDefinition Id="Eastern Standard Time" />
        </t:TimeZoneContext>
    </soap:Header>
    <soap:Body>
        <m:UpdateItem MessageDisposition="SaveOnly" ConflictResolution="AutoResolve">
            <m:ItemChanges>
                <t:ItemChange>
                    <t:ItemId Id="AQMkAGYzMmY5ZjQ1LTZiZDAtNGUwMy1hN2I0LThmNWM3NGYyY2VhMABGAAADVxv6DmzCb0aSDWQq9af2cwcAiSvs3uFZHUqIGSh2GUm6AAADAQ8AAACJK+ze4VkdSogZKHYZSboAAAI7ViIAAAA=" ChangeKey="CQAAABYAAACJK+ze4VkdSogZKHYZSboAAAAAO3qD" />
                    <t:Updates>
                        <t:SetItemField>
                            <t:ExtendedFieldURI PropertySetId="c11ff724-aa03-4555-9952-8fa248a11c3e" PropertyName="prop1" PropertyType="String" />
                            <t:Message>
                                <t:ExtendedProperty>
                                    <t:ExtendedFieldURI PropertySetId="c11ff724-aa03-4555-9952-8fa248a11c3e" PropertyName="prop1" PropertyType="String" />
                                    <t:Value>prop1Value</t:Value>
                                </t:ExtendedProperty>
                            </t:Message>
                        </t:SetItemField>
                        <t:SetItemField>
                            <t:ExtendedFieldURI PropertySetId="c11ff724-aa03-4555-9952-8fa248a11c4e" PropertyName="prop2" PropertyType="String" />
                            <t:Message>
                                <t:ExtendedProperty>
                                    <t:ExtendedFieldURI PropertySetId="c11ff724-aa03-4555-9952-8fa248a11c4e" PropertyName="prop2" PropertyType="String" />
                                    <t:Value>prop2Value</t:Value>
                                </t:ExtendedProperty>
                            </t:Message>
                        </t:SetItemField>
                        <t:SetItemField>
                            <t:ExtendedFieldURI PropertySetId="c11ff724-aa03-4555-9952-8fa248a11c5e" PropertyName="prop3" PropertyType="String" />
                            <t:Message>
                                <t:ExtendedProperty>
                                    <t:ExtendedFieldURI PropertySetId="c11ff724-aa03-4555-9952-8fa248a11c5e" PropertyName="prop3" PropertyType="String" />
                                    <t:Value>prop3Value</t:Value>
                                </t:ExtendedProperty>
                            </t:Message>
                        </t:SetItemField>
                        <t:SetItemField>
                            <t:ExtendedFieldURI PropertySetId="c11ff724-aa03-4555-9952-8fa248a11c6e" PropertyName="prop4" PropertyType="String" />
                            <t:Message>
                                <t:ExtendedProperty>
                                    <t:ExtendedFieldURI PropertySetId="c11ff724-aa03-4555-9952-8fa248a11c6e" PropertyName="prop4" PropertyType="String" />
                                    <t:Value>prop4Value</t:Value>
                                </t:ExtendedProperty>
                            </t:Message>
                        </t:SetItemField>
                    </t:Updates>
                </t:ItemChange>
            </m:ItemChanges>
        </m:UpdateItem>
    </soap:Body>
</soap:Envelope>

但在回调中我收到失败状态和此错误

  

远程服务器返回错误:(400)错误请求。

我使用https://msdn.microsoft.com/en-us/library/office/dd633633%28v=exchg.80%29.aspx作为样本。

我需要通过点击“发送”按钮发送带有扩展属性的消息。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

这可能是你的编码字符串。

Exchange "utf-8"中的双引号交换Web服务。

使用:Content-Type: text/xml; charset=utf-8