如何通过交换webservices移动到另一个文件夹后通过id或guid访问电子邮件

时间:2018-03-16 10:31:21

标签: c# .net exchange-server exchangewebservices

我有一个这样的公用文件夹结构:

Test\Incoming
Test\Read

我在Microsoft.Exchange.WebServices Version 2.2使用以下代码:

//Get Email
EmailMessage mailItem = EmailMessage.Bind(service, ItemID, new PropertySet(BasePropertySet.FirstClassProperties));

//Get UniqueId "FirstID"
mailItem.Id.UniqueId

//Move Email to Incoming\Read
mailItem.Move(destinationFolderID);

//After moving the UniqueId changed to "ChangedID"
mailItem.Id.UniqueId

有没有办法通过id / guid访问移动的电子邮件,因为UniqueId不是常量

1 个答案:

答案 0 :(得分:1)

这取决于移动发生的位置,例如,如果您移动到同一邮箱中的另一个文件夹(在公共文件夹的情况下,它可能取决于您有多个公用文件夹邮箱的位置,并且这些文件夹位于不同的邮箱中),那么移动方法将返回项目的新Id,以便

//Move Email to Incoming\Read
NewItem = mailItem.Move(destinationFolderID);

//After moving the UniqueId changed to "ChangedID"
NewItem.Id.UniqueId

如果将其移动到另一个邮箱中的文件夹,则MoveItem操作将不会返回newid,您需要使用SearchKey或您设置的其他自定义属性在新文件夹中搜索Item