Jump to content

Archived

This topic is now archived and is closed to further replies.

kratak

php html mail

Recommended Posts

Hi

Im trying to use a script to send a html email to various people. If i send it to a hotmail user and open the email, the email does appear correct, processing the html code. However if you access the same email via Outlook (2003) it comes out showing the code rather than interpreting it.

Ive tried several websites and the they all talk about the headers. I have tried several different bits of code in the headers, all have had no effect. Any advice welcome.

Here is my code

[code]
<?php


$email = array('email@hotmail.com', 'email2@hotmail.com');

foreach ($email as $k => $v) {

$to = $v;
$from = "research@roffeypark.com";
$subject = "subject";

$headers = "From: info@mydomain.com\n";
$headers .= "Message-ID: <" . md5(uniqid(time())) . "@mydomain.com>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Date: ".date("D, d M Y H:i:s") . " UT\n";
$headers .= "Reply-To: info@mydomain.com\n";
$headers .= "Return-Path: info@mydomain.com\n";
$headers .= "X-Priority: 3\r\nX-MSmail-Priority: Normal\n";
$headers .= "X-mailer: php/".phpversion()."\n";
$headers .= "X-MimeOLE: Produced By MyDomain\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\n";


$message = "
<html>
<body>
<p><font color='red'>Hello</font></p>
</body>
</html>";

mail($to, $subject, $message,$headers);



}

?>
[/code]

Share this post


Link to post
Share on other sites
I think the problem is here:
$headers .= "Content-type: text/plain; charset=iso-8859-1\n";

Instead of text/plain it should be something else (I dont know what, my guess will be "text/html" or something like that).

Orio.

Share this post


Link to post
Share on other sites
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.