使用 Exchange 中的 EWS 删除项目
了解如何在 Exchange 中使用 EWS 托管 API 或 EWS 删除项目,方法是将项目移动到“已删除邮件”文件夹或转储器。
你是否曾经问过自己,将项目移动到“已删除邮件”文件夹和将它们移动到垃圾箱之间有何区别? 你可能对用于处理已删除项的不同选项以及如何在应用程序中实现这些选项感到好奇。 Exchange Web Services (EWS) 包括三个用于处理已删除项目的选项。 本文有望清除有关它们之间的差异的任何困惑。
删除项目 - 我有哪些选项?
在了解删除项的总体环境之前,请务必了解以下情况之间的差异:
“已删除邮件”文件夹 - 删除邮箱中的邮件时,将转到此位置。
转储 (又称“可恢复的项目”文件夹) - 从邮箱中删除项目时,这就是邮件所在的位置。
图 1 和图 2 显示了邮箱中的项目和文件夹的删除过程。
图 1. 从邮箱中删除项目的过程
图 2. 从邮箱中删除文件夹的过程
可以通过三种不同的方式删除项目和文件夹,具体取决于希望删除的“永久”程度。
表 1:使用 EWS 删除项的选项
选项 | 发生的情况 |
---|---|
移动到已删除邮件文件夹 |
这是删除项目最不永久的方法。 这就像把一张纸放在桌子旁的回收站里。 如果你再次需要它,你可以轻松地抓住它。 可以使用实现移动到“已删除邮件”文件夹选项的任何 删除操作 来执行此操作。 还可以使用 MoveItem 操作 ( Item.Move () ) 或 MoveFolder 操作 ( Folder.Move () ) 将项目或文件夹移动到“已删除邮件”文件夹。 |
软删除 |
该项目将移动到转储中的“删除”文件夹。 这类似于将回收站清空到路边容器中。 如果需要,你仍然可以访问该项目,这有点困难。 有关转储程序 (也称为“可恢复的项目”文件夹) 和电子数据展示或诉讼保留等方案的详细信息,请参阅 TechNet 上的 可恢复项目文件夹 。 对于面向 Exchange 2007 的应用程序,不建议进行软删除。 在 Exchange 2007 中,软删除是通过在项目上设置一个位来处理的,以指示它将在未指定的时间移动到转储器。 Exchange Online不支持软删除遍历或搜索已通过 FindItem 操作软删除的项目,Exchange Online作为Office 365的一部分,以及从 Exchange 2010 开始的 Exchange 版本。 注意:无法软删除文件夹。 |
硬删除 |
项目或文件夹将永久删除。 硬删除的项目放置在转储的“清除”文件夹中。 这就像回收卡车清空路边回收容器时一样。 无法从 Outlook 或 Outlook Web App 等电子邮件客户端访问项目,并且,除非邮箱设置了保留,否则项目将在设定的时间段后永久删除。 可以在 配置已删除项保留期和可恢复项配额一文中详细了解项目保留。 注意:硬删除文件夹时,文件夹不会放置在“清除”文件夹中。 从邮箱中删除硬删除的文件夹。 |
移动到“已删除邮件”文件夹和硬删除选项是事务性的,这意味着,在 Web 服务调用完成时,该项目已移动到“已删除邮件”文件夹或转储器。
为了帮助你更好地了解用于存储已删除项的文件夹生态系统,下图显示了可以包含已删除项的文件夹的层次结构。 文件夹名称与在 EWS 托管 API 中的 DistinguishedFolderIdNameType 架构类型或 WellKnownFolderName 枚举中显示的名称相同。
图 3. 包含已删除项的文件夹的层次结构
表 2:包含已删除项目的文件夹
文件夹名 | 引入版本 | 说明 |
---|---|---|
deleteditems |
Exchange 2007 |
默认的“已删除邮件”文件夹。 项目将一直保留在此文件夹中,直到它们被软删除或硬删除或超过保留期为止。 然后,它们将移动到转储中的文件夹。 已删除的文件夹放置在“已删除邮件”文件夹中,软删除或硬删除后,将从邮箱中永久删除,并且不可恢复。 |
recoverableitemsroot |
Exchange 2010 |
转储应用程序的根目录或“可恢复的项目”文件夹。 在 Exchange 2010 的 EWS 中实现了转储器访问。 此文件夹的显示名称为“可恢复的项目”。 |
recoverableitemsdeletions |
Exchange 2010 |
邮箱的主转储文件夹。 通过保留策略从“已删除邮件”文件夹中移动的软删除项目和项目将放置在此文件夹中。 此文件夹的显示名称为“删除”。 |
recoverableitemsversions |
Exchange 2010 |
存储项的较旧版本的位置。 更新项时会创建项的旧版本。 草稿项版本不会保存到此文件夹。 此文件夹的显示名称为“版本”。 |
recoverableitemspurges |
Exchange 2010 |
存储从“删除”文件夹中删除的项目的位置。 所有存储硬删除的项目都移动到此文件夹。 此文件夹的显示名称为“Purges”。 |
archiveddeletedtitems |
Exchange 2010 |
存档邮箱的默认“已删除邮件”文件夹。 |
archiverecoverablesitemsroot |
Exchange 2010 |
存档邮箱的根转储箱文件夹。 软删除的存档项将移动到此文件夹中的子文件夹。 |
archiverecoverableitemsdeletions |
Exchange 2010 |
存档邮箱的主转储文件夹。 移动到转储的存档项放置在此处。 |
archiverecoverableitemsversions |
Exchange 2010 |
存储旧版存档项的位置。 |
archiverecoverableitemspurges |
Exchange 2010 |
从转储器中的 archive Deletes 文件夹中硬删除的项目存储在其中。 所有存储硬删除的存档项都移动到此文件夹。 |
如何实现删除项目?
使用以下项之一来指示是将项目移动到“已删除邮件”文件夹,还是执行软删除或硬删除:
如果使用的是 EWS 访问 Exchange,则 为 DisposalType 简单类型。
DeleteMode 枚举(如果使用 EWS 托管 API)。
可以使用许多不同的 EWS 操作或 EWS 托管 API 方法从邮箱中删除项目和文件夹。
表 3:用于删除项的 EWS 操作和 EWS 托管 API 方法
EWS 操作 | EWS 托管 API 方法 | 引入版本 | 功能 |
---|---|---|---|
DeleteFolder 操作 |
Folder.Delete 方法 |
Exchange 2007 |
从邮箱中删除文件夹。 使用 EWS,可以批量删除文件夹。 使用 EWS 托管 API,每次调用只能删除单个文件夹。 |
DeleteItem 操作 |
Item.Delete 方法 ExchangeService.DeleteItems 方法 |
Exchange 2007 |
从邮箱中删除项目。 |
EmptyFolder 操作 |
Folder.Empty 方法 |
Exchange 2010 |
删除文件夹中的所有项目,并选择性地删除文件夹中的所有子文件夹。 |
ApplyConversationAction 操作 |
Conversation.EnableAlwaysDeleteItems 方法 Conversation.DeleteItems 方法 |
Exchange 2010 |
设置对对话中电子邮件的删除处理操作,以便删除它们。 |
DeleteUserConfiguration 操作 |
UserConfiguration.Delete 方法 |
Exchange 2010 |
删除文件夹关联的项,并将其移动到转储器。 |
CreateItem 操作 |
Appointment.Accept 方法 Appointment.AcceptTentatively 方法 Appointment.CancelMeeting 方法 Appointment.Decline MeetingRequest.Accept 方法 MeetingRequest.AcceptTentatively 方法 MeetingRequest.Decline 方法 |
Exchange 2007 |
每当发送对会议请求的响应或对约会设置响应时,将项目间接移动到“已删除邮件”文件夹。 此操作未设置删除类型。 当服务成功处理响应对象时,会议消息将移动到“已删除邮件”文件夹。 |
还可以使用收件箱规则将项目移动到“已删除邮件”文件夹。 例如,可以创建具有删除操作 的规则 。
删除项目时需要注意的一些要点:
删除重复出现的项目不会触发移动到“已删除邮件”文件夹或转储。 这会导致对定期序列的定期主项目进行更新。
无法从邮箱中删除默认文件夹。
避免删除会议或会议消息,例如会议请求和或会议更新。 相反,请使用响应对象来响应这些项。 这样,关联的日历项将更新,以反映响应者或组织者的操作。
将项目移动到“已删除邮件”或“删除”文件夹时,不会更新项目的更改键。
如果对项执行硬删除,然后调用 SyncFolderHierarchy 操作 或 SyncFolderHierarchy EWS 托管 API 方法,或者 SyncFolderItems 操作 或 SyncFolderItems 方法,将返回 Delete 更改条目。 如果将项目移动到“已删除邮件”文件夹,则会返回 “更新 更改”项。 这是因为项目或文件夹将具有新的 ParentFolderId 属性值。 如果同步已删除的项是方案的一部分,请阅读有关同步的详细信息。
详细了解如何删除项
另请参阅
- Exchange 中的 EWS 中的文件夹和项目
- 开发 Exchange Web 服务客户端
- 可恢复的项目文件夹
- 2010 Exchange Server中的单项恢复
- Exchange 2013:以编程方式从 Exchange 服务器中删除定期序列
- Exchange 2013:以编程方式从 Exchange 服务器上的帐户中删除任务
- Exchange 2013:以编程方式清空 Exchange 服务器上的文件夹
- Exchange 2013:以编程方式从 Exchange 服务器中删除文件夹
- Exchange 2013:以编程方式从 Exchange 服务器中删除许多项目
- Exchange 2013:以编程方式从 Exchange 服务器中删除联系人
- 在 Exchange 中使用 EWS 创建约会和会议
- 在 Exchange 中使用 EWS 管理持久性应用程序设置