【发布时间】: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