Danny Yoon Danny Yoon - 4 years ago 106
HTML Question

php mail syntax error

$mail_body = '<html>
<body style="background-color:#CCC; color:#000; font-family: Arial, Helvetica, sans-serif; line-height:1.8em;">
<h3><a href="http://www.grillontherock.com"><img src="http://i.imgur.com/OODKT9h.png" alt="GR" width="194" height="123" border="0"></a>
</h3>
<p>Hello ' . $name . ',</p>
<p>You can make this out to be just like most any web page or design format you require using HTML and CSS.</p>
<p>Grill on the Rock </p>
<hr>
<p>To opt out of receiving this newsletter, <a href="http://grillontherock.x10host.com/email/optout.php?e=' . $email . '">click here</a> and we will remove you from the listing immediately.</p>
</body>
</html>';

$to = "$email";
$subject = "Example Grill on the Rock Email";
$from="info@grillontherock.com";

$mail_result = mail($to, $subject, $mail_body, "From:".$from);

}
if($mail_result){
echo "Email has been sent successfully";
}


I am having problem with sending email with php and html.

This code works perfectly fine but the email I am getting is

enter image description here

but when I use double quotation for html file php code greys out for some reason.

$mail_body = "<html>
<body style="background-color:#CCC; color:#000; font-family: Arial, Helvetica, sans-serif; line-height:1.8em;">
<h3><a href="http://www.grillontherock.com"><img src="http://i.imgur.com/OODKT9h.png" alt="GR" width="194" height="123" border="0"></a>
</h3>
<p>Hello ' . $name . ',</p>
<p>You can make this out to be just like most any web page or design format you require using HTML and CSS.</p>
<p>Grill on the Rock </p>
<hr>
<p>To opt out of receiving this newsletter, <a href="http://grillontherock.x10host.com/email/optout.php?e=' . $email . '">click here</a> and we will remove you from the listing immediately.</p>
</body>
</html>";

$to = "$email";
$subject = "Example Grill on the Rock Email";
$from="info@grillontherock.com";

$mail_result = mail($to, $subject, $mail_body, "From:".$from);

}
if($mail_result){
echo "Email has been sent successfully";
}


[![enter image description here][3]][3]

a bit new to php and html and I could not find similar problem at the moment.

Also, Is it possible to have email as html form and bring that html through send php file?

Answer Source

You need to set Content-Type to text/html in mail headers

Example headers with Content Type:

$headers = "From: danny@danny.domain\r\n";
$headers .= "Reply-To: no-reply@danny.domain\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

then

$mail_result = mail($to, $subject, $mail_body, $headers);

@edit.

Also check exaple #4 at: http://php.net/manual/en/function.mail.php

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download