What you want is multipart mime email. If their mail reader supports the mime standards, it will display the text only part if they want text, and the html part if their reader is html capable. (This is normally a big if, but it seems to be well supported in practice. And it looks all pretty in Outlook to pass the Business Unit test.)
in reply to email for both plain text and html
It's something like (from one of our templates):
The 'boundary' is just an arbitrary string that won't appear in the email.
From: W3 Data <firstname.lastname@example.org>
Content-Type: multipart/alternative; boundary="_jkkdsffds32432dlkjifew
Subject: BatchAppend411 Job Confirmation
Content-Type: text/plain; charset="iso-8859-1"
... Text email content ...
Content-Type: text/html; charset="iso-8859-1"
... more html content