使用Outlook web加载项记录传入和传出的电子邮件
我有一个基于VSTO COM的Outlook外接程序,可在桌面Outlook上截取所有传入/传出的电子邮件,然后将电子邮件的详细信息保存到SQL数据库中。以下是我使用外接程序所采取步骤的简要说明:使用Outlook web加载项记录传入和传出的电子邮件,outlook,vsto,exchangewebservices,Outlook,Vsto,Exchangewebservices,我有一个基于VSTO COM的Outlook外接程序,可在桌面Outlook上截取所有传入/传出的电子邮件,然后将电子邮件的详细信息保存到SQL数据库中。以下是我使用外接程序所采取步骤的简要说明: 拦截传入/传出电子邮件,并在电子邮件上添加自定义GUID作为用户属性 在云上调用我的自定义Web API的端点,并发送一个包含详细信息的XML,如GUID(保存在上面)和其他与邮件相关的ID和详细信息 API端点将详细信息保存到SQL数据库中,并将响应返回给Outlook,以便Outlook不会冻结
是否可以使用较新的Outlook Web加载项创建类似的内容 有点-您可以拦截传出消息,但如果拦截,您的加载项将无法在应用商店中发布
在VSTO中仍然容易得多。您无法从辅助线程访问Outlook对象模型,但仍可以运行执行其他操作的代码。完成后,可以通过在启动次线程之前保存的条目id打开需要处理的消息来访问主线程上的OOM。请注意,无法从辅助线程访问各种对象是OOM特定的——扩展的MAPI对象可以从辅助线程访问,但扩展的MAPI需要C++或Delphi。在其他语言(包括所有.Net语言)中,您可以使用及其对象族-只需将
Application.Session.MAPIOBJECT
属性的值保存在专用变量中,然后在辅助线程上创建对象的实例,并将其MAPIOBJECT属性设置为保存在主线程上的变量(有关详细信息,请参阅) 有点-您可以拦截传出消息,但如果拦截,您的加载项将无法在应用商店中发布
在VSTO中仍然容易得多。您无法从辅助线程访问Outlook对象模型,但仍可以运行执行其他操作的代码。完成后,可以通过在启动次线程之前保存的条目id打开需要处理的消息来访问主线程上的OOM。请注意,无法从辅助线程访问各种对象是OOM特定的——扩展的MAPI对象可以从辅助线程访问,但扩展的MAPI需要C++或Delphi。在其他语言(包括所有.Net语言)中,您可以使用及其对象族-只需将Application.Session.MAPIOBJECT
属性的值保存在专用变量中,然后在辅助线程上创建对象的实例,并将其MAPIOBJECT属性设置为保存在主线程上的变量(有关详细信息,请参阅)