从Outlook加载项中删除来自Exchange Server的邮件

时间:2017-03-01 12:42:18

标签: outlook vsto exchangewebservices

我正在使用Visual Studio工具为office写一个outlook 2010(windows桌面版)的加载项。 outlook客户端已配置交换电子邮件。 我想允许用户从Exchange服务器删除消息。 我认为如果我使用交换网络服务或使用某些第三方库,它应该是可行的,但为了做到这一点,我必须要求用户重新指定他的交换电子邮件配置到我的插件 - 我想要要避免这种情况。

我想知道是否有更简单的方法通过调用一些outlook或VSTO API来实现这一点,基本上我正在寻找一种方法告诉outlook从我的加载项代码中删除服务器中的这些消息。 我试过搜索VSTO文档但没有得到任何结果。

1 个答案:

答案 0 :(得分:0)

目前尚不清楚是否为Exchange配置文件启用了缓存模式......但您可以使用Outlook项目的Delete方法。 Delete方法删除集合中的单个项目。请注意,Delete方法将项目从包含文件夹移动到“已删除邮件”文件夹。如果包含文件夹是“已删除邮件”文件夹,则Delete方法将永久删除该项目。

如果您在Outlook中启用了缓存模式,则还需要与服务器同步以删除其中的项目。 SyncObject.Start方法开始使用指定的Send \ Receive组同步用户的文件夹。例如,VBA宏说明了:

Public Sub Sync() 
  Dim nsp As Outlook.NameSpace 
  Dim sycs As Outlook.SyncObjects 
  Dim syc As Outlook.SyncObject 
  Dim i As Integer 
  Dim strPrompt As Integer 
  Set nsp = Application.GetNamespace("MAPI") 
  Set sycs = nsp.SyncObjects 
  For i = 1 To sycs.Count 
    Set syc = sycs.Item(i) 
    strPrompt = MsgBox( _ 
      "Do you wish to synchronize " & syc.Name &"?", vbYesNo) 
    If strPrompt = vbYes Then 
      syc.Start 
    End If 
  Next 
End Sub