Gen*_*ror 8 c# email outlook interop stylesheet
我有一个用C#编写的应用程序,它使用Outlook Interop打开一个新的邮件消息,预先填写用户可以在手动发送之前编辑的详细信息.
var newMail = (Outlook.MailItem)outlookApplication.CreateItem(
Outlook.OlItemType.olMailItem);
newMail.To = "example@exam.ple";
newMail.Subject = "Example";
newMail.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
newMail.HTMLBody = "<p>Dear Example,</p><p>Example example.</p>";
newMail.Display(false);
Run Code Online (Sandbox Code Playgroud)
当同一用户手动创建新消息时,字体将设置为Calibri或用户将其设置为默认字体.问题是自动电子邮件中的文本显示在我们不想要的Times New Roman字体中.
如果我查看其中一封已发送的电子邮件的来源,我可以看到Outlook已明确设置电子邮件来源中的字体:
// Automated
p.MsoNormal, li.MsoNormal, div.MsoNormal
{
margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";
}
// Manual
p.MsoNormal, li.MsoNormal, div.MsoNormal
{
margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
}
Run Code Online (Sandbox Code Playgroud)
为什么格式不同,如何让自动电子邮件使用用户默认设置?我正在使用互操作程序集的版本11,因为安装了Outlook 2003和2007的混合.
这完全令人沮丧.
当你谷歌问题时,无数的答案告诉你只需在CSS中设置文本样式,这没有任何帮助.Yeeessss,很好,如果您正在生成完整的电子邮件并可以设置/控制整个文本.但在你的情况下(和我们的),目的是用一些初始文本启动电子邮件,最终用户添加他自己的文本.这是他在Times New Roman中不断呈现的附加文本.
我们找到的解决方案是从另一个方向解决问题.这就是将Outlook中的基本/底层默认值修复为我们选择的字体而不是Times New Roman.
这可以通过以下方式完成:
视频:http:
//www.youtube.com/watch?v = IC2RvfoMFz8
我很感激,如果您需要以编程方式控制或更改字体,这无济于事.但对于那些只是希望基本电子邮件字体不是 Times New Roman的客户而言,无论何时通过代码生成电子邮件,这都可能有所帮助.
由于它是 HTML 电子邮件,因此您可以轻松地将所需的任何样式嵌入到实际的 HTML 正文中。我怀疑这就是当您从 Outlook GUI 创建邮件时 Outlook 所做的事情。
我实际上不知道如何获取用户设置。我查看了 Outlook API(它是一个奇怪的野兽),但没有看到任何可以提供对默认邮件属性的访问的内容。
| 归档时间: |
|
| 查看次数: |
6955 次 |
| 最近记录: |