...

View Full Version : PHP email converts new line to \r\n?!



jarv
08-30-2011, 10:07 PM
Please help,

When I sent an email like this:

test body
next line
www.google.co.uk

it came to my email like this:

test body\r\nnext line\r\nwww.google.co.uk

here is my code:


<?php
mysql_connect("xxx", "xxx", "xxx");
mysql_select_db("xxx");
$EmailTitle = mysql_real_escape_string($_POST['EmailTitle']);
$EmailBody = mysql_real_escape_string($_POST['EmailBody']);
$id = mysql_real_escape_string($_POST['id']);

$query5 = mysql_query("SELECT * FROM aarbookts_booking_bookings WHERE id = '$id'");
$row5 = mysql_fetch_array($query5);

$customer_name = $row5['customer_name'];

$to = $row5['customer_email'];
$subject = $EmailTitle;
echo $to;

$message = <<<EOF
<html>
<body>
<p>$EmailBody</p>
</body>
</html>
EOF;
//end of message
$headers = "From: me@myemail.com\r\n";
$headers .= "Content-type: text/html\r\n";

//options to send to cc+bcc
//$headers .= "Cc: maa@p-i-s.cXom";
//$headers .= "Bcc: email@maaking.cXom";

// now lets send the email.
mail($to, $EmailTitle, $message, $headers);
$msg = "Mass email sent";
header("Location: send-mass-email.php?msg=$msg");

?>

Fou-Lu
08-30-2011, 11:19 PM
I assume that is provided by the $_POST['EmailBody']? These should NOT be run through a mysql_real_escape_string. They should instead be run through a str_replace and presumably followed by an nl2br:


$EmailBody = nl2br(str_replace("\r\n", "\n", $_POST['EmailBody']));


Mysql_real_escape_string is used ONLY for data being placed into a SQL query.



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum