Outlook VSTO加载项HTMLBody不包含MailItem.Open事件上的签名

时间:2017-07-27 19:40:55

标签: vsto outlook-addin

我编写了一个Outlook加载项,用自定义签名替换Outlook签名文件中的占位符。在NewInspector事件中,我检查它是否是一个mailitem并且它是未发送的,如果是这样的话,它连接到MailItem.Open事件,这是我替换签名的地方。

在Outlook 2016版本1705(build 8201.2102)之前工作正常。当我在MailItem.Open事件中检查HTMLBody时,从该版本开始,默认签名不再存在。现在,对于新电子邮件的MailItem.Open事件,正文始终为:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="Generator" content="MS Exchange Server version 16.0.8326.2033">
<title></title>
</head>
<body>
<!-- Converted from text/plain format -->

</body>
</html>

如果我恢复到版本1704,代码将按预期再次运行。

好像签名不再被添加到新检查员的MailItem.Open事件中的MailItem.HTMLBody中,但在某处更远的地方。我已经尝试检查文档,查看项目打开后发生的任何事件,并添加了默认签名,但没有看到任何看起来有用的内容。

作为新电子邮件的解决方法,我可以测试HTMLBody是239个字符,但这对于检查员的回复不起作用,因为它会删除详细信息(发送,发送,转到主题等)。 )原始电子邮件,通常在签名块和原始电子邮件之间。似乎不再在MailItem.Open事件中添加这些。

我通过explorer.InlineResponse事件使用内联响应执行相同的操作,该事件仍然可以正常运行。

我的另一种方法是通过加载项更新实际的签名文件,而不是在资源管理器和检查器事件上替换它们。不便之处在于,当我回复纯文本电子邮件时,我的签名是纯文本,而在旧设置中,即使回复纯文本电子邮件,我的HTML签名也会被包含在内。

是否有人知道我应该在检查员窗口中使用的不同事件用于电子邮件?这是设计的吗?还有其他见解吗?

提前致谢!

0 个答案:

没有答案