45

我以编程方式发送 HTML 格式的电子邮件,并将字体设置为 Arial 始终 ( font-family: Arial;)。当邮件到达 Outlook 2010 时,table元素中的文本采用 Times New Roman。元素中的文本div在 Arial 中很好。如果 I View Source,复制到 HTML 文件中,并在浏览器中查看,所有字体都按预期运行(都是 Arial)。

一些 Google结果显示,如果未指定任何字体,Outlook 将回退到其默认字体(Times New Roman),但这不是这里发生的情况。

如果另行指定,为什么 Outlook 会强制我的电子邮件以 Times New Roman 显示?

4

10 回答 10

67

即使您设置font-family: arial为餐桌,它仍然无法正常工作。您需要为td您内部的每个字体专门设置字体table以使其正确。

于 2012-05-06T02:05:03.653 回答
29
<!--[if mso]>
<style> body,table tr,table td,a, span,table.MsoNormalTable {  font-family:Arial, Helvetica, sans-serif !important;  }</style>
<!--<![endif]-->
于 2014-04-25T09:57:41.020 回答
10

table问题的嵌套在具有divfont-family:Arial;样式的 a 中,但table没有设置字体。因此,表格不会从某些客户端的 HTML 电子邮件中的容器中继承字体(可能还有其他东西)。

于 2012-05-04T22:54:21.583 回答
6

这个问题是从 Outlook 2007 发生的,以前的解决方案对我不起作用,唯一可行的解​​决方案是用<font face="arial, sans-serif">My text with arial</font>

于 2013-04-02T18:03:58.690 回答
2

如果您使用的是 Outlook 2007,则必须在 table 上定义 font-family。否则它将设置为默认衬线字体。

于 2013-01-30T07:30:50.483 回答
1

<font> 标记已被弃用,但由于 Outlook 2010 正在删除(几乎所有)样式,这是它工作的唯一方式。

于 2013-06-27T15:54:02.397 回答
1

table.MsoNormalTable {font-size:12.0pt; font-family:"Times New Roman";} 使用 Text Pad 打开您的 HTML,并将其更改为 Arial。

于 2013-11-13T15:45:12.230 回答
1

使用与@font-face 链接的自定义字体,上述方法都不适合我。必须使用 Outlook 的条件标签。我花了很长时间才弄清楚到底是怎么回事。所以我设置了一个代码示例:在我的情况下我仍然遇到了一些麻烦,所以我分享了一个代码示例:https ://stackoverflow.com/a/21626196/135654

于 2014-02-07T11:33:10.917 回答
1

你可以把你的风格放到“span”标签上,效果很好。

   <td>
       <span style="font-family: "Times New Roman"></span>
   </td>
于 2015-07-29T07:09:28.800 回答
0

我遇到了同样的问题....电子邮件正文中的所有文本都是 Arial,但表格默认为 word。我必须在每个单元格中包装字体......耗时..

于 2015-10-16T20:58:51.003 回答