0
$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";
    }

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?

Lemon Kazi
  • 3,308
  • 2
  • 37
  • 67
Danny Yoon
  • 27
  • 10

3 Answers3

1

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

RysQ
  • 347
  • 3
  • 14
0

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?

Community
  • 1
  • 1
Kashif Ullah
  • 672
  • 6
  • 19
0

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

Example headers:

$headers = "From: mymail@gmail.com\r\n";
$headers .= "Reply-To: no-reply@mymail.com\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 "/".

Syed mohamed aladeen
  • 6,507
  • 4
  • 32
  • 59