本文介绍了Outlook外接程序:如何模拟外部服务的自动回复?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

背景

我之前问过这个问题:Outlook Add-In: how to automatically reply based on custom logic?

正如Answerers@Eugene Astafiev和@OutlookAdd-insTeam-MSFT指出的那样,Outlook Web加载项只能在当前选定的项目上运行。这不适用于自动回复用例,因为无论用户是否选择了新电子邮件,自动回复都应该在收到新电子邮件时发送。

问题

尽管如此,我知道加载项可以对传入邮件进行分类,例如将它们移动/复制到不同的文件夹。是否可以检测到这种意义上的传入邮件,然后让外接程序调用外部服务,以这种方式发送自动回复?

示例

例如:

  1. 外接程序将传入电子邮件复制到文件夹。
  2. 外接程序命中外部API终结点。
  3. 外部服务发送自动回复电子邮件(可能使用SMTP或类似?)。

说明

不是希望使用Outlook中的内置自动回复功能,因为该功能的选择非常有限。(粗略地说,它只能向所有发件人发送一条消息,或者一条消息发送给联系人,另一条消息发送给非联系人。)我希望根据自定义逻辑发送此模拟的自动回复,例如外部服务是否已验证发件人的电子邮件。


这可能吗?如果是,有什么关于如何最好地实施它的建议吗?

谢谢!

推荐答案

可以,可以使用基于COM的加载项(基于vsto的加载项)。

Microsoft Outlook处理的每个接收项目都会触发一次Application.NewMailEx事件。项目可以是几种不同的项目类型之一,例如,MailItemMeetingItemSharingItemEntryIDsCollection字符串包含与该项目对应的条目ID。使用EntryIDCollection字符串中指定的条目ID调用NameSpace.GetItemFromID方法并处理该项。

如果您需要处理Outlook中的任何特定文件夹,并且只处理拖到该文件夹中的项目,则可以使用Items.ItemAdd事件,该事件在将一个或多个项目添加到指定集合时触发。注意,当一次向文件夹添加大量项目(超过16个)时,此事件不会运行。

您可以将VSTO外接程序视为常规的Windows.Net应用程序。因此,可以使用标准机制进行Web呼叫。例如,您可能会发现Calling Web Services with HttpWebRequest, WebClient and HttpClient文章很有帮助。

这篇关于Outlook外接程序:如何模拟外部服务的自动回复?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-18 00:54