2017-08-15 70 views
0

在Outlook Web Add-In中,我试图拦截发送电子邮件时触发的OnSend事件。附件提醒后拦截OnSend事件

我在GitHub中使用这个example,它工作正常。

如果我在电子邮件正文中包含单词“附件”,并且点击发送按钮,OnSend事件首次被触发,因此我可以对电子邮件的内容进行一些处理。然而,一段时间后,弹出一个模态窗口显示了此消息:

附件提醒

您可能忘记附加文件。

发送不要发送按钮。如果点击发送,OnSend事件被第二次触发。这一次,重复相同的电子邮件处理将是无用的。所以,我正在寻找一种方法来发现第二个OnSend事件在附件提醒之后被解雇。

有没有办法区分第一个和第二个OnSend事件?

回答

0

感谢您的提问,Mhd!这似乎是无意的行为,实质上是我们将研究修复的缺陷。 ItemSend事件应该与被遗忘的附件检测很好地相互操作,并且应该仅在检测发生后才被提出。换句话说,第一个事件不应该被调用。如果在解决此问题之前进行两次处理,是否会出现问题?

+0

不幸的是,当OnSend事件被触发时,我向电子邮件正文添加更多内容,这对我来说是一个问题。所以它会被添加两次。既然您确认了这个问题,我会尝试记住已发送的项目(使用本地存储)以避免重复处理。另外我注意到,在附件提醒窗口中单击**发送**按钮后,发送了两次“OnSend”事件(不包括附件提醒之前的第一个事件)https://stackoverflow.com/questions/45489188/onsend-fired-两次 - 附件提醒/ 45489927?noredirect = 1#comment77976834_45489927 – Mhd

+0

明白了。是的,那么你确实需要提出一个解决方法。你正在考虑的一个可能会奏效。您也可以尝试在该项目上设置一个自定义属性,指出它已被处理,并且当再次引发事件时,首先检查该属性,如果设置则忽略该事件。但我不知道你的情况 - 如果用户取消附件对话框中的发送并修改了邮件内容,会发生什么情况 - 您需要重新处理邮件吗? –

+0

我喜欢自定义属性的想法比本地存储更好。谢谢!!!如果电子邮件正文已被修改,我必须重新进行处理并根据新的电子邮件正文插入新内容。但是,我必须忽略第一个过程(删除第一个插入的内容)。我该如何处理这种情况? – Mhd