Esatto, il tuo codice usa un'email multipart che "ricade" sul testo se non viene supportato l'HTML.
Questo codice invece manda solo HTML (e se uno non lo supporta vedrà i tags come testo, ma è una situazione a dir poco rara).
Ti riscrivo il codice completo:
Codice PHP:
$from = "tuaemail@qualcosa.com";
$to = "qualcuno@qualcosa.com";
$subject = "Email di prova";
$body = "Questa è una [b]mail[/b] di prova in [i]HTML[/i]!";
$newline = "\n"; // NOTA: importante mettere le virgolette e non gli apici così viene interpretato come \r\n
// Settiamo gli headers
$headers = 'X-Mailer: PHP/'.phpversion().$newline.
'From: '.$from.$newline.
'Reply-to: '.$from.$newline.
'Subject: '.$subject.$newline.
'MIME-Version: 1.0'.$newline.
'Content-Type: text/html; charset="iso-8859-1"'.$newline.
'Content-Transfer-Encoding: 7bit';
return mail($to, $subject, $body, $headers);