我尝试使用EWS将电子邮件从委托收件箱移动到委托文件夹。
首先,我抓取代理inbox
中的所有文件夹,以获取Id
和ChangeKey
属性(代替依赖名称)
<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>delegate.name@email.com</t:EmailAddress>
</t:Mailbox>
</t:DistinguishedFolderId>
</ParentFolderIds>
</FindFolder>
接下来,我使用Id
中找到的电子邮件的ChangeKey
和inbox
以及上面找到的文件夹的Id
和ChangeKey
来尝试移动
<m:MoveItem>
<m:ToFolderId>
<FolderId Id='folder.Id' ChangeKey='folder.ChangeKey'>
<t:Mailbox>
<t:EmailAddress>delegate.name@email.com</t:EmailAddress>
</t:Mailbox>
</FolderId>
</m:ToFolderId>
<m:ItemIds>
<t:ItemId Id='email.Id' ChangeKey='email.ChangeKey' />
</m:ItemIds>
</m:MoveItem>
对我来说,这会有效,但在查看文档后,<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>
答案 0 :(得分:1)
您从FindFolder请求中返回的FolderId都与委托邮箱有关(如果父代表被指定为您的示例)。 FolderId是全球唯一的(可以找到更多关于https://msdn.microsoft.com/en-us/library/office/dn605828(v=exchg.150).aspx的信息),因此您不需要指定要访问的邮箱,因为此信息包含在FolderId本身中。 DistinishedFolderId中存在邮箱元素的原因是,这允许您访问代理邮箱中的WellKnownFolders(无需进行任何其他请求)