There is no spec on HTML and CSS in emails and some people (like me) dislike receiving them. I suggest sticking to plain text. At the very least, you need to provide a plain text alternative, which can be done with multipart encoding.

Also, headers are supposed to be separated by \r\n regardless of platform, but in practice I think this varies and \n is probably safer.