C# 绕过Outlook中的ItemSend事件

C# 绕过Outlook中的ItemSend事件,c#,email,outlook,event-handling,C#,Email,Outlook,Event Handling,我们为客户开发了一个C#Outlook插件,允许他们将电子邮件归档到数据管理系统中(即捕获电子邮件数据,输入一些附加元数据以及在DMS中的存储位置)。这可以通过收件箱中的电子邮件(文件)或正在发送/转发的电子邮件(发送和文件)实现。这一切都很好 问题是,我们的客户机还使用了另一个加载项,该加载项捕获ItemSend事件,并阻止我们的加载项在他们尝试发送和归档电子邮件时完成。将电子邮件数据归档到他们的DMS后,我们通过调用Outlook的MailItem.send方法发送它,该方法引发ItemSe

我们为客户开发了一个C#Outlook插件,允许他们将电子邮件归档到数据管理系统中(即捕获电子邮件数据,输入一些附加元数据以及在DMS中的存储位置)。这可以通过收件箱中的电子邮件(文件)或正在发送/转发的电子邮件(发送和文件)实现。这一切都很好

问题是,我们的客户机还使用了另一个加载项,该加载项捕获ItemSend事件,并阻止我们的加载项在他们尝试发送和归档电子邮件时完成。将电子邮件数据归档到他们的DMS后,我们通过调用Outlook的MailItem.send方法发送它,该方法引发ItemSend事件,导致他们的加载项弹出并停止我们的工作。我们不能让他们禁用该加载项,因为他们将其其他功能用于业务流程,我们也不能访问其代码来禁用ItemSend事件处理


有没有一种方法可以在不引发ItemSend事件的情况下发送电子邮件?

仅当您使用扩展MAPI(C++或Delphi)或扩展MAPI包装器(例如,可以从任何语言使用)时才有此方法。

您可以自由使用低级API-托管语言的扩展MAPI(在您的情况下是C)。没有人禁止这样做。Outlook只是该API的一个大包装(还有赎回)。有关更多信息,请参阅