Outlook 外接程序 API 是否支持事件侦听器

Do Outlook Add-ins API support event listeners?

本文关键字:支持 事件 侦听器 是否 API 程序 Outlook      更新时间:2023-09-26

我打算编写一个Outlook加载项,我想知道是否有一种方法可以收听事件,例如"发送按钮"。实际上,我想在用户按下发送按钮时操纵正文,甚至在发送电子邮件之前。

据我所知,执行此操作的唯一方法是创建一个按钮,例如"操作",并在单击时附加一个事件。这是可行的,但是如果您每次发送电子邮件时都必须这样做,那就很烦人了。

此外,Outlook 如何运行加载项?在撰写模式下,如果我确实有:

Office.context.mailbox.item.body.getAsync

每当我在正文中键入新字母或发送消息时,都会运行此消息吗?我有点困惑。

这可能有点重复。再次感谢。

不能将侦听器附加到 iFrame 父窗口(加载项所在的位置)的 DOM 元素上。因此,您无法破解Outlook Web Access按钮的行为。

请务必注意,新的 Office Web 加载项生成比旧的桌面加载项侵入性更小。事实上,例如,使用 VSTO,人们确实可以访问整个 Outlook 对象模型,无论好坏。这是我写的一篇关于这个主题的博客文章。

您描述的解决方案似乎是执行所需操作的合适方法。此外,让我强调一下,Web addins 框架不允许您在未经用户同意的情况下更改电子邮件的内容是一件好事。

请记住,Office.js 为您提供了与 EWS API 通信的可能性,这在 Office .js API 无法直接提供某些内容时非常有用。请参阅此链接。

关于"每当我在正文中键入新字母或发送消息时,这是否运行?

根据我的实验,它将每隔几秒钟(接近~20秒)返回新的正文内容,即使您每秒调用Office.context.mailbox.item.body.getAsync也是如此。

我不知道为什么存在此刷新间隔,它没有记录在案 AFAIK,以及为什么它不像 VSTO 加载项中那样在每个字母中刷新。

我发现实时刷新它的唯一(奇怪)方法是用户按下任务窗格。

我想我们将不得不等待类似 excel js api 事件的东西。