我正在使用Visual Studio工具为office写一个outlook 2010(windows桌面版)的加载项。 outlook客户端已配置交换电子邮件。 我想允许用户从Exchange服务器删除消息。 我认为如果我使用交换网络服务或使用某些第三方库,它应该是可行的,但为了做到这一点,我必须要求用户重新指定他的交换电子邮件配置到我的插件 - 我想要要避免这种情况。
我想知道是否有更简单的方法通过调用一些outlook或VSTO API来实现这一点,基本上我正在寻找一种方法告诉outlook从我的加载项代码中删除服务器中的这些消息。 我试过搜索VSTO文档但没有得到任何结果。
答案 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