Html 通过 Microsoft.Office.Interop.Outlook 添加时的图像大小

Html Image size when added via Microsoft.Office.Interop.Outlook

使用 MS Outlook 2010,Visual Studio 2012 中的 c#,Microsoft.Office.Interop.Outlook 版本 14。

我正在尝试使用 outlook 自动化打开一封新电子邮件,其中预先填充了一些 html。

代码如下:

using Microsoft.Office.Interop.Outlook;
using Outlook = Microsoft.Office.Interop.Outlook;

...

            // bring up outlook
            Application oApp = new Application();
            Outlook._MailItem oMailItem = (Outlook._MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);

            oMailItem.To = "any@any.com";    

            string body = System.IO.File.ReadAllText("welcome.html");

            oMailItem.HTMLBody = body;
            oMailItem.Subject = "Welcome";

            oMailItem.Display(false);   

其中 welcome.html 看起来像这样:

<!DOCTYPE html>
<html lang="en">

<head>
  <title>Welcome</title>
</head>

<body lang="EN-AU">        
              <p>hello world</p>   <!-- XXX : repeat as necessary -->
            <p>   
            <img src="http://www.w3.org/2008/site/images/logo-w3c-mobile-lg" alt="logo" />
            </p>    

</body>
</html>

注意:可以使用任何标志(不要太小)——我使用的标志只是一个例子。

代码运行正常,但徽标大小有问题。 当标记为 XXX 的 html 行重复多次(例如 50 次)时,可能会出现此问题。

有两种情况:

a) 在 outlook 中,在发送电子邮件之前,向下滚动以查看完整文档。我注意到 outlook 似乎调整了图像的大小。邮件发送后,收件人看到的是正常大小的图片:

b) 在 Outlook 中,在发送电子邮件之前,请勿向下滚动以查看完整文档。收到电子邮件时,图像很小。 (32 像素 x 32 像素):

情况 a) 产生的电子邮件是期望的结果。但如果用户在发送前不必向下滚动来预览整个内容,那就更好了。

任何解决方法?在 img 上使用 html 宽度和高度属性来显式设置尺寸似乎可行,但这是不可取的,因为在现实生活中,图像是动态选择的(因此无法硬编码尺寸)。如果有某种方法(通过自动化)在发送前模拟预览整个电子邮件,这也可能有效。

萌,

Outlook 使用 Word 作为电子邮件编辑器。您可以在 MSDN 中的以下系列文章中阅读有关受支持和不受支持的 HTML 元素、属性和级联样式表属性的信息: