Outlook 2010 overriding font-family from Arial to Times New Roman

I'm programmatically sending HTML-formatted email, and setting the font as Arial throughout (font-family: Arial;). When the messages arrive in Outlook 2010, text in table elements is in Times New Roman. Text in div elements is fine in Arial. If I View Source, copy into an HTML file, and view in a browser, all fonts function as expected (it's all Arial).

Some Google results show that Outlook will fall back to its default font (Times New Roman) when none is specified, but that's not what's happening here.

Why is Outlook forcing my email to display in Times New Roman when specified otherwise?


Even if you set font-family: arial to table, it still wont work. You need to specifically set the font for each td inside your table to get it right.


<!--[if mso]>
<style> body,table tr,table td,a, span,table.MsoNormalTable {  font-family:Arial, Helvetica, sans-serif !important;  }</style>
<!--<![endif]-->

The table in question was nested in a div that had font-family:Arial; in its style, but the table did not have a font set. So tables don't inherit fonts (and perhaps other things) from their containers in HTML emails in some clients.


This issue was happening from outlook 2007 and the previous solutions didn't work for me, the only solution that seems to work is wrapping the text with <font face="arial, sans-serif">My text with arial</font>


If you're working with Outlook 2007, you must define font-family on table . Otherwise it will set to default serif font.