Office365 如何使用apps for office将电子邮件移动到共享邮箱?

Office365 如何使用apps for office将电子邮件移动到共享邮箱?,office365,exchangewebservices,outlook-web-app,apps-for-office,Office365,Exchangewebservices,Outlook Web App,Apps For Office,如何使用apps for office将电子邮件从用户主邮箱移动到共享邮箱。我知道我可以手动执行此操作,但我正在为owa/outlook创建一个按钮,该按钮将用于移动项目。我尝试过使用ews,但只能在用户邮箱中找到移动电子邮件的命令 例如: '<?xml version="1.0" encoding="utf-8"?>' + '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

如何使用apps for office将电子邮件从用户主邮箱移动到共享邮箱。我知道我可以手动执行此操作,但我正在为owa/outlook创建一个按钮,该按钮将用于移动项目。我尝试过使用ews,但只能在用户邮箱中找到移动电子邮件的命令

例如:

'<?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="Exchange2013" />' +
        '  </soap:Header>' +
        '  <soap:Body>' +
        '    <m:MoveItem>' +
        '      <m:ToFolderId>' +
        '        <t:DistinguishedFolderId Id="junkemail" />' +
        '      </m:ToFolderId>' +
        '      <m:ItemIds>' +
        '        <t:ItemId Id="' + id + '" ' +
        '                  ChangeKey="' + changeKey + '" />' +
        '      </m:ItemIds>' +
        '    </m:MoveItem>' +
        '  </soap:Body>' +
        '</soap:Envelope>';
我可以创建一个xml来实现这一点吗?有没有一种方法可以使用EWS服务参考来实现这一点。我不想使用导入/导出来执行此操作

如果我可以对用户进行身份验证,下面的代码可以作为Web Api使用。我不想让用户为此重新输入凭据。但是,这意味着我有双跳身份验证问题。上述方法之所以有效,是因为它位于用户客户端机器上。下面,我必须托管web api,无法将凭据从web服务器传递到exchange。服务帐户也是不可能的,因为我不想要一个可以访问每个用户邮箱的帐户

        ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013);
        service.Url = new Uri("Ews url");
        service.Credentials = CredentialCache.DefaultCredentials;
        //service.UseDefaultCredentials = true;

        // Create a new folder view, and pass in the maximum number of folders to return.
        FolderView view = new FolderView(5);
        // Create an extended property definition for the PR_REPLICA_LIST property.
        ExtendedPropertyDefinition PR_REPLICA_LIST = new ExtendedPropertyDefinition(0x6698, MapiPropertyType.Binary);

        view.PropertySet = new PropertySet(BasePropertySet.IdOnly, FolderSchema.DisplayName, PR_REPLICA_LIST);

        // get to the inbox folder of spam mailbox
        Mailbox SpamMailbox = new Mailbox("Smtp of other mailbox");
        FolderId SpamInbox = new FolderId(WellKnownFolderName.Inbox, SpamMailbox);

        Folder SpamFolder = Folder.Bind(service, SpamInbox);


        FindItemsResults<Item> findItems = service.FindItems(WellKnownFolderName.JunkEmail, new ItemView(10));
        foreach (Item item in findItems)
        {
            item.Load();
            ItemId ItemToMoveId = new ItemId(item.Id.UniqueId.ToString());
            Item ItemToMove = Item.Bind(service, ItemToMoveId);
            ItemToMove.Move(SpamFolder.Id);
            //item.Move(SpamFolder.Id);

        }

丹,很抱歉回复晚了。让我澄清一下你的问题。您是说下面的托管API片段实现了您的目标,并且想知道如何在不必重新验证用户身份的情况下调用它?