Keeping in mind that I only need to render properly in Outlook 2010, I'm dropping the explicit <html>
and <header>
tags and allowing the MailMessage to handle those:
message.Body = @"
<style>
<!--
p{
[truncating the rest...]
}
--->
</style>";
When I receive the email in Outlook, this is the format of the source, which works for rendering and it's quite as illogical as before (I corrected the indention for readability):
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head>
<style>
[css...]
</style>
<body>
[content...]
</body>
</html>
The CSS still isn't contained within the tag, but at this point I feel lucky that the HTML renders properly in the Outlook client.