如何在运行时解决冲突?

时间:2016-02-18 18:37:05

标签: vb.net outlook vsto exchange-server

Outlook有一个整洁的冲突解决系统来解决有时您的邮件和服务器邮件不同的问题。但有时会失败,并要求用户改为解决 让一个普通用户完成这种工作是很麻烦的 - 当一个简单的脚本或VSTO插件可以完成这项工作时更是如此,而无需用户交互。
但据我所知,official Microsoft documentation无法通过VBA,.NET或VBScript来实现,因为框架缺少“将此对象标记为赢家”方法或类似方法。登记/> 即使没有官方支持的方法和电话,还是有某种方式可以做到这一点?

如果我可以使用VB.NET VSTO Outlook加载项实现它会更好,但任何其他方式都可以接受。
作为参考,冲突将通过以下方式解决:较新的一个总是获胜,并且运行加载项的本地用户所做的更改总是在第一个失败时获胜。 冲突是由Addin生成的,它基于Access数据库对电子邮件进行分类 - 它运行得很好,但在与服务器同步时,一些用户会出现同步问题 - 其他用户则没有。 作为一个低级暑期实习生,我无法改变Exchange配置或类似的东西。

我的一个解决方案是这件作品:

Public Sub TryToResolveConflict()
    If MailItem.IsConflict Or MailItem.Conflicts.Count > 0 Then
        If MailItem.AutoResolvedWinner = False Then
            MailItem.Display()
            MailItem.Close(OlInspectorClose.olSave)
        End If
    End If
End Sub

它只是打开mailitem并再次关闭它,保存它,如果检测到任何冲突并且它不是AutoResolvedWinner。
正如任何其他基于无知的糟糕构建解决方案一样,它根本不做任何事情。

0 个答案:

没有答案