2016-11-23 110 views
0

我正嘗試使用EWS將電子郵件從委託收件箱移動到委託文件夾。EWS將電子郵件從委託收件箱移動到委託文件夾

首先,我搶委託inbox內的所有文件夾,以獲得IdChangeKey性質(代替依靠名)

<FindFolder Traversal='Shallow' xmlns='http://schemas.microsoft.com/exchange/services/2006/messages'> 
    <FolderShape> 
     <t:BaseShape>Default</t:BaseShape> 
    </FolderShape> 
    <ParentFolderIds> 
     <t:DistinguishedFolderId Id='inbox'> 
      <t:Mailbox> 
       <t:EmailAddress>[email protected]</t:EmailAddress> 
      </t:Mailbox> 
     </t:DistinguishedFolderId> 
    </ParentFolderIds> 
</FindFolder> 

接下來,我用一個Id和電子郵件的ChangeKey在發現inboxId和文件夾的ChangeKey上述發現,嘗試移動

<m:MoveItem> 
    <m:ToFolderId> 
     <FolderId Id='folder.Id' ChangeKey='folder.ChangeKey'> 
      <t:Mailbox> 
       <t:EmailAddress>[email protected]</t:EmailAddress> 
      </t:Mailbox> 
     </FolderId> 
    </m:ToFolderId> 
    <m:ItemIds> 
     <t:ItemId Id='email.Id' ChangeKey='email.ChangeKey' /> 
    </m:ItemIds> 
</m:MoveItem> 

對我來說這將w^ork,但在查看文檔後,看起來<FolderId>元素不允許<t:Mailbox>孩子。

<t:DistinguishedFolderId>確實允許<t:Mailbox>,但我只能從先前標識的文件夾列表中進行選擇,而不能從用戶定義的文件夾列表中進行選擇。有沒有辦法告訴<MoveItem>電話,所有這些操作都發生在委託電子郵件上?

更新(工作):

<MoveItem xmlns='http://schemas.microsoft.com/exchange/services/2006/messages' xmlns:t='http://schemas.microsoft.com/exchange/services/2006/types'> 
    <ToFolderId> 
     <t:FolderId Id='folder.Id' ChangeKey='folder.ChangeKey' /> 
    </ToFolderId> 
    <ItemIds> 
     <t:ItemId Id='item.Id' ChangeKey='item.ChangeKey' /> 
    </ItemIds> 
</MoveItem> 

回答

1

的FolderId的你有從FindFolder要求所有涉及到的代表郵箱(如果父母是像你這樣的例子指定)了。 FolderId是全球唯一的(有關更多信息,請參閱https://msdn.microsoft.com/en-us/library/office/dn605828(v=exchg.150).aspx),因此您無需指定要訪問的郵箱,因爲FolderId本身包含此信息。郵箱元素存在於DistinishedFolderId中的原因是,這允許您訪問委託郵箱中的WellKnownFolders(無需發出任何其他請求)

+0

謝謝。這絕對能讓我走上正軌。這也是我錯過的xmlns屬性。 – hotshotiguana