如何在 Outlook 的“已删除邮件”文件夹中创建 EWS 项目(日历事件或联系人)?

How to create an EWS item (Calendar event or Contact) in the Deleted Items folder in Outlook?

我试图将项目重新创建到“已删除项目”文件夹中,但没有任何反应,我遇到了这些错误 "ErrorCannotCreateCalendarItemInNonCalendarFolder" 或 "ErrorCannotCreateContactInNonContactFolder"。如何克服这个问题?

我用正文请求POST

    "<?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:Header> "
        "<t:RequestServerVersion Version=\"Exchange2013\" /> "
        "<t:ExchangeImpersonation> "
          "<t:ConnectingSID> "
            "<t:PrincipalName>%MAIL_BOX%</t:PrincipalName> "     // <<------- MAIL_BOX ---- FILLED IN BY A TEMPLATE PARAM
          "</t:ConnectingSID> "
        "</t:ExchangeImpersonation> "
      "</soap:Header> "
      "<soap:Body> "
        "<CreateItem xmlns=\"http://schemas.microsoft.com/exchange/services/2006/messages\" "
                    "MessageDisposition=\"SaveOnly\" "
                    "SendMeetingInvitations=\"SendToNone\"> "
          "<SavedItemFolderId>"
            "<t:FolderId Id=\"%FOLDER_ID%\"/>"                             // <<------- FOLDER_ID ---- FILLED IN BY A TEMPLATE PARAM
          "</SavedItemFolderId>"
          "<Items>"
            "%ITEMS_CONTENT%"                                              // <<------- ITEMS_CONTENT ---- FILLED IN BY A TEMPLATE PARAM
          "</Items>"
        "</CreateItem>"
      "</soap:Body>"
    "</soap:Envelope>";

得到这样的回应:

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header>
        <h:ServerVersionInfo MajorVersion="15" MinorVersion="20" MajorBuildNumber="1922" MinorBuildNumber="23" Version="V2018_01_08" xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
    </s:Header>
    <s:Body>
        <m:CreateItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
            <m:ResponseMessages>
                <m:CreateItemResponseMessage ResponseClass="Error">
                    <m:MessageText>Cannot create a calendar item in a non-calendar folder.</m:MessageText>
                    <m:ResponseCode>ErrorCannotCreateCalendarItemInNonCalendarFolder</m:ResponseCode>
                    <m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
                    <m:Items />
                </m:CreateItemResponseMessage>
            </m:ResponseMessages>
        </m:CreateItemResponse>
    </s:Body>
</s:Envelope>

因为已删除项目文件夹 class 是 IPF.Note EWS 限制您在这些类型的文件夹中创建日历或联系人项目,因此您会收到错误消息。解决方法是在普通日历或联系人文件夹中创建项目,然后在创建后使用移动操作移动它。