Outlook Add-In:如何用外部服务模拟自动回复?

Outlook Add-In: how to simulate automatic reply with external service?

背景

我之前问过这个问题:

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

问题

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

例子

例如:

  1. 加载项将收到的电子邮件复制到文件夹。
  2. 加载项命中外部 API 端点。
  3. 外部服务发送自动回复电子邮件(可能使用 SMTP 或类似工具?)。

澄清

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


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

谢谢!

是的,可以使用基于 COM 的 add-ins(基于 VSTO 的)。

Application.NewMailEx event fires once for every received item that is processed by Microsoft Outlook. The item can be one of several different item types, for example, MailItem, MeetingItem, or SharingItem. The EntryIDsCollection string contains the Entry ID that corresponds to that item. Use the Entry ID specified in the EntryIDCollection string to call the NameSpace.GetItemFromID 方法和处理项目。

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

您可以将 VSTO add-in 视为常规 windows .net 应用程序。因此,可以使用标准机制进行网络调用。例如,您可能会发现 Calling Web Services with HttpWebRequest, WebClient and HttpClient 文章很有帮助。

目前,在没有任何项目上下文的情况下调用 outlook add-ins 的功能不是产品的一部分。

我们在 Tech Community Page 上跟踪 Outlook add-in 功能请求。请在那里提交您的请求并选择合适的标签。我们在规划过程中会考虑技术社区的功能请求。