Danny Yoon
Danny Yoon

Reputation: 25

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="[email protected]";

        $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="[email protected]";

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

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

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?

Upvotes: 0

Views: 287

Answers (3)

Syed mohamed aladeen
Syed mohamed aladeen

Reputation: 6755

You need to set Content-Type to text/html in mail headers to send your mail as html mail.

Example headers:

$headers = "From: [email protected]\r\n";
$headers .= "Reply-To: [email protected]\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

finally after your content you need to send mail like the following.

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

Then for your double quotes problem : here you used double quotes inside double quotes. if that so you need to escape it with "/".

Upvotes: 0

RysQ
RysQ

Reputation: 348

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

Example headers with Content Type:

$headers = "From: [email protected]\r\n";
$headers .= "Reply-To: [email protected]\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

Upvotes: 1

Kashif Ullah
Kashif Ullah

Reputation: 717

With second html you are having problem with double quotes, because you are using double quotes inside the html, try to escape them. Try this:

or try the link below: What is the difference between single-quoted and double-quoted strings in PHP?

Upvotes: 0

Related Questions