【问题标题】:Html Image size when added via Microsoft.Office.Interop.Outlook通过 Microsoft.Office.Interop.Outlook 添加时的 Html 图像大小
【发布时间】:2015-04-19 02:33:36
【问题描述】:

使用 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 宽度和高度属性来显式设置尺寸似乎可行,但这并不可取,因为在现实生活中,图像是动态选择的(因此无法硬编码大小)。如果有某种方式(通过自动化)在发送前模拟预览整个电子邮件,这也可能有效。

【问题讨论】:

    标签: c# html outlook automation


    【解决方案1】:

    萌,

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

    【讨论】:

    • 谢谢,关于限制的有用信息。尽管尝试找到解决方法并没有真正帮助。
    猜你喜欢
    • 2016-09-25
    • 2018-04-08
    • 2013-01-25
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 2011-06-13
    • 2016-07-28
    相关资源
    最近更新 更多