我们目前有一个团队使用我们在内部开发的附加到Send事件的Outlook加载项(称为加载项A),如果满足From地址和Subject的某些规则,则表单为显示,数据被写入SQL数据库并发送电子邮件。这很好。
我们刚刚在公司范围内推出了第三方Outlook插件(称之为插件B),它会检查您发送的任何电子邮件,以查看他们是否要访问外部地址,如果是问你是否确定要发送。再次,这很好。
问题在于这两者结合在一起。虽然没有技术问题,但是它们发生冲突或类似的事情,可能会出现逻辑错误,您可以尝试发送电子邮件,加载项启动,用户完成表单并将数据写入数据库。然后加载项B启动,警告用户他们发送外部电子邮件,他们决定不发送,整个过程被取消。但是,数据库已更新,说它已发送,这是不正确的。
我正在努力想办法防止这种情况发生 - 如果我们可以在加载项A之前强制加载项B启动然后解决问题,但我很确定你不能指定每个加载项应该触发或启用的顺序,我们无法控制加载项B的代码,因为它是第三方产品。
有任何建议可以防止这种情况成为可能吗?
答案 0 :(得分:0)
首先,您可以处理Outlook中“已发送邮件”文件夹的ItemAdd事件,以确保邮件项目(Outlook项目)已确定已发送。请注意,可以使用MailItem类的SaveSentMessageFolder属性将已发送邮件文件夹指定为运行时。
您也可以选择加载项的ProgID名称,以确保加载项加载到其他加载项之后。事件以相反的顺序触发。但所有这些事实都没有记录,可以随时更改。没有人能保证它一直稳定运行。