附件提醒后 OnSend 触发两次
Posted
技术标签:
【中文标题】附件提醒后 OnSend 触发两次【英文标题】:OnSend fired twice after attachment reminder 【发布时间】:2018-01-11 08:27:47 【问题描述】:在 Outlook Web 加载项中,我试图拦截发送电子邮件时触发的 OnSend
事件。
我在 GitHub 中使用了这个 example,它运行良好。
如果我在电子邮件正文中包含“附件”一词并单击“发送”按钮,OnSend
事件将被触发一次,并且弹出模式窗口会显示以下消息:
附件提醒
您可能忘记附加文件了。
带有发送和不发送按钮。如果点击发送,OnSend
事件会被触发两次:点击附件提醒中的Send
按钮后两次。我预计只有一个事件,例如第一个 Send。
如何让OnSend
事件在附件提醒后触发一次?
【问题讨论】:
【参考方案1】:您不能 - 如果消息提交被取消,然后重新提交消息,则事件会再次触发。您可以拥有已处理的消息条目 id 列表 - 在 OnSend 触发时将 id 添加到该列表中,然后在下次再次触发事件时检查该消息是否在该列表中。
【讨论】:
如果我点击附件提醒中的发送按钮,OnSend
将触发 2 次(不计算第一个 OnSend
事件)
不是要处理这个问题,它是关于OnSend
被解雇两次的事实不是预期的行为。当我说两次时,这意味着从附件提醒中单击发送按钮后的 2 次,不包括预计只会触发一次的第一个 OnSend(附件提醒之前)。
如果您想修复它,您需要向 Microsoft 开一个支持案例。在 SO 上发布有关此问题的信息不会有任何作用。【参考方案2】:
这似乎是无意的行为,本质上是我们将研究修复的缺陷。 ItemSend 事件应该与忘记附件检测很好地交互操作,并且应该只为任何电子邮件引发一次,并且仅在发生忘记附件检测之后。与此同时,您需要想出一个解决方法。根据您要执行的操作,您可以使用custom properties API 设置一个属性,指示该消息已被处理以避免重复处理。
【讨论】:
以上是关于附件提醒后 OnSend 触发两次的主要内容,如果未能解决你的问题,请参考以下文章