We recently had a debate on the internal bloggers distribution list about how MSDN bloggers need to play nice and not hard-code their font faces, colors and sizes. I admit that I'd been guilty of this myself, so I've since resolved to stop doing that, and I figured it was worth a blog post to talk about how you can get Outlook and IE to show you the fonts you want to use. Note that I'm not an expert in this area, I never owned it, and the below is just what I've seen from personal experimentation.
This internal discussion was actually pretty funny... I replied on the thread and mentioned how I really dislike serif fonts like Times New Roman, and so I have Outlook configured to use Verdana. I got several responses laughing at me because when they viewed my message on their systems, it was displayed in TNR, so they thought I had lovingly typed out - in TNR - a message about how I didn't like TNR. I gently explained that that was how their systems were configured and they were just proving the whole point of giving the user control over how the fonts display on their own systems, i.e. the whole reason the thread was started!
There are a few issues here:
- The font IE uses to display text when there is no font specified in the HTML (or the font IE uses in the edit control, such as the way I'm writing this blog entry in .Text right now)
- The font Outlook uses to display inbound mail that doesn't have a hard-coded font specified
- The font used when writing in an email
- The default font used by Word and Excel (unrelated to email but relevant to the overall issue)
#1: IE's display font
By default, IE uses Times New Roman as the display font for HTML which doesn't have a pre-specified font, and in rich edit controls. This can be changed via Tools | Internet Options | Fonts. You can also change the font it uses in plain text controls like TEXTAREA (and I much prefer Lucida over Courier).
#2: Outlook's display font
Outlook uses the underlying HTML rendering engine from IE to display HTML email, so changing the viewing font in IE will change it for the messages you view that don't already have a hard-coded font specified.
Unfortunately, when you use Word as your e-mail editor, it hardcodes the fonts (it sets the font for a class which is applied to the body text). Thus, email sent from people using Word as their editor will not obey the display font specified on the receiver's machine, it will use the one embedded in the email. I played around but was unable to see how to either A) delete the style from the template or B) change it to be undefined rather than use a specific font. If anyone else knows how, please add a comment to this entry and I'll update it.
#3: Outlook's edit font
Outlook lets you configure a different font style for composing new messages, replying to and forwarding existing messages, as well as composing and reading plain text. There are some interesting behaviors here that I've uncovered through experimentation (I was not involved in the original implementation, so I am in no position of authority here).
To configure the edit font when using Outlook as your editor, go to Tools | Options | Mail Format | Fonts, the UI is pretty self-explanatory. The interesting part comes along with how it appears to interact with the font display option in IE: when the edit font in Outlook and the display font in IE are the same face, Outlook does not hard code the font in the HTML. But when they are different, it does hard code the font in the HTML. This is an interesting behavior - if you're consistent about applying your own personal font preferences, then Outlook plays nice in HTML. If you're not, it assumes you want to control what others see. There may have been some other reason for this that I'm not thinking of.
When you use Word as your editor, it picks up the font configuration options from Outlook, and in my testing it appears to always hardcode the font in the HTML itself. Note that Outlook does use Tahoma for the headers ("--- original message ---" etc) in a reply/fwd, and I'm not aware of a way to change those.
#4: Change Word and Excel's default font
I included these in the list because the way you change the defaults is different in nearly every app, which I find annoying. In Word, go to Format | Font, set the font the way you want it, and click the Default button. This changes the "Normal" style in normal.dot to that font. In Excel, it's on Tools | Options | General tab | Standard font. Side note: I'm so pedantic, it annoys me that it is called the "standard font" in Excel rather than "default".