C# Outlook加载项冲突问题

C# Outlook加载项冲突问题,c#,email,outlook,add-in,C#,Email,Outlook,Add In,目前,我们有一个团队使用我们内部开发的Outlook外接程序(称为外接程序a),该外接程序附加到发送事件,如果满足有关发件人地址和主题的某些规则,则会显示表单,将数据写入SQL数据库并发送电子邮件。这个很好用 我们刚刚在公司范围内推出了一个第三方Outlook加载项(称为加载项B),该加载项检查您发送的任何电子邮件,看看它们是否要发送到外部地址,如果是,则询问您是否确实要发送。同样,这很好用 问题在于这两者何时结合。虽然它们之间没有冲突或类似的技术问题,但存在一个潜在的逻辑错误,您可以尝试发送电

目前,我们有一个团队使用我们内部开发的Outlook外接程序(称为外接程序a),该外接程序附加到发送事件,如果满足有关发件人地址和主题的某些规则,则会显示表单,将数据写入SQL数据库并发送电子邮件。这个很好用

我们刚刚在公司范围内推出了一个第三方Outlook加载项(称为加载项B),该加载项检查您发送的任何电子邮件,看看它们是否要发送到外部地址,如果是,则询问您是否确实要发送。同样,这很好用

问题在于这两者何时结合。虽然它们之间没有冲突或类似的技术问题,但存在一个潜在的逻辑错误,您可以尝试发送电子邮件,添加一个插件,用户完成表单并将数据写入数据库。然后加载项B启动,警告用户他们正在发送外部电子邮件,他们决定不发送,整个过程被取消。然而,数据库已经更新,说它是被发送的,这是不正确的

我正在努力想办法防止这种情况发生-如果我们可以在加载项A之前强制加载项B启动,那么这将解决问题,但我非常确定,您不能指定每个加载项启动或启用的顺序,并且我们无法控制加载项B的代码,因为它是第三方产品


有什么建议可以防止这种情况发生吗?

首先,您可以在Outlook中处理“已发送邮件”文件夹的ItemAdd事件,以确保邮件项目(Outlook项目)确实已发送。请注意,可以使用MailItem类的属性在运行时指定Sent Items文件夹

此外,您还可以为外接程序选择ProgID名称,以确保外接程序在其他外接程序之后加载。事件按相反顺序触发。但所有这些事实都没有记录在案,可以随时更改。没有人能保证它一直稳定工作