将 <img src> 标记添加到 Outlook Mailitem 正文在 VSTO 加载项中不起作用

Adding <img src> tag to Outlook Mailitem body does not work in VSTO Add-in

我有一个用于 Outlook 的 VSTO 加载项,可以将标记附加到电子邮件的底部。这样做

    string imageUrl = "http://imageurl.com/image.png"
    HtmlNode imageNode = HtmlNode.CreateNode("<img src=\"" + imageUrl");

    string htmlEmail = mailItem.HTMLBody
    HtmlAgilityPack.HtmlDocument html = new HtmlAgilityPack.HtmlDocument();
            html.LoadHtml(htmlEmail);
    HtmlNode body = html.DocumentNode.SelectSingleNode("//body");
    body.AppendChild(imageNode);
    html.DocumentNode.WriteTo();

这个效果很好。但是,我最近注意到,对于加载项的某些用户,已发送电子邮件的最终 HTML 实际上看起来像这样

<img border=3D0 id=3D"_x0000_i1026" =
src=3D"cid:image007.png@01D1CB01.8E9D89F0" =
alt=3D"http://imageurl.com/image.png">

我在电子邮件的底部看到

------=_NextPart_000_018A_01D1CB01.8F0E7430
Content-Type: image/png;
    name="image007.png"
Content-Transfer-Encoding: base64
Content-ID: <image007.png@01D1CB01.8E9D89F0>

iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAACnej3aAAAAAXRSTlMA
QObYZgAAAApJREFUCB1jYAAAAAIAAc/INeUAAAAASUVORK5CYII=

据我了解,用户的 Outlook 并没有在我查看电子邮件时获取图像,而是下载图像并将其附加到电子邮件中。

我的问题是:Outlook 中是否有一些设置可以实现这种情况?有没有办法改变这个设置?这只发生在一些用户身上,所以我很好奇是什么导致了这种情况发生。

谢谢!

我在深入挖掘后发现了一个可能的原因,但我不确定这是否是这个特定用户正在发生的事情。

显然,Outlook 2007 曾经有一个公开的设置,它使所有 outlook 图像都以上述方式自动嵌入。在 2010 年或更高版本中,此设置隐藏在注册表中但仍然存在。

此处有更多详细信息:https://www.msoutlook.info/question/72