0

I am building a simple php mail form and it has two different type of message style for sender and receiver each.

I do not just want to escape double quotes. Even i use something like <h2> or <strong> tags, it does not work.

$message1 = "Message 1";
$message2 = "Message 2";

mail($recipient, $subject, $message2, $mailheader) ;
mail($email, $subject2, $message2, $headers2) ;

Here I want to add some simple html style for Message 1 and Message 2

I tried

$message1 = "'<div style="color:#ff0000">' Message 1 '</div>'";
$message2 = "'<div style="color:#ff0000">' Message 2 '</div>'";

But it doesnt work. How can i achieve this?

  • http://php.net/manual/en/function.mail.php#example-3929 – Pranav C Balan May 17 '17 at 06:32
  • 2
    Possible duplicate of [Escape double quotes of HTML attributes output by PHP](http://stackoverflow.com/questions/1097135/escape-double-quotes-of-html-attributes-output-by-php) – Tom Udding May 17 '17 at 06:36
  • you need to escape the double quotes like this $message1 = "
    Message 1
    "; $message2 = "
    Message 2
    "; @Shebas khan
    – JYoThI May 17 '17 at 06:43
  • output is like this
    Message 1
    It just removes the code but text color doesnt change
    –  May 17 '17 at 06:46
  • it is not valid style style="#ff0000;" you missed color: – JYoThI May 17 '17 at 06:51
  • I tried different colors but the result is same –  May 17 '17 at 06:54
  • i said you missed the word *color:* – JYoThI May 17 '17 at 06:56
  • I used this
    –  May 17 '17 at 06:57
  • can you show your mail header – JYoThI May 17 '17 at 07:01
  • $mailheader = "From: $email \r\n"; $headers2 = "From:" . $recipient; mail($recipient, $subject, $message1, $mailheader) ; mail($email, $subject2, $message2, $headers2) ; –  May 17 '17 at 07:04
  • 1
    change your header like this $emailheader ='From:'.$email. "\r\n" . 'Reply-To: '.$email. "\r\n" . 'X-Mailer: PHP/' . phpversion() . "\r\n" . 'Content-Type: text/html; charset=ISO-8859-1'."\r\n". 'MIME-Version: 1.0'."\r\n\r\n"; @ShebasKhan – JYoThI May 17 '17 at 07:07
  • Thank u so much, it worked –  May 17 '17 at 07:23
  • i posted the comment as answer . mark it with green tick it's useful for future user reference @ShebasKhan – JYoThI May 17 '17 at 07:30

6 Answers6

0

Do like this,

$message1 = '';
$message1 .= '<div style="color:#ff0000">';
$message1 .= 'Message 1';
$message1 .= '</div>';

echo $messag1;
Vinod VT
  • 6,946
  • 11
  • 51
  • 75
0

you cannot add double quote inside double quotes

$message1 = '<div style="color:#ff0000"> Message 1 </div>';
$message2 = '<div style="color:#ff0000"> Message 2 </div>';
Bhavik
  • 495
  • 2
  • 10
0
$message1 = '<div style="color:#ff0000">'.' Message 1 '.'</div>';
$message2 = '<div style="color:#ff0000">'.' Message 2 '.'</div>';

You may try this

Jaggesher Mondal
  • 193
  • 2
  • 10
0

you can escape double quotes by adding slashes before it:

$message1 = "<div style=\"color:#ff0000\"> Message 1 </div>";
$message2 = "<div style=\"color:#ff0000\"> Message 2 </div>";
Mohammad
  • 3,449
  • 6
  • 48
  • 75
0
$email = 'to-mail@gmail.com';
$subject = 'Subject';

$message = "";
$message .= "<div style='color:#ff0000'> Message 1 </div>";
$message .= "<div style='color:#ff0000'> Message 2 </div>";

mail($email,$subject,$message);

OR

Use Klaviyo Email Template to create attractive Email Template Designs.

Adharsh M
  • 2,773
  • 2
  • 20
  • 33
0

you need to change your header like this

$emailheader ='From:'.$email. "\r\n" . 'Reply-To: '.$email. "\r\n" . 'X-Mailer: PHP/' . phpversion() . "\r\n" . 'Content-Type: text/html; charset=ISO-8859-1'."\r\n". 'MIME-Version: 1.0'."\r\n\r\n"; 
JYoThI
  • 11,977
  • 1
  • 11
  • 26