If it's any help earthlingzed, a newsletter app that I've put together for a client of ours simply has the plain text before the html (the two are separated by --MIME_BOUNDRY-- tags), this way, subscribers whose email client can interpret html see this, and those that don't see the plain text version..something along the lines of....
// Set the headers for the mail
$headers = "From: sitename <someone@somewhere.co.uk>\r\n";
$headers .= "X-Sender: someone@somewhere.co.uk\r\n";
$headers .= "X-Mailer: sitename\r\n"; //mailer
$headers .= "X-Priority: 3\r\n"; //1 UrgentMessage, 3 Normal
$headers .= "Return-Path: <someone@somewhere.co.uk>\r\n";
$headers .= "Reply-To: <someone@somewhere.co.uk>\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"MIME_BOUNDRY\"\r\n";
$headers .= "This is a multi-part message in MIME format.\r\n";
// add the plain text for non html mail readers.
$mailbodytext = "--MIME_BOUNDRY\r\n";
$mailbodytext .= "Content-Type: text/plain; \r\n";
$mailbodytext .= "\tcharset=\"iso-8859-1\"\r\n";
$mailbodytext .= "Content-Transfer-Encoding: quoted-printable\n\n\n";
$mailbodytext .= "This e-mail is available in HTML format only. No text version is available.";
$mailbodytext .= "\n\n\n";
// now we add the html section of the message
$mailbodytext .= "--MIME_BOUNDRY\n";
$mailbodytext .= "Content-Type: text/html;\n";
$mailbodytext .= "\tcharset=\"iso-8859-1\"\n";
$mailbodytext .= "Content-Transfer-Encoding: quoted-printable\n";
$mailbodytext .= "\n";
$mailbodytext .= "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
$mailbodytext .= "<html>\n";
$mailbodytext .= " <head>\n";
$mailbodytext .= " <link rel=3D\"stylesheet\" href=3D\"http://www.somesite.co.uk/assets/style_mozilla.css\" type=3D\"text/css\">\n";
$mailbodytext .= " <title>Some title</title>\n";
$mailbodytext .= " </head>\n";
$mailbodytext .= " <body>\n";
$mailbodytext .= " <table border=3D\"0\" cellpadding=3D\"0\" cellspacing=3D\"0\" width=3D\"650\">\n";
etc etc etc
$mailbodytext .= " </body>\n";
$mailbodytext .= "</html>\n";
// end message part
$mailbodytext .= "\n";
$mailbodytext .= "--MIME_BOUNDRY--\n";
Where you see the <html element>=3D\"0\" stuff is for Outlook Express I believe, as I found that html wasn't displaying properly in these clients and needed the extra tags before the double quotes.
There's a better explanation on php.net's site under the mail functions if it's any help?
Kind regards
Greg