Outlook 2007 receives html mail as source with headers, others MUAs work fine. Why?
html-email, outlook, php
Solution
Have you tried sending multipart email, when doing this we never had issues with outlook 2k3 and 2k7 (excepts poor HTML rendering)
<?php
$header = "From: Sender <sen...@domain.org>\r\n";
$header .= "Reply-to: Sender <blabla...@domain.net>\r\n";
$header .= "X-Mailer: Our Php\r\n";
$boundary = "==String_Boundary_x" .md5(time()). "x\r\n";
$boundary2 = "==String_Boundary2_y" .md5(time()). "y\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/related;\r\n";
$header .= " type="multipart/alternative";\r\n";
$header .= " boundary="$boundary";\r\n";
$message = "If you read this, your email client doesn't support MIME\r\n";
$message .= "--$boundary\r\n";
$message .= "Content-Type: multipart/alternative;\r\n";
$message .= " boundary="$boundary2";\r\n";
$message .= "--$boundary2\r\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
$message .= "Content-Transfer-Encoding: 7bit\r\n";
$message .= "Alternative message in plain text format.\r\n";
$message .= "--$boundary2\r\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
$message .= "Content-Transfer-Encoding: 7bit\r\n";
$message .= "<html><body><p>HTML formatted message</p></body></html>";
You can replace boundaries with whatever you want, but they must be unique.
For more powerful and flexible email sending in php I suggest to use SwiftMailer
EDIT : as Outlook 2007 has a really dumb HTML renderer, you can also try fixing your markup, there is a `</font>` never opened in your example, dunno if it's the real mail or a typo in question.
Problem
I have a couple of simple forms that send an html-only email. Most clients (Gmail, Lotus Notes 8, hotmail/live, windows live mail, outlook express) receive the emails just fine, but Outlook 2007 does not. The code looks like this: ``` $data=" <html> <body> <strong><u>$sub</u></strong><br><br> <strong>Name:</strong> {$_POST["nombre"]}<br><br> <strong>Phone:</strong>{$_POST["telefono"]}<br><br> <strong>Email:</strong> {$_POST["email"]}<br><br> <strong>Subject:</strong> {$_POST["asunto"]}<br><br> <strong>Question:</strong> {$_POST["consulta"]}</strong> </body> </html>"; $header = "Reply-To: $from\r\n"; $header .= "From: \"".$_POST["nombre"]."\" <$from>\r\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: text/html; charset=iso-8859-1\r\n"; $enviado = mail($destino,$sub,$data,$header); ``` (`$from` is the only part of the message validated) The message received by the customer looks like this: ``` Content-Type: text/html; charset=iso-8859-1 From: Consulta de "Boss" <boss@myfirm.com> Reply-To: boss@myfirm.com X-Mailer: PHP/ <strong><u>Solicitud de envío de recetas - CLIENT</u></strong><br><br><strong>Nombre y Apellido:</strong> Boss<br><br><strong>Email:</strong> boss@myfirm.com<br><br><br> ``` Any ideas?