背景:我正在开发一个 Outlook 插件,它将附件添加到传出的电子邮件中。所有版本的 Outlook 都需要支持。
使用数字签名对 MailItem 进行签名后,向该 mailItem 添加附件通常会失败,除非您保存该邮件项目。这会从 mailitem 中删除签名。对我来说,这在某种程度上是预期的行为。这里没有什么奇怪的。
问题是当用户打开数字签名(无论是通过 UI 还是作为 Outlook 默认行为)然后再次将其关闭时。MailItem 不再签名,但它仍然表现得好像是 - 我们无法向此电子邮件添加附件。
我找到了一个可以解释原因的新闻组帖子;通过 Outlook API 检索到的对象似乎不是实际对象。
目前,我已经放弃尝试很好地解决这个问题。将 MailItem 保存到临时文件似乎可以解决此问题,但是出于性能原因,我们只想在 MailItem 从已签名转换为未签名时保存。另一种可接受的替代方法是检测是否默认启用了数字签名。虽然有一个与数字签名的默认设置相关的注册表项,但这只是一个建议,并不能准确反映电子邮件是否会默认签名。
有任何想法吗?