Hvis du gerne vil sende en HTML mail, så alle klienter forstår den skal den først og fremmest vide at det er en MIME e-mail den skal modtage. Derefter kan du fortælle indholdet at det er en blanding af HTML og tekst, men det er sådan set ikke nødvendig - så længe det er gjort klart at det er en MIME mail.
Udover det, står der også i RFC'en at mail headers skal seperares med \r\n og ikke bare \n.
Så mit bud, ville være noget ala dette:
<?
if($_POST['Email'])
{
$recipient = "it2011@live.dk";
$headers = "From: ".$_POST['Navn']."<".$_POST["Email"].">\r\n";
$headers = 'MIME-Version: 1.0' . "\r\n"; // Så fortæller vi her at det er en MIME mail
$headers .= "Content-Type: text/html; charset=iso-8859-1\r\n"; // Mime type
$subject = mb_encode_mimeheader($_POST['Emne'], "ISO-8859-1", "B"); // spamfiltre kan heller ikke lide en dårlig encoding af emnet, så hvis ud har Multibyte String på serveren (som de fleste har) er det her det hurtige fiks
$message = "Kontakt:<br>";
if($_POST['Navn'])
$message .= "Navn: ".$_POST['Navn']."<br>";
if($_POST['Email'])
$message .= "E: ".$_POST['Email']."<br>";
if($_POST['TLF'])
$message .= "T: ".$_POST['TLF']."<br>";
$message .= "<br>";
$message .= $_POST['Indhold'];
mail($recipient, $subject, $message, $headers);
}
?>